Hallo Ich habe diesen Counter im Internet gefunden. Ich möchte wissen, ob nach erreichen von Q = "1111111" der Ausgang UEB ständig auf High bleibt, oder sich dieser auch mal wieder ändern kann. Was passiert mit Q danach? Geht es etwa auf 0000000 zurück oder was genau passiet da? library IEEE; use IEEE.std_logic_1164.all; use work.std_arith.all; entity COUNT is port( CLK, ENA : in std_logic; Q : buffer std_logic_vector(6 downto 0); UEB : out std_logic); end COUNT; architecture A1 of COUNT is begin P1: process( CLK ) begin if( CLK'event and CLK = '1' ) then if( ENA = '1' ) then Q <= Q + 1; end if; end if; end process; UEB <= '1' when Q = "1111111" else '0'; end A1;
>Ich möchte wissen, ob nach erreichen von Q = "1111111" der Ausgang UEB >ständig auf High bleibt, oder sich dieser auch mal wieder ändern kann. >UEB <= '1' when Q = "1111111" else '0'; Bei einem Überlauf von Q wird UEB auf "1" gesetzt und sonst auf "0" >Geht es etwa auf 0000000 zurück oder was genau passiet da? Richtig, Q laeuft ueber und faengt bei 0 wieder an.
>>Geht es etwa auf 0000000 zurück oder was genau passiet da? >Richtig, Q laeuft ueber und faengt bei 0 wieder an. Wie bringe ich den Counter dazu, nicht mehr weiterzuzählen? Ich möchte nur eine einzige steigende Flanke erhalten.
Indem du neben dem Enable ENA noch in die Signatur der if-Abfrage Q<"1111111" einfügst (oder wahlweise im inneren Scope eine weitere if-Abfrage einbaust). Also architecture A1 of COUNT is begin P1: process( CLK ) begin if( CLK'event and CLK = '1' ) then if( ENA = '1' and Q<"1111111") then Q <= Q + 1; end if; end if; end process; UEB <= '1' when Q = "1111111" else '0'; end A1; oder architecture A1 of COUNT is begin P1: process( CLK ) begin if( CLK'event and CLK = '1' ) then if( ENA = '1' ) then if (Q<"1111111") then Q <= Q + 1; end if; end if; end if; end process; UEB <= '1' when Q = "1111111" else '0'; end A1;
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.