在数字逻辑设计中,并不是说最简的逻辑表达式在设计组合逻辑时一定是最优的,可能就会出现本次介绍的竞争与冒险问题,所以需要了解竞争与冒险的检验以及竞争与冒险的避免消除方法。
一、竞争与冒险现象及其形成原因
两个输入信号同时向相反方向的逻辑电平跳变的现象(即一个由1- > 0, 另一个从0 -> 1),称为竞争。
因竞争导致在输出端可能产生尖峰脉冲的现象,称为冒险。
通俗一点的说,信号由于经由不同路径传输达到某一汇合点的时间有先有后的现象,就称之为竞争,由于竞争现象所引起的电路输出发生瞬间错误的现象,就称之为冒险。
竞争表现在输出波形上,则是出现0电平或者1电平的尖峰,称 “毛刺”。
上图表示一个与门,在输入信号A从1变为0,并且B 从)变为1,而且B信号首先上升到VIL,这样会在极短时间内,产生一个毛刺。
二、竞争冒险的影响因素:
对于一个非门和一个与门,本来在理想情况下Y的输Y出应该是一直稳定的0输出,但是实际上每个门电路从输入到输出是一定会有时间延迟的,这个时间通常叫做电路的开关延迟。而且制作工艺、门的种类甚至制造时微小的工艺偏差,都会引起这个开关延迟时间的变化。
下图图很好的说明了组合逻辑中的冒险竞争对于电路的影响。
三、 检查竞争冒险的常用方法:
-
逻辑表达式化简法
如果输出端门电路的两个输入信号A和A’是输入变量A经过两个不同的传输途径而来,则当输入变量发生变化时,输出端就可能产生尖峰脉冲。故对于输出端的逻辑函数在一定条件下能化简成:
Y=A+A’ , 存在 “0” 型竞争;
Y=AA’ ,存在 “1” 型竞争;
的情况下,则判定一定有竞争冒险现象。 -
卡洛图法
即如果一个逻辑函数的表达式的卡洛图中所画圈没有重叠并且相切,则判定有竞争冒险。(本质上还是利用上面的方法,只是比较直观形象的判断)
对于以下卡洛图,左图存在竞争冒险,而由图不存在竞争冒险。 -
例:对于逻辑函数Y=AB+A’C
当B=C=1时,Y=A+A’,故此函数存在竞争冒险。
画出此逻辑函数的卡洛图,发现和上左图有类似的,因此存在竞争与冒险。
四、消除冒险竞争
-
加滤波电容,消除毛刺的影响
在输出端并联接一个很小的滤波电容,削弱尖峰脉冲的幅度至门电路的阈值以下。
简单易行,但是会增加输出电压波形上升时间和下降时间,使波形变坏。 -
加选通信号,避开毛刺
引入选通信号p,因为p的高电平出现在电路到达稳定状态后,所以上图中的G0-G3每个门都不会出现尖峰脉冲。
注意:
G0-G3的信号也会变成脉冲信号,并且宽度需要和脉冲相同。如,当AB=11时,Y3并不会立刻变为1,需要等到p脉冲出现过后,才给出一个正脉冲。 -
增加冗余项,消除逻辑冒险。(卡洛图)
1)存在竞争的情况下,增加冗余项,实现输出消除毛刺。
例:逻辑表达式如下:Y = A’BC + AB
当B = C = 1时, 电路存在“0”型竞争。增加项:冗余项 B&C
更变后:Y = A’BC + AB + B C (利用消去冗余项公式)2)还有卡诺图法,在两个相切的圆之间,相切接触的地方增加一个连接圆。
对于上面的卡洛图,在相切的位置增加 冗余项 B’C,故函数表达式Y=A’B’+AC+B’C