数字电路中,信号传输与状态变换时都会有一定的延时。 ◆在组合逻辑电路中,不同路径的输入信号变化传输到同一点门级电路时,在时间上有先有后,这种先后所形成的时间差称为竞争(Competition)。 ◆由于竞争的存在,输出信号需要经过一段时间才能达到期望状态,过渡时间内可能产生瞬间的错误输出,例如尖峰脉冲。这种现象被称为冒险(Hazard)。 ◆竞争不一定有冒险,但冒险一定会有竞争。 例如,对于给定逻辑 F = A & A',电路如左下图所示。 由于反相器电路的存在,信号 A' 传递到与门输入端的时间相对于信号 A 会滞后,这就可能导致与门最后的输出结果 F 会出现干扰脉冲。如右下图所示。 其实实际硬件电路中,只要门电路各个输入端延时不同,就有可能产生竞争与冒险。 例如一个简单的与门,输入信号源不一定是同一个信号变换所来,由于硬件工艺、其他延迟电路的存在,也可能产生竞争与冒险,如下图所示。
判断方法◆代数法 在逻辑表达式,保持一个变量固定不动,将剩余其他变量用 0 或 1 代替,如果最后逻辑表达式能化简成 Y = A + A' 或 Y = A · A' 的形式,则可判定此逻辑存在竞争与冒险。 例如逻辑表达式 Y = AB + A'C,在 B=C=1 的情况下,可化简为 Y = A + A'。显然,A 状态的改变,势必会造成电路存在竞争冒险。 ◆卡诺图法 有两个相切的卡诺圈,并且相切处没有其他卡诺圈包围,可能会出现竞争与冒险现象。 例如左下图所存在竞争与冒险,右下图则没有。
其实,卡诺图本质上还是对逻辑表达式的一个分析,只是可以进行直观的判断。 例如,左上图逻辑表达式可以简化为 Y = A'B' + AC,当 B=0 且 C=1 时,此逻辑表达式又可以表示为 Y = A' + A。所以肯定会存在竞争与冒险。 右上图逻辑表达式可以简化为 Y = A'B' + AB,显然 B 无论等于 1 还是 0,此式都不会化简成 Y = A' + A。所以此逻辑不存在竞争与冒险。 需要注意的是,卡诺图是首尾相临的。如下图所示,虽然看起来两个卡诺圈并没有相切,但实际上,m6 与 m4 也是相邻的,所以下面卡诺图所代表的数字逻辑也会产生竞争与冒险。
◆其他较为复杂的情况,可能需要采用 “计算机辅助分析 + 实验” 的方法。
|