组合逻辑电路中的竞争冒险

实际上,信号通过连线及集成门都有一定的延迟时间,也可能有前后快慢的差异。由于从输入到输出的过程中,不同通路上门的级数不同,或者门电路平均延迟时间的差异,使信号从输入经不同通路传输到输出级的时间不同。受到上面因素的影响后,可能在输入信号变化的瞬间,在输入端出现一些不正确的尖峰信号输出,通常把这种现象称为竞争冒险。
1、产生竞争冒险的原因
首先来分析图1所示电路的工作情况,以建立竞争冒险的概念。在图1(a)中,与门g2的输入是a和a两个互补信号。由于g1的延迟,a的下降沿要滞后于a的上升沿,因此在很短的时间间隔内,g2的两个输入端都会出现高电平,致使它的输出出现一个高电平脉冲(它是按逻辑设计要求不应出现的干扰脉冲),如图1(b)所示。与门g2的2个输入信号分别由g1和a端的两个路径在不同的时刻到达的现象,通常称为竞争,由此而产生输出干扰脉冲的现象称为冒险。
(a)逻辑电路(b)工作波形
图1 产生正跳变脉冲的竞争冒险
下面进一步分析组合逻辑电路产生竞争冒险的原因。设有一个逻辑电路如图2(a)所示,其工作波形如图2(b)所示。它的输出逻辑表达式为l=ac+bc。由此式可知,当a和b都为1时,l=1,与c的状态无关。但是,由图2(b)可以看出,在c由1变0时,c由0变1有一延迟时间,在这个时间间隔内,g0和g3的输出ac 和bc 同时为0,而使输出出现一负跳变的窄脉冲,即冒险现象。这是产生竞争冒险的原因之一。由以上分析可知,当电路中存在由反相器产生的互补信号,且在互补信号的状态发生变化时可能出现冒险现象。
图2 产生负跳变脉冲的竞争冒险 (a)逻辑电路 (b)工作波形
2、消除竞争冒险的方法
针对上述原因,可以采取以下措施消除竞争冒险现象。
1. 发现并消掉互补变量
例如,函数式f=(a+b)(a+c),在b=c=0时,f=aa。若直接根据这个逻辑表达式组成逻辑电路,则可能出现竞争冒险。可以将该式变换为f=ac+ab+bc,这里已将aa消掉。根据这个表达式组成逻辑电路就不会出现竞争冒险。
2. 增加乘积项
对于图2(a)所示的逻辑电路,可以根据以前所介绍的常用恒等式,在其输出逻辑表达式中增加乘积项ab。这时,l=ac+bc+ab,对应的逻辑电路如图3所示。由图2(b)可以看出,出现负跳变窄脉冲处,正是a和b均为1时。显然,对于图3所示电路,当a=b=1时,g5输出为1,g4输出亦为1,这就消除了c 跳变时对输出状态的影响,从而消除了竞争冒险。
图3 增加了乘积项ab的逻辑电路
3.输出端并联电路
如果逻辑电路在较慢速度下工作,为消除竞争冒险,可以在输出端并联一电容器,其容量为4~20pf之间。如图4(a)所示,即在图2(a)所示电路的输出端并联电容c。由于或门g4存在一输出电阻r0,致使输出波形上升沿和下降沿变化比较缓慢。因此对于很窄的负跳变脉冲起到平波的作用,如图4(b)所示。显然,这时在输出端不会出现逻辑错误。
以上介绍了产生竞争冒险的原理和克服竞争冒险的方法。要能很好地解决这一问题,还必须在实践中积累和总结经验。
图4 并联电容器消除竞争冒险 (a)电路 (b)输出波形