Základná otázka, na simuláciu Verilog

E

eruisi

Guest
V štandarde IEEE 1364, hovorí nasledujúci kód
Code:
 modul test, drôt p, q reg, priradenie p = q, prvé začínajú q = 1, # 1 q = 0, $ display ("v čase:% T, hodnota je% f \\ n ", $ v reálnom čase, p), koniec endmodule
môže zobraziť buď ako p" 1 "alebo" 0 ". Nemôžem pochopiť, prečo. # 1 q = 0 je blokujúce úlohu, mal by byť vykonaný po displeji # 1 q = 0 je ukončená v čase 1, nie? Aj spustiť simulácie v VCS a dostal 0, ale v ncverilog dostal 1. Mohli by ste mi povedať, ako sa to stane. Díky moc!
 
Áno, "# 1 q = 0," je blokovanie vyhlásenie. Ale hodnota je vytlačiť, je p nie je q, takže tu je riešenie, kedy si "priradenie p = q" Je to tak, ako spons spearate niť, alebo z hľadiska Verilog je ekvivalentná k písaniu Vždy @ (q), p = q , Je to tak? Keď tak urobíte, môže byť vykonaný príkaz print delta cyklu pred q je pridelený do P alebo Q je po assinged s. To je dôvod, prečo ich nemožno predvídať, ale ak si dať oneskorenie pred tlačou, ako to bude fungovať dobre a vždy vytlačiť hodnotu P Q je po ktoré mu boli pridelené. naopak keď dáte oneskorenie v prideľovaní q p, vytlačí vždy vypíše hodnotu p q, než sa mu boli pridelené.
 

Welcome to EDABoard.com

Sponsor

Back
Top