rob odkrivanje na asynch signal

B

buenos

Guest
živjo

hočem zaznati naraščanje prednost na asinhroni signal, kjer odkrivanje logika je sinhrono.

sem storil to:Code:proces (input, CLK, reset_n)

začeti

if (reset_n = '0 ') then

odkriti <= '0 ';

input_previous <= 0 ";

elsif (clk'event in CLK = '1 ') then

input_previous <= vnos;

if (input = "1" in input_previous = '0 ') then - povečuje prednost na vnos

odkriti <= '1 ';

end if;

end if;

koncu postopka;

 
Mislim, da lahko uporabite to kodo za vaš problem;

Code:proces (input, CLK, reset_n)

začeti

if (reset_n = '0 ') then

odkriti <= '0 ';elsif (clk'event in CLK = '1 ') thenče (input'EVENT in input = '1 '), potem pa - povečuje prednost na vnos

odkriti <'1 = ';

še

odkriti <= '0 ';

end if;

end if;

koncu postopka;
 
Zula wrote:

Mislim, da lahko uporabite to kodo za vaš problem;Code:proces (input, CLK, reset_n)

začeti

if (reset_n = '0 ') then

odkriti <= '0 ';elsif (clk'event in CLK = '1 ') thenče (input'EVENT in input = '1 '), potem pa - povečuje prednost na vnos

odkriti <= '1 ';

še

odkriti <= '0 ';

end if;

end if;

koncu postopka;
 
no, da je veliko dlje kot eno CLK, njenih okoli 150 CLK dolgo.

 
Poskusi tole.

Code:

proces (input, CLK, reset_n)

začeti

if (reset_n = '0 ') then

input_previous <= '0 ';

elsif (clk'event in CLK = '1 ') then

input_previous <= vnos;

end if;

koncu postopka;odkriti <= vnos in ne (input_previous);
 
okej
hvala.
zakaj bi bilo bolje, in kakšen je bil problem z izvirno rešitev?
(v moji prvi post sem pozabil, da so odkrili še z izjavo <= '0 ', ampak v mojem oblikovanju je bilo tam, tako da ni bil problem)

 
To je klasični primer manjka sinhronizacijo asinhrona opozorila.Če rob vhodnega signala sovpada z robom uro, lahko dogodek na sporedu zaradi zamude skew logike.Ta problem je tudi ni mogoče odpraviti z kodo, ki jih je predlagala kvingle.Dodajanje drug register ravni najverjetneje odpravlja težavo.
Code:

če rising_edge (CLK) potem

input_sync <= vnos;

input_prev <= input_sync;

end if;

odkriti <= vnos sinhronizacijo in ne input_prev;
 
Strinjati se.

Asinhron signal v sinhronizacijo domeni ... nočna digitalnih oblikovalcev.
Osnovne dvojno flop Sinkronizator kot je predlagano zgoraj, je dober način za zmanjšanje te.

 
Živjo,

FDM lahko uporabite tudi za to.

Imam sucssess v celoti izvajati, da na strojno opremo.Toda v mojem primeru imam za odkrivanje naraščajoče roba počasne ure (Frame CLK 2.25MHz), z višjo ure v domeni (bitclk = 18 * Frame CLK = 40.5MHz).

Torej v mojem primeru je bilo FrameClk asinhroni signal v domeni BitClk.

Ampak, če ste za odkrivanje povratni način, potem morate uporabiti eno od sinhronizacijo metode skupaj z vašo logiko.

Attached koda je v verilogHDL.

val oblika je tu<img src="http://images.elektroda.net/50_1252300669_thumb.jpg" border="0" alt="edge detection on asynch signal" title="rob odkrivanje na asynch signal"/> --
Shitansh Vaghela
Oprostite, toda morate prijavo na ogled te priloge

 
hvala guys.

je to primer "metastability" na prvi odloži signal?

 
Čeprav obstaja verjetnost, končno metastabilnih dogodkov v obdelavi asinhrona opozorila, sedanji problem je seveda veliko bolj pogosta primeru manjkajočih sinhronizacijo in kršila setup / imajo pogoje.To je dejansko nemogoče gledati metastability z 10 ali 15% incidenco.
hasn't settled to a final value after a full clock period.

V mojem predlagano rešitev, metastability pomeni, da input_sync
ni rešena končna vrednost po celotnem obdobju med uro.FPGA prodajalci so podatki, ki omogoča izračun verjetnosti tega dogodka.Glede na vhodni signal in frekvenca uro, lahko traja ure do več let, za prvi pojav.V primerih, kjer je tudi ta minimalna verjetnost je previsoka, boste morali dodati več Sinkronizator fazah, dviganje metastability verjetnost, da moč n.Druga stopnja je lahko dovolj, da se prepreči, da za nadaljnje življenje na našem planetu.

 

Welcome to EDABoard.com

Sponsor

Back
Top