简介
本章节主要描述verilog激励仿真函数的介绍。
initial
主要针对寄存器初始化值,基本所有仿真都会使用到该语句,使用如下:
initial begin
sys_clk = 'd0;
sys_rst_n = 'd0;
#2000;
sys_rst_n = 'd1;
end
repeat
重复有限次数地执行一段代码,使用如下:
repeat (<number>) begin //指定重复次数
//需要重复执行的代码
end
例如重复执行5个时钟周期时钟;
repeat(5)begin
@(posedge sys_clk);
end
always #
重复执行,一般使用在时钟上,例如实现一个100MHz系统时钟,使用如下:
always #5 sys_clk = ~sys_clk;
forever
重复执行,与always有所不同,使用如下:
initial begin
clk = 1'b0;
forever begin
#5 clk = ~clk;
end
end
forever和always的区别如下:
forever块主要用于产生周期性的波形,作为仿真测试信号,或者用于生成周期性的行为。它不能独立存在于程序中,必须搭配initial语句共同使用。
always块则更为灵活,它可以在满足敏感参数列表中的条件时执行。always块可以描述时序逻辑或组合逻辑,具体取决于其敏感参数列表中是否包含时钟信号。如果always块的敏感参数列表中包含时钟信号,则该块被综合成一个时序回路,当时钟变化时执行。如果不包
标签:仿真,begin,end,clk,always,sys,激励,verilog,时钟 From: https://blog.csdn.net/weixin_51418325/article/details/141885753