Gast
#298093
Hallo zusammen, habe mit vor ein paar Tagen ein Spartan3-Kit zugelegt und mache nun meine ersten Gehversuche in VHDL. Inzwischen habe ich auf dem VGA-Monitor einen Balken, den ich mit zwei Tastern hin- und her bewegen kann. Der Code dazu sieht so aus: signal x : std_logic_vector (8 downto 0); (... VGA-Signal-Erzeugung, Balken an Position x zeichnen...) if (vertical_counter=521) then --frame-sync (60/s) vertical_counter <= "0000000000"; if left='1' then x<=x-1; end if; if right='1' then x<=x+1; end if; end if; left und right sind dabei mit den Tastern verbunden. Funktioniert auch wunderbar. Interessant wird es aber, wenn man beide Taster gleichzeitig drückt. Anders als erwartet bleibt der Balken dann nicht stehen, sondern wandert nach rechts ! Nun frage ich mich warum. Ist das Verhalten gar undefiniert weil x dann ja quasi gleichzeitig bei jedem vsync inkrementiert und dekrementiert wird ? Warum gibt ISE (V8.1i) dann kein Warning aus ? Oder muss man auf soetwas selber achten ?