testbench产生奇数周期时钟
`timescale语法解析
在Verilog中,timescale 声明是用来指定仿真时钟的时间单位和精度。这个声明必须出现在模块定义之前,并且通常放在所有其他声明之前。
timescale 1ns / 100ps 表示以下内容:
- timescale:这是一个关键词,用于指定仿真时钟的时间单位和精度。 1ns / 1ps:这是一个时间单位和精度的值对。
- 1ns:这是时间单位(time unit),表示时钟周期的时间长度。
- 100ps:这是精度(precision),表示仿真中可以表示的最小时间单位。如定义为timescale 1ns / 1ns ,产生精度只能是ns正数
5ns周期时钟产生说明
原先错误代码,设置周期为5ns,只能产生6ns周期
`timescale 1ns / 1ns
localparam CLK_PERIOD = 5.0;//200MHz
initial begin
clk = 1'b1;
forever begin
#(CLK_PERIOD/2)
clk = ~clk ;
end
end
修改代码,可以产生5ns周期代码
`timescale 1ns / 100ps
localparam CLK_PERIOD = 5.0;//200MHz
initial begin
clk = 1'b1;
forever begin
#(CLK_PERIOD/2)
clk = ~clk ;
end
end