竞争与冒险

1、产生原因

根本原因在于信号传输与状态变换的延时问题,两根导线的信号到达同一门级电路的变化不可能完全同步,这一时间差就称为竞争。由于具有时间差,可能就会出现非理想输出,经过一小段时间输出才能平稳下来达到理想输出,这段非理想输出就是冒险。

竞争不一定有冒险,冒险一定有竞争。

举例:与门的两个输入端延时不同,输出就可能发生错误

2、判断方法

代数法

将其他元素固定为1,对某一元素进行逻辑化简。若逻辑化简后,表达式为A+A'或AA',则存在竞争与冒险。

卡诺图法

若相切的两个圈相切处没有圈,则可能出现竞争与冒险

计算机辅助分析+实验

3、消除方法

增加滤波电容,滤除窄带脉冲

具体操作是在输出端并联小电容,将尖峰脉冲幅度削弱到门电路阈值以下。但此操作会增加输出电压翻转时间。

增加冗余

对相切处的卡诺图加圈,增加冗余项

触发器打拍

因为对于触发器来说,它只在时钟上升沿进行采样,只要毛刺不刚好出现在时钟上升沿并且不满足建立时间和保持时间,触发器就采不到毛刺。

打两拍比较保险。

采用格雷码计数器

普通计数器,从5计到6真正的触发器变化可能是4‘b101 -> 4'b111 ->4'b110,如果刚好有assign cout =(count[3:0]==3'd7)就会出现短暂脉冲。如果采用格雷码计数器,因为相邻数之间单bit变化,就可以有效避免竞争冒险。

但由于一般计数器都是时钟同步的,所以因为触发器毛刺不敏感特性,所以普通二进制编码也影响不大。

另外格雷码可以用在高速时钟下减少信号翻转降低功耗的场景。

posted @   骑猪上树的少年  阅读(250)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
回到顶部
点击右上角即可分享
微信分享提示

目录导航