initial語句
initial 語句從仿真0時刻開始,在整個仿真過程中只執行一次。如果一個模塊包含不同的initial塊,那么他們從0時刻開始並發執行,且執行是相互獨立的。
由於其只執行一次,所以一般被用於初始化,信號監視,生成仿真波形等。(initial語句內部是順序執行的,例如:
initial begin
#10 a = 5;
#10 b = 4;
end
結果為10:a = 5;
20: b = 4;
)
alway語句
always語句也是從仿真0時刻開始順序執行,且執行完最后一條語句時,又回過頭來執行第一條語句,循環直至仿真結束。通常用來對數字電路中一組反復執行的活動進行建模,比如時鍾信號發生器。給出一種時鍾發生器方式:
module clock_gen(output reg clock);
initial clock = 1'b0;
always #10 clock = ~clock;
initial #1000 $finish;
endmodule