竞争的定义:组合逻辑电路中,输入信号的变化传输到电路的各级逻辑门,到达的时间有先后,也就是存在时差,称为竞争。
冒险的定义:当输入信号变化时,由于存在时差,在输出端产生错误,出现了瞬时的干扰脉冲现象,称为冒险(险象)。
通过上面的定义可以得出,竞争不一定产生冒险,当输入信号传输到各逻辑门时存在竞争,如果输出端不出现瞬时的干扰脉冲,就不会产生冒险,但是如果产生冒险,就一定存在竞争。
举个例子如下图所示:
F=A'+A,但是如果非门存在延时,A信号经过两条路径到达或门,在或门的输入端就存在竞争。
当A从0变化到1时,两条到达或门的路径虽然存在竞争,但是输出端没有出现瞬时的脉冲,即输出端不会出现冒险。输出端的值都为1.
当A从1变化到0时,因为A信号是先从1变为0,然后才是A'从0变为1,也就是A'经过了一个非门,A'变化比A晚,A和A'有那么一个瞬时取值都相同,都为0,这样导致了输出端出现了一个瞬时的负脉冲,也就是产生了冒险,其它时间A和A'取值相反,电路的输出端都为1。
如下面波形图所示,虽然A变化都会产生竞争,但是只有在A从1变为0时,才会产生冒险。
实际上,两个输入的与门也会产生冒险
当AB取值为01或者AB取值为10时,输出的F都应该为0。但是当AB从01变为10时,如下波形图所示,由于两个信号的变化不可能同时完成,如果A先于B变化,就会产生一个干扰的脉冲,也就是出现冒险。如果A滞后于B变化,就不会产生冒险。
上面的这两种情况,属于组合逻辑电路在输入信号变化前后,稳定的输出值相同,而仅仅在转换瞬间产生冒险,这种冒险称为静态冒险。
静态冒险产生的原因有两种如下图
功能险象:当有两个或者两个以上的输入信号发生变化时,由于可能经历的路径不同,所产生的险象称为功能险象。功能险象时逻辑函数本身固有的。
逻辑险象:当输入信号只有一个发生变化,或者虽然有多个发生变化但是没有发生功能险象的可能,由于门的延迟不同,产生了静态险象,称为逻辑险象,前面的两个例子都是逻辑险象。
后续还有功能险象的判断方法、逻辑险象的判断方法,以及险象的消除方法。