惯性延迟与阻塞/非阻塞赋值

  最近在编写仿真的时候顺便研究了一下电路延迟,延迟分两种,一种是惯性延迟,一种是传输延迟.

  惯性延迟可以理解为滤波,其本身的产生原因也是电路中存在的大量电容,电容有充放电效应,因此可以平波峰波谷,类似水库.

  但是要注意的一点是,网上的解释里面的图片都是一个带尖峰脉冲的输入进来,输出丝毫不变,这是不可能的,实际的图像应该是这个尖峰被平滑成了土堆,能量依然能够传递,但是触发器的0/1判断也是有界限的,所以平滑之后没有达到输出改变的界限.就相当于没有起效,尖峰脉冲似乎就被"滤掉了".

  传输延迟不能拿来滤波,就是走线的延迟,器件的延迟.尖峰脉冲会被它们如实传递下去.

  阻塞赋值和非阻塞赋值,在verilog里是一个难点,但是我觉得不存在这个概念,因为同为硬件描述语言,,VHDL中不存在这个概念.

  总的来说电路里只有组合逻辑和时序逻辑,所谓阻塞和非阻塞,只是VERILOG在时序格式(always)的代码段里硬写组合逻辑所造成的问题.对于我个人而言,写时序逻辑一律使用"<=",写组合逻辑都使用"=".

  而且,reg和wire声明的优先级很低,也就是说,假如我们声明了一个信号为reg,在always块里按照组合逻辑给它写,综合出来还是wire,这就很无语了,整这些语法特性画蛇添足.

---------------------------------------------------------------------------------------------------------------分割线------

 

posted @ 2020-08-07 21:55  天山明月  阅读(527)  评论(0编辑  收藏  举报