Vhdl

Hallo Leute!

Ich habe die Aufgabe bekommen ein VHDL Programm zu schreibn, wo man mit 4 Tasten ein Bitmuster einstellen soll, dann wird eine Taste gesdrückt, ein UP-LED leuchtet auf, und ein Binärzähler wird gestartet der bis zu dem eingestellten bitmuster zählt! Wird die Taste nochmal gedrückt, leuchtet das Down-LED und der Zähler zählt wieder runter! Ich habe dass Programm nun auch schon geschriebn, allerding gibt es das Problem, dass wenn man ganz kurz auf den taster drückt nur das zwar das UP bzw DOWN LED kurz aufblinkt, allerdings beginnt der Zähler nicht zu zählen!

Hier der CODE:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity updown is
Port ( clock : in std_logic;
start : in std_logic;
schalter : in unsigned (3 downto 0);
count_leds : out unsigned (3 downto 0);
up_led : out std_logic;
down_led : out std_logic);
end updown;

architecture behavioral of updown is
signal countvec : unsigned (3 downto 0);
signal enable : std_logic;
signal equal : std_logic;
signal zero : std_logic;
signal up : std_logic;
signal down : std_logic;

begin
process (countvec, schalter)
begin
equal

Hallo Leute!

Ich habe die Aufgabe bekommen ein VHDL Programm zu schreibn,
wo man mit 4 Tasten ein Bitmuster einstellen soll, dann wird
eine Taste gesdrückt, ein UP-LED leuchtet auf, und ein
Binärzähler wird gestartet der bis zu dem eingestellten
bitmuster zählt! Wird die Taste nochmal gedrückt, leuchtet das
Down-LED und der Zähler zählt wieder runter! Ich habe dass
Programm nun auch schon geschriebn, allerding gibt es das
Problem, dass wenn man ganz kurz auf den taster drückt nur das
zwar das UP bzw DOWN LED kurz aufblinkt, allerdings beginnt
der Zähler nicht zu zählen!

generel kommen solche „Fehler“ durch die Transport-Delays und die auslöschung von „zu kurzen“ Impulsen. Das muss so sein damit Hardware angebaut werden muss. Die VHLD kann man aber diese Delays und Auslöschzeiten festlegen bei der Zuweisung der Signale. Versuchs mal…

Hier der CODE:

> library IEEE;  
> use IEEE.STD\_LOGIC\_1164.ALL;  
> use IEEE.STD\_LOGIC\_ARITH.ALL;  
> use IEEE.STD\_LOGIC\_UNSIGNED.ALL;  
>   
> entity updown is  
> Port ( clock : in std\_logic;  
> start : in std\_logic;  
> schalter : in unsigned (3 downto 0);  
> count\_leds : out unsigned (3 downto 0);  
> up\_led : out std\_logic;  
> down\_led : out std\_logic);  
> end updown;  
>   
> architecture behavioral of updown is  
> signal countvec : unsigned (3 downto 0);  
> signal enable : std\_logic;  
> signal equal : std\_logic;  
> signal zero : std\_logic;  
> signal up : std\_logic;  
> signal down : std\_logic;  
>   
> begin  
> process (countvec, schalter)  
> begin  
> equal




> Geht net besser! Sorry!  
> Vielleciht kann mir jemand den Fehler sagen, bzw eine Lösung  
> des Problems! Würd mich freuen!  
>   
> DANKE! STEFAN


Der Code gibt mir Rätsel auf... ist lange her.