求教一个问题,关于“#”
时间:10-02
整理:3721RD
点击:
今天看到一个程序,有个地方实在不解,程序如下:
always @(posedge clk)
if(kld) rcnt <= #1 4'h0;
else rcnt <= #1 rcnt_next;
kld上升沿到来时,给计数器的值清零,那为什么还要加上一个“#1”呢?是延迟一个单位后再给计数器清零的意思吗,这样做有什么用处呢?求大神指点!
always @(posedge clk)
if(kld) rcnt <= #1 4'h0;
else rcnt <= #1 rcnt_next;
kld上升沿到来时,给计数器的值清零,那为什么还要加上一个“#1”呢?是延迟一个单位后再给计数器清零的意思吗,这样做有什么用处呢?求大神指点!
这因该是给的测试激励,按时序给对应的信号赋值。
让你看波形的时候清晰一点么?知道在上升沿的时候采到得数是什么
这是顶层模块中的一个程序,不是testbench中的。
这个#时间是来模拟DFF的Tckq时间
我明白些了,但是这个具体的数值是怎么确定的呢?
It does not matter what delay value you choose during RTL simulation as long as add-up path delay won't violate your timing constraint.
综合器会忽略掉RTL中定义的延时信息
简单说是模拟使用的语法,实际动作与这个无关.
这个值只是为了方便你看波形, 看数据和时间的关系
