如何延迟时钟的开始?
how to delay the beginning of a clock?
使用系统 verilog 和新的 verilog,
我想在测试平台中将时钟的启动延迟 46.666ns。
为此,我声明了另一个信号,在 46.666 之后将其切换为 1,并用它来控制我的时钟。但是它不起作用,我不明白为什么。任何帮助将不胜感激。
我使用的代码:
// generate CLKXI and inject to vt
logic clk = 1;
logic clkstart = 0;
initial begin
#46.666ns clkstart = 1;
end
always
begin
if (clkstart && ~clk) #21.25ns clk = ~clk;
else if (clkstart && clk) #20.416ns clk = ~clk;
end
assign test_wrapper.dut_top.CLKXI = clk;
问题是当clkstart
为0时,你的always
块进入零延迟无限循环,时间无法前进。我想你想要的是
initial begin
#46.666ns
forever begin
#21.25ns clk = 0;
#20.416ns clk = 1;
end
使用系统 verilog 和新的 verilog, 我想在测试平台中将时钟的启动延迟 46.666ns。 为此,我声明了另一个信号,在 46.666 之后将其切换为 1,并用它来控制我的时钟。但是它不起作用,我不明白为什么。任何帮助将不胜感激。 我使用的代码:
// generate CLKXI and inject to vt
logic clk = 1;
logic clkstart = 0;
initial begin
#46.666ns clkstart = 1;
end
always
begin
if (clkstart && ~clk) #21.25ns clk = ~clk;
else if (clkstart && clk) #20.416ns clk = ~clk;
end
assign test_wrapper.dut_top.CLKXI = clk;
问题是当clkstart
为0时,你的always
块进入零延迟无限循环,时间无法前进。我想你想要的是
initial begin
#46.666ns
forever begin
#21.25ns clk = 0;
#20.416ns clk = 1;
end