冒险现象(Hazard)是一种由于数字电路内部设计或者外部影响造成错误数字信号的不良效应。数字电路中,输入的数字信号改变或进行一些逻辑运算(如非、与、或等)时,输出信号没有能完全同步改变,从而引发短暂时间内的错误信号脉冲输出。
定义冒险现象(Hazard)是一种由于数字电路内部设计或者外部影响造成错误数字信号的不良效应。数字电路中,输入的数字信号改变或进行一些逻辑运算(如非、与、或等)时,输出信号没有能完全同步改变,从而引发短暂时间内的错误信号脉冲输出,这种错误信号的脉冲很窄,被称作“毛刺”(glitch)。
信号在器件内部通过连线和逻辑单元时,都有一定的延时。延时的大小与连线的长短和逻辑单元的数目有关,同时还受器件的制造工艺、工作电压、温度等条件的影响。信号的高低电平转换也需要一定的过渡时间。由于存在这两方面因素,多路信号的电平值发生变化时,在信号变化的瞬间,组合逻辑的输出有先后顺序,并不是同时变化,往往会出现一些不正确的尖峰信号,这些尖峰信号称为"毛刺"。如果一个组合逻辑电路中有"毛刺"出现,就说明该电路存在冒险。
毛刺并不是对所有的输入都有危害,例如D触发器的D输入端,只要毛刺不出现在时钟的上升沿并且满足数据的建立和保持时间,就不会对系统造成危害,所以D触发器的D输入端对毛刺不敏感。根据这个特性,在系统设计时尽可能采用同步电路,这是因为同步电路信号的变化都发生在时钟沿,只要毛刺不出现在时钟的沿口并且不满足数据的建立和保持时间,就不会对系统造成危害。实际上,由于毛刺很短,多为几纳秒,基本上都不可能满足数据的建立和保持时间。1
分类最常见的三种冒险现象分别是静态险象、动态险象和功能险象。
静态冒险输入信号的改变只引起一个错误信号脉冲。组合逻辑电路即使在输入逻辑值没有发生变化的情况下也可能发生跃变,产生这些非预期的干扰脉冲“假信号”。称可能发生假信号脉冲的电路存在冒险。如果输入有变化而输出不应发生变化的情况下,出现了单个窄脉冲,称为电路产生了静态冒险。只有存在静态冒险才可能导致动态冒险。
动态冒险dynamichazard,输入信号的改变引起多个错误信号脉冲
功能冒险functionhazard,多个输入信号变化不同步产生的错误信号
输出信号毛刺为负向脉冲的为0型险象,通常在与或、与非、与或非型电路中出现;输出信号为正向脉冲的为1型险象,通常在或与、或非型电路中出现。
竞争冒险的判断在组合电路的设计中,为克服冒险,应对竞争冒险的可能性加以判断,判断方法大致有两种。
代数法判断的方法是在或与输入端的两个输入的变量是否正好相反,或者在与输入端的两个变量是否正好相反并有延时。如果满足此两种情况,则可能存在竞争冒险的现象。2
卡诺图法利用卡诺图可以判断组合逻辑电路是否可能存在竞争冒险,方法为: 根据逻辑函数的表达式,作出其卡诺图,若卡诺图中填入1的格所形成的卡诺图有两个相邻的圈相切但不相交,则该电路存在竞争冒险的可能性。2
消除方法冒险现象是一种临时性的问题,因为电路最终会稳定在所需要的功能信号上。尽管这样,消除险象还是十分必要,特别是当信号需要接入下一级系统里时。
在对组合逻辑电路进行分析及设计时,通常没有考虑器件的延时问题,而实际的器件是存在延时的,竞争冒险现象就是由于器件的延时造成的。为了保证电路工作的稳定性及可靠性,必须设法消除竞争冒险。在现代电子设计中,冒险现象突出表现为毛刺,必须加以消除。2
设计无险象的电路设计一个不发生险象的数字电路是消除险象的最理想的办法。但是,这种方式对于一些复杂的电路来说,设计出的电路会比较复杂,使电路变得更为复杂,甚至导致成本的上升。简单电路的静态险象则可以应用卡诺图方法。
在卡诺图中圈选“1”或“1”的时候,如果可以避免某一个所选区域与另一个区域相切,即可避免冒险现象的发生。不过,这种卡诺图圈选方式虽然可以消除因逻辑设计产生的险象,以上圈选方式得到的最小项积之和式或最大项和之积式很可能不是最简与或式或最简或与式,即产生了冗余项。
选通法险象通常是在输入信号改变后的较短时间内发生,如果在错误信号的脉冲消退后再进行读值,也能避免错误信号造成的危害。实际可以使用选通电路来实现此功能。
在电路上加上一个选通信号,当输入信号变化时,输出端与电路断开,当输入稳定后,选通信号工作,使电路输出到输出端。2
使用滤波电路采用额外的滤波电路也可以缓解错误信号的脉冲。通常,错误信号脉冲都是高频信号,和正常的、所需要的信号频率差别较大,可以通过滤波电路进行消除。这种方式的缺点则在于,错误信号虽然被消除了,但是输出信号的上升沿和下降沿也随之被破坏。
如果逻辑电路在较慢速度下工作,其输出的波形宽度非常窄,可以在输入端并联一个电容器,其容量为4~ 20pf之间,这主要靠电容的平波作用,来滤去其尖脉冲,使其落在能进行正常逻辑判断的电平值之内,从而消除输出端逻辑出错的可能。2
本词条内容贡献者为:
刘宝成 - 副教授 - 内蒙古民族大学