Verilog语言谈(1)——ZT

No replies
samqiu 的头像
Offline
Joined: 09/24/2008
积分: 0

最近几天,我在用Verilog对一个小电路进行仿真。我想写一个延时模块,把输入信号延时一个给定值之后,再输出。

用语句: assign #delaytime syncdelay= sync; 即可实现。

用如下的语句模块,会出现问题:
initial begin
syncdelay2=1'b0;
forever begin
syncdelay2=#delaytime sync;
$display("Simtimeof delayelement =%t",$time);
end
end

在Modsim命令窗口打印结果:

# Simtimeof delayelement = 0
# Simtimeof delayelement = 2300
# Simtimeof delayelement = 4600
。。。。。。

实际上,forever语句在这里并不能起到预想的延时效果。

最后造成syncdelay2与sync的前沿之间存在晃动(sync是周期信号)。