1
我正尝试使用下面的代码在verilog中生成波形,但结果与预期不符。在verilog中生成自定义波形
initial begin
d = 1'b0;
#8 d <= 1'b1;
#15 d <= 1'b0;
end
其初始值为0(OK),在t = 8,它的1(行),但在t = 23,其为0。相反,我希望它是0在t = 15相对于T = 0而不是t = 8(即前面的陈述)。
有没有办法做到这一点?我尝试过交换阻塞和非阻塞任务,但没有运气!
感谢,
开发
这是否意味着使用赋值间延迟推进仿真时间? –
@devvaibhav我不确定你的意思。然而,IEEE1800-2012的第9.4.5节(“内部分配时间控制”)指出:“分配内延迟或事件控制应延迟将新值分配到左侧,但右侧表达应在延迟之前进行评估,而不是在延迟之后进行评估。“如果您将内部分配延迟添加到非阻塞分配,则执行后立即执行,并在延迟后执行分配。所以,你正在有效地安排将来某个时间发生的事件。 –