Event simulatie resultaat vraag?

X

xiongdh

Guest
////////////////////////////////////////////////// /////
STIJL1:
reg reg_temp1, reg_temp2;
aanvankelijke
beginnen
reg_temp1 <= 1'b0;
reg_temp2 <= 1'b0;
eindigen
altijd @ (posedge klok)
reg_temp1 <=! reg_temp1;

altijd @ (posedge klok & reg_temp1)
reg_temp2 <=! reg_temp2;
////////////////////////////////////////////////// / / / /////////////////////////////////////////////////// /////
style2:
reg reg_temp1, reg_temp2;
aanvankelijke
beginnen
reg_temp1 <= 1'b0;
reg_temp2 <= 1'b0;
eindigen
altijd @ (posedge klok)
reg_temp1 <=! reg_temp1;

altijd @ (posedge klok)
if (reg_temp1)
reg_temp2 <=! reg_temp2;
////////////////////////////////////////////////// / / / /
met simulatietool verilog-xl
de simulatie resultaat is niet hetzelfde.met stijl 1.Het golf van twee signaal is hetzelfde.met stijl 2 reg_temp1 's FREQUENCE is twee keer van reg_temp2.
Waarom dit gebeurt ????????????

 
Dat is al goed.Gelieve te sporen de volgende gevallen:

In de STIJL1:
De eerste zorgt ervoor dat het altijd "reg_temp1" schakelt wanneer de "klok" stijgt.De tweede altijd zintuigen verhoging van de reg_temp1 en klok.Omdat de overdracht aan de reg_temp1 voert in de delta tijd, zodat het altijd voorwaarde wordt waar op dat moment de reg_temp1 werkplaatsen.in andere woorden, de verhoging van een signaal kan worden gedetecteerd als hetzelfde tijdstip van de wijziging.Maar de waarde van dit signaal kan niet.

In de style2:
De eerste zorgt ervoor dat het altijd "reg_temp1" schakelt wanneer de "klok" stijgt.Maar de tweede altijd gewoon zin stijgt van de klok en controleer de waarde van de reg_temp1.Nieuw waarde van de reg_temp1 is niet geldig in de verhoging van de klok en de vorige waarde van de reg_temp1 zal worden overwogen.

Groeten,
KH

 

Welcome to EDABoard.com

Sponsor

Back
Top