Twój drugi fragment kodu jest w rzeczywistości błędem składni. Różnica między forever
a always
polega na tym, że always
może istnieć jako "element modułu", który jest nazwą, którą specyfikacja Verilog nadaje konstrukcjom, które mogą być zapisane bezpośrednio w module, a nie zawarte w innych konstrukcjach. initial
jest również elementem modułu. always
bloki są powtarzane, natomiast bloki initial
są uruchamiane raz na początku symulacji.
forever
jest instrukcją postępowania, która może być używana tylko w kontekście proceduralnym. Prawidłowe jest więc pisanie initial forever
lub always forever
, ale nie tylko forever
.
Sytuacja, w której forever
staje się dość ważna, dotyczy zadań, które są kontekstami proceduralnymi, więc używanie always
jest niedozwolone. (Funkcje są również kontekstami proceduralnymi, ale nie mogą zawierać opóźnień, co sprawia, że jest mało prawdopodobne, aby przydały się.
nie jestem zaznajomiony do uVM i VMM ale w Verilog swój bezużyteczny prawo – chitranna
? UVM używa Verilog – toolic
Myślę, że @ new2android oznacza w Verilog RTL dla syntezy.Nigdy nie używałem na zawsze w RTL, ponieważ pętle mogą być używane, ponieważ są rozwijane w czasie kompilacji. – Morgan