verilog语言的非阻塞赋值为什么会使信号延时一个周期?

文章解释了在时序逻辑电路中,当系统时钟上升沿到来时,由于D触发器的物理连接和延迟,输出会滞后于输入一个时钟节拍,这是由触发器本身的物理延迟所引起的。作者通过波形图展示了这一现象并分析了原因。
摘要由CSDN通过智能技术生成
always@(posedge system_clock)
out<=in;

上述代码中,通过检查系统时钟信号上升沿来临,给out赋值,波形图如下:

通过这个输出波形我们也大致可以看出:时序逻辑电路中,每当系统时钟上升沿来临的时候,实际上采集到的是输入信号前一时刻的值。

这是因为,在系统时钟上升沿到来的时候,这时数据想立即更新传入到输出Q端,但由于D触发器内部的物理连线以及上一级触发器的Q传到这一级D的时间,此时的Q并不能被直接更新成最新的数据输入,因此此时刻所采集到的数据其实是上一时刻传入的D值 ,这也就造成了在时序逻辑电路中,输出会滞后与输入一个时钟节拍的原因。

 归根到电路本身,其实可以发现是由于触发器本身的物理延迟所导致的。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值