Gast
#515791
Hallo, ich bin gerade dabei mich in VHDL einzuarbeiten. Habe hier im Forum schon viel gelesen, vor allem, wie wichtig es ist, ein Design synchron aufzubauen. Nun aber hierzu eine spezielle Frage. Ich habe mir einen getakteten Zähler realisiert, den ich kombinatorisch, also außerhalb des Prozesses auf einen Wert abfrage. ENTITY pulse_state IS PORT( reset, clk, start : IN std_logic; q : OUT std_logic ; q1 : OUT std_logic); END pulse_state; ARCHITECTURE Behavioral OF pulse_state IS Signal counter: std_logic_vector(3 downto 0); BEGIN PROCESS(reset, clk) BEGIN IF (reset = '1') THEN counter<="0000"; ELSIF (rising_edge(clk)) THEN counter<=counter+1; END IF; END PROCESS; q <= '1' when counter = "0011" else '0'; END Behavioral; Die Abfrage und damit auch der Ausgang q wird ja zu jeder Zeit, also taktunabhängig gesetzt, nun zu meiner Frage: Ist es möglich, dass die 4 FFs des Counters unterschiedlich schnell schalten und somit kurze fehlerhafte Zustände am Vergleicher mit 3 auftauchen, die dann kurze Spikes am Ausgang zur Folge hätten. Natürlich kann ich die Abfrage auch innerhalb des Prozesses machen, aber dann habe ich immer eine Verzögerung um einen Takt. Vielen Dank im voraus Volker