一、产生时钟的方式
1. 使用forever,注意一定要给时钟clk赋初始值,否则信号的缺省值为z。
initial begin
clk = 0;
#delay;
forever #(period/2) clk = ~clk;
end
2. 使用always
initial begin
clk = 0;
#delay;
always #(period/2) clk = ~clk;
end
3. 使用repeat产生3个时钟
initial begin
clk = 0;
#delay;
repeat(6) #(period/2) clk = ~clk;
end
4. 产生占空比非50%的时钟
initial begin
clk = 0;
#delay;
always begin
#3 clk = ~clk;
#2 clk = ~clk;
end
end
二、产生复位信号的方式
1. 异步复位
intial begin
rst = 1;
#100;
rst = 0;
#500;
rst = 1;
end
2. 同步复位
initial begin
rst = 1;
@(negedge clk) rst = 0;
#30;
@(negedge clk) rst = 1;
end
3. 同步复位
initial begin
rst = 1;
@(negedge clk) rst = 0;
repeat(3) @(needge clk);
rst = 1;
end