惯性延迟与阻塞/非阻塞赋值
作者:互联网
最近在编写仿真的时候顺便研究了一下电路延迟,延迟分两种,一种是惯性延迟,一种是传输延迟.
惯性延迟可以理解为滤波,其本身的产生原因也是电路中存在的大量电容,电容有充放电效应,因此可以平波峰波谷,类似水库.
但是要注意的一点是,网上的解释里面的图片都是一个带尖峰脉冲的输入进来,输出丝毫不变,这是不可能的,实际的图像应该是这个尖峰被平滑成了土堆,能量依然能够传递,但是触发器的0/1判断也是有界限的,所以平滑之后没有达到输出改变的界限.就相当于没有起效,尖峰脉冲似乎就被"滤掉了".
传输延迟不能拿来滤波,就是走线的延迟,器件的延迟.尖峰脉冲会被它们如实传递下去.
阻塞赋值和非阻塞赋值,在verilog里是一个难点,但是我觉得不存在这个概念,因为同为硬件描述语言,,VHDL中不存在这个概念.
总的来说电路里只有组合逻辑和时序逻辑,所谓阻塞和非阻塞,只是VERILOG在时序格式(always)的代码段里硬写组合逻辑所造成的问题.对于我个人而言,时序逻辑一律使用"<=",组合逻辑都使用"=".
而且,reg和wire声明的优先级很低,也就是说,假如我们声明了wire,在always块里按照组合逻辑给它写,综合出来还是wire,这就很无语了,整这些语法特性画蛇添足.
标签:逻辑,wire,阻塞,时序,尖峰,赋值,延迟 来源: https://www.cnblogs.com/aliothx/p/13455452.html