Run / Stop en teller med et tog av pulser

O

omara007

Guest
Hei folkens

Jeg har et tog av pulser ..hver puls er adskilt fra sine foregående puls av en rekke klokke sykluser ..Jeg ønsker å lage en teller som teller disse klokke sykluser ..Med andre ord bør denne telleren starter å telle en gang den første pulsen kommer, og ender / tilbakestilles når neste puls kommer ..

Alle har en VHDL / Verilog-kode for det?

 
hei Omara
hva er frekvensen av klokken puls?
hvorfor du ikke bruker 74hc590?
den er enkel og rett frem, kan du bruke noen Logics å utløse det og stoppe det.
og deretter lese mot verdien av enkle mikrokontroller ...

 
barfi skrev:

hei Omara

hva er frekvensen av klokken puls?

hvorfor du ikke bruker 74hc590?

den er enkel og rett frem, kan du bruke noen Logics å utløse det og stoppe det.

og deretter lese mot verdien av enkle mikrokontroller ...
 
Vennligst supplere nødvendig signal definisjoner:
Code:process (clk)

begynne

hvis rising_edge (clk) then

- Har en synkron kantdeteksjon

pulse_sync <= puls;

pulse_s_prev <= pulse_sync;

hvis pulse_sync = '1 'and pulse_s_prev = '0' da

counter <= (andre => '0 ');

Resultatet <= teller;

ellers

counter <= teller 1;

end if;

end if;

end process;
 
Fvm skrev:

Vennligst supplere nødvendig signal definisjoner:Code:process (clk)

begynne

hvis rising_edge (clk) then

- Har en synkron kantdeteksjon

pulse_sync <= puls;

pulse_s_prev <= pulse_sync;

hvis pulse_sync = '1 'and pulse_s_prev = '0' da

counter <= (andre => '0 ');

Resultatet <= teller;

ellers

counter <= teller 1;

end if;

end if;

end process;
 
omara007 skrev:

hvorfor gjorde dere ikke / ... / på samme måte som du har å gjøre med PULSE_SYNC og PULSE_S_PREV?
 
Quote:

hvis PULSE kan være kortere deretter din klokke periode

løsningen må modyfied
 
Fvm skrev:Quote:

hvis PULSE kan være kortere deretter din klokke periode

løsningen må modyfied
 
Jeg tror, designen er ufullstendig angitt.Atferd før den første pulsen er bare et spesielt tilfelle.Etter siste puls, vil den fortsette å telle også.

En mulig løsning er å slutte å telle ved maksimal teller, kan dette også for å avgjøre en overflyt lett.En annen løsning ville kreve et statlig apparat og definert system stater.

Code:

elsif counter <maxcount deretter

counter <= teller 1;
 
j_andr skrev:eek:mara007 skrev:

Finnes det en måte å deaktivere telle /.../
 
omara007 skrev:

[Skal du bruke den korte pulsen seg som en klokke utløse en flopp?
 
j_andr skrev:eek:mara007 skrev:

[Skal du bruke den korte pulsen seg som en klokke utløse en flopp?
 
j_andr skrev:eek:mara007 skrev:

Jeg tror det er ikke en god koding stil /.../
 
omara007 skrev:

Vil dette PULSE signalet anses som en klokke, mens /.../
 
Jeg tror, er løsningen generelt gjeldende.Pulsen input ville bli betraktet som (uavhengig) klokke, så langt den bør ha en maksimal frekvens og et minimum pulsewidth.Men hvis disse begrensningene er krenket, ville den verst tenkelige resultatet bli i uregistrerte pulser.Det er akseptabelt, for etter min mening.Det viktige poenget er at pulsen innspill blir behandlet av en flip-flop og synkronisert til clk etterpå.Så det er ikke rom for uforutsigbar oppførsel, så vidt jeg ser.

 

Welcome to EDABoard.com

Sponsor

Back
Top