微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 关于 触发器 always 延时的问题

关于 触发器 always 延时的问题

时间:10-02 整理:3721RD 点击:
被一个问题困死在 实验室。笨的我诶。
求问
always@(posedge clk)
  ld_<r=#1 ld;
这种   触发器赋值的语句是怎么延时的呢?
就是ld的值 要在下个周期赋值给 ld_r 呢?
是不是 因为  写的测试代码的问题?
因为有的时候写的同样的代码 触发器赋值是延时的了。有的时候又冒得延时?
想不通啊想不通。
求高人 指点啊,求高人指点。

#1的东西是不可综合的,如果在电路级是不可能实现延时的,一般都是用在仿真中,就是行为级上有这个操作,但是寄存器或者门级就没有。不知道你说的有时候有,有时候没有的情况分别是什么时候。

回去好好看看书

always@(posedge clk)
  ld_<r=#1 ld;
这句话,在clk上升沿的时候采样ld的值,然后延迟1个时间单位后,赋值给ld_r

二楼总结的好。
关于你问的有时延时有时没有延时,可能跟你仿真时候加的跟delay相关的option有关吧。
建议好好看书,好好看tool的user manual

方便仿真debug
综合会被忽略

一般延时都是通过寄存器来完成的,无法直接综合的

加个中间变量

同意四楼

二楼和四楼正解。事实上,这种延迟的写法在电路的功能实现上一点用处都没有,只是有的时候在验证中要看做过了多少条语句,或者说走过了多少个寄存器才设置的这个时间。完全是为验证服务的。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top