课外阅读7 竞争—冒险现象
由于信号转换瞬间电路传递信号的速度(平均传输延迟时间)的影响,有些电路往往会在瞬间变化时产生违反常规逻辑的干扰输出(电压毛刺),甚至会造成系统中的某些环节误动作,从而产生错误的结果。图2-47清晰说明了门电路出现竞争—冒险现象的原因。在如图2-47(a)所示的逻辑电路中,输入端同时输入信号a、b、c、d,通过两路逻辑电路运算后输出,当信号到达输入端与门时,A段信号和B段信号将会由于前级电路不同产生不同的延迟。若某一瞬间正常逻辑运算A信号应由高电平变低电平,而B信号应由低电平变高电平,由于电路延迟,A信号翻转滞后B信号发生,则输出Y端将会出现如图2-47(b)所示的瞬态尖脉冲。这种违背稳态逻辑关系的瞬态尖脉冲又称电压毛刺或噪声。如果前级电路延迟效果正好相反,A信号先翻转,B信号后翻转,则门电路将出现稳定的输出Y。
图2-47 竞争—冒险现象
我们把门电路两个输入端信号同时向相反的逻辑电平跳变(一个从0跳1,另一个从1跳0)的现象叫做竞争。由于实际数字系统中信号变化快慢的随机性,只要存在竞争现象,就有可能在输出端出现违背正常逻辑关系的尖峰脉冲。这种由于竞争而在电路输出端可能出现尖峰脉冲的现象叫做竞争—冒险。
1.竞争—冒险的识别方法
(1)代数法判断:在输入逻辑变量每次只有一个改变状态的简单情况下,可通过函数式来判断电路是否存在竞争—冒险。
假如输出端门电路的两个输入是A和经过不同门电路的传输延迟时间,那么当变量A的状态突变时,输出端必然存在竞争—冒险,因此,只要输出函数在一定条件下能出现Y=或的形式,就可判定该电路存在竞争—冒险。如图2-48所示,当电路中的B=C=1时,电路处于稳态,则函数,因此电路存在竞争—冒险。
(2)用实验的方法判断:可在电路输入端加入所有可能发生的状态变化的波形,观察输出端是否有尖峰脉冲,这个方法比较直观可靠。
(3)使用计算机辅助分析手段判断:通过在计算机上运行数字电路的模拟程序,能够迅速查出电路是否由于竞争—冒险而输出尖峰脉冲。目前可供选用的这类程序已有很多。
(4)用卡诺图法判断:凡是函数卡诺图中存在相切而不相链(相交)的包围圈(方格群)的逻辑函数都存在着竞争—冒险现象。如图2-49所示的卡诺图是与图2-48中的逻辑电路对应的。可以看到,卡诺图中存在相切而不相交的方格群。
图2-48 竞争—冒险的判断
图2-49 图2-48的卡诺图
2.消除竞争—冒险的方法
(1)引入封锁脉冲:在输入信号状态转换的时间内,把可能产生尖峰脉冲输出的门封锁。如图2-50(a)中的负脉冲P1就是这样的封锁脉冲。封锁脉冲要与输入信号的状态转换同步,其脉宽要大于电路的状态转换时间。
(2)引入选通脉冲:如图2-50(a)中的P2,当信号进入稳态时,在选通脉冲高电平期间它可使门电路有正常的输出。
(3)接滤波电容:因为尖峰脉冲一般很窄(几十纳秒数量级),所以在门的输出端并接一只几百皮法的电容,就可把尖峰脉冲的幅度削弱至门电路的阈值电压以下,如图2-50(a)中的Cf。
图2-50 消除竞争—冒险的几种方法
(4)修改逻辑设计:对于如图2-48所示的电路,若给函数式增加冗余项BC,变换为,那么当B=C=1时,无论A如何改变,Y将始终为1,不会因A的变化引起竞争—冒险。这一方法反映在卡诺图中,就是将原来相切的两个方格群用一个多余的方格群链起来,如图2-51所示。
图2-51 逻辑设计修改