Verilog 过程结构
initial语句
initial语句从0开始执行,只执行1次,多个initial语句块之间是独立的。如果initial语句块之间包含多个语句,需要使用关键词begin和end组成一个块语句。initial理论上也是不可综合的。
Q:什么叫做综合
`timescale 1ns/1ns
module test
reg ai,bi;
initial begin
ai = 0;
#25; ai = 1;
#35; ai = 0;
#40; ai = 1;
#10; ai = 0;
end
initial begin
bi = 1;
#70; bi = 0;
#20; bi = 1;
end
initial begin
forever begin
if($time >= 1000)begin
$finish
end
end
endmodule
alawys语句
与initial语句相反,alawys语句是重复执行的,从0时刻开始执行其中的行为语句,执行完最后一条语句后,重复循环。
`timescale 1ns/1ns
module test;
parameter CLK_FREQ = 100;
parameter CLK_CYCLE =1e9/(CLK_FREQ*1e6);
reg clk;
initial clk = 1'b0;
always begin
#10;
if($time >= 1000)begin
$finish
end
end
endmodule