1.什么是竞争与冒险?
竞争:两个输入信号同时向相反方向的逻辑电平跳变的现象(即一个由1变为0,另一个从0变为1)。
冒险:因竞争导致在输出端可能产生尖峰脉冲的现象。
(指在组合逻辑电路中,当输入信号改变状态时输出端可能会出现错误信号从输出波形上看,出现了在理论设计中,本不该出现的干扰脉冲信号。)“竞争”是原因,输入级,“冒险”是结果,输出级。
2.竞争与冒险的判别
什么时候需要检查冒险?
在数字系统设计中,并不是每个组合电路都需要进行冒险分析和消除。
(1)需要进行冒险分析和消除:
- 关键路径上的组合电路:在关键路径上,由于时序和时钟抖动等因素,可能会引发冒险。
- 异步接口:当系统中存在异步接口时,由于时钟域之间的不同步,可能会引发冒险。
- 状态机:当设计中包含状态机时,状态转换可能会受到冒险的影响。
(2)可能不需要进行冒险分析和消除:
- 简单的组合逻辑:当组合逻辑非常简单,没有关键路径或异步接口时,冒险的风险较低,可能不需要进行冒险分析和消除。
- 同步接口:在同步接口中,由于时钟的同步性,冒险的风险较低。因此,可能不需要进行冒险分析和消除。
竞争冒险的判别
逻辑表达式化简法(卡洛图法:如果一个逻辑函数的表达式的卡洛图中所画圈没有重叠并且相切,则判定有竞争冒险。)本质上两者是一样的。
3.如何消除竞争冒险?
(1)增加选通控制信号,避开毛刺
引入选通信号S,因为S的高电平出现在电路到达稳定状态后,所以图中的G1-G3每个门都不会出现尖峰脉冲。
(2)加滤波电容,消除毛刺的影响
(3)修改逻辑设计,增加冗余项(卡洛图)
1)存在竞争的情况下,增加冗余项,实现输出消除毛刺
2)卡诺图法,在两个相切的圆之间,相切接触的地方增加一个连接圆