【硬件】竞争和冒险

竞争:在组合电路中,信号经由不同的途径达到某一会合点的时间有先有后,这种现象称为竞争。

冒险:由于竞争而引起电路输出发生瞬间错误现象称为冒险。表现为输出端出现了原设计中没有的窄脉冲,常称其为毛刺。

竞争与冒险的关系:有竞争不一定会产生冒险,但有冒险就一定有竞争。

在组合逻辑中,由于门的输入信号通路中经过了不同的延时,导致到达该门的时间不一致叫竞争。
产生毛刺叫冒险。如果布尔式中有相反的信号则可能产生竞争和冒险现象。

下面的图片很好的描述了竞争和冒险的现象:

ABCD在电平翻转的时候不一致,就导致输出结果TEST有毛刺。

如何消除竞争和冒险:

首先确定竞争和冒险是否影响系统,因为竞争和冒险产生的是毛刺,时间较短,有的电路信号建立时间保持时间较长,自身就可以过滤这些冒险。

1、增加滤波电容

2、使用格雷码,一次只有一位改变。

3、利用冗余项法

  利用冗余项消除毛刺有2种方法:代数法和卡诺图法,两者都是通过增加冗余项来消除险象,只是前者针对于函数表达式而后者针对于真值表。以卡诺图为例,若两个卡诺圆相

切,其对应的电路就可能产生险象。因此,修改卡诺图,在卡诺图的两圆相切处增加一个圆,以增加多余项来消除逻辑冒险。但该法对于计数器型产生的毛刺是无法消除的。

  在仿真时,我们也可能会发现在FPGA器件对外输出引脚上有输出毛刺,但由于毛刺很短,加上PCB本身的寄生参数,大多数情况下,毛刺通过PCB走线,基本可以自然被滤

除,不用再外加阻容滤波。

参考资料:http://blog.163.com/zhangmaochu@126/blog/static/3736062220094300473146/

/*生命如此美好。认真工作之余,不要忘了认真对待生活,认真对待身边人!*/
原文地址:https://www.cnblogs.com/isha2088/p/6408374.html