目录

1、竞争与冒险现象

2、如何判断是否具有竞争-冒险

2.1 代数法

 2.2 卡诺图法

2.3 观察法

2.4 实验法

3、消除竞争与冒险的方法

3.1 接入滤波电容,消除毛刺的影响

3.2 引入选通脉冲,避开毛刺

3.3 修改逻辑设计,增加冗余项消除逻辑冒险


1、竞争与冒险现象

        在组合电路中,某一输入变量经过不同途径传输后,到达电路中某一汇合点的时间有先有后,这种现象称竞争;由于竞争而使电路输出发生瞬时错误(尖峰脉冲)的现象叫做冒险。 或者说由于竞争产生的毛刺叫做冒险。

形式:

F=AA'  或  F=A + A'

观察以下门电路,Gate1为 非门,Gate2为 与门,实现了逻辑

 理想情况下输入与输出的关系为:

        但是由于门电路的输入到输出是一定会有时间延迟的,就会导致这个时间通常叫做电路的开关延迟,出现以下毛刺。(Gate1输入到输出有一定的延迟,导致 ~A信号就会滞后于A一段时间)

 ~A信号滞后于A一段时间就会导致尖峰脉冲的出现:

2、如何判断是否具有竞争-冒险

        判断电路是否存在竞争-冒险的方法主要有以下四种:

代数法、卡诺图法、观察法、实验法

2.1 代数法

        在逻辑函数表达式中,若某个变量同时以原变量反变量两种形式出现, 就具备了竞争条件。去掉其余变量(也就是将其余变量取固定值 0 或 1),留下有竞 争能力的变量,如果表达式为 F=A+A‘,就会产生 0 型冒险(F应该为1而实际却为0);如果表达式为 F=AA’, 就会产生 1 型冒险。

表达式 F=AB+A'C,当 B=C=1 时,F=A+A‘,在A发生跳变时,可能出现 0 型冒险

表达式F=(A+B)(A'+C),当B=C=0 时,F=AA',在A发生跳变时,可能出现 1 型冒险

F=A+A‘,产生负向尖峰脉冲:

 F=AA',产生正向尖峰脉冲:

 2.2 卡诺图法

        观察卡诺图中是否有两个圈相切但不相交的情况,如有则存在竞争-冒险的现象,如下图

F=AB+A'C

         如果B=C=1时,表达式就会变为 F=A+A‘ 产生竞争-冒险现象,下图两个圈不相切但不相交,无竞争-冒险现象。

2.3 观察法

        根据电路图,观察输入变量到达输出端的多个路径上经过的门电路器件的数量是否不同,如果不同,则有可能尝试竞争-冒险现象

2.4 实验法

        通过示波器进行观察

        实际上逻辑电路级数多、输入变量多,判断竞争冒险非常复杂,广泛采用仿真和实际测量逻辑电路来观察是否存在竞争冒险的现象。

3、消除竞争与冒险的方法

  •  接入滤波电容,消除毛刺的影响
  •  引入选通脉冲,避开毛刺
  • 修改逻辑设计,增加冗余项消除逻辑冒险

3.1 接入滤波电容,消除毛刺的影响

        利用电容的滤波作用,消去尖峰脉冲,简单易行,效果有保障,但增加了输出电压波形的上升时间和下降时间,使波形变坏。

例如:

        假设出现了 F=AA',产生了不应有的正向尖峰脉冲,那么再输出信号F前加一个电容后,这就会使得电容电压不可突变,当F中的电压发生突变时,由于电容的存在,将其变成一个充放电的过程,即电压突变就变成了一个缓慢的充放电过程,见下图。对于数字逻辑而言,高电平和低电平是一个允许的范围,所以这种方法对于逻辑工作而言,完全有保障,对于后级电路不会产生任何逻辑混乱

       不足之处,因为电容的滤波作用,增加了输出电压波形的上升时间和下降时间,使波形变坏,见下图,虽然波形不好看了,但整体上影响不是很大。

 

3.2 引入选通脉冲,避开毛刺

        在输入信号变化,并有可能出现竞争冒险,选用一个选通信号将输出门封锁,等到所有输入信号都变为稳态后,再去掉封锁输出信号。这样就避免了电路输出端出现瞬时尖峰脉冲。

         就是在某一个时刻,A、A'信号变化之前,先让C=0,并让C保持一段时间,在这段时间内,让信号A、A'开始发生变化,且保持时间大于信号变化的时间,让信号稳定下来后将C=1,于是F得到没有毛刺的信号。接下来不断的重复C=0、C=1。

        该方法虽然消除了竞争-冒险,但也会带来一些电路的负担,或者说付出的成本。对选通控制信号的宽度(足够宽)和产生的时间(在C=0之前)严格要求,电路工作变复杂了

3.3 修改逻辑设计,增加冗余项消除逻辑冒险

        适当的逻辑表达式中增加一些冗余项,它们的增加不改变逻辑功能,但是可以消除互补信号产生的竞争-冒险现象。

例如

F=AB+A'C

        由表达式得到卡诺图,两个卡诺圈相切处即可产生竞争-冒险现象 F=A+A' (相切处B=1,C=1),那怎样增加冗余项呢?

        在相切处多画一个卡诺圈,将切点给覆盖掉,得到F=AB+A'C+BC,多了BC并不影响结果,此时当B=C=1时,F=A+A'+1=1。这意味这不管B、C怎么变,F恒为1,这样竞争-冒险就消失了。但电路会相对变得复杂。

 再举个较为复杂的例子:

 参考:

竞争与冒险_Crazzy_M的博客-CSDN博客_竞争与冒险

闫石  《数字电子技术基础》第六版 194页-199页

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐