0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

竞争与冒险产生的原因,判断方法和避免竞争与冒险的方法

FPGA学习笔记 来源:FPGA学习笔记 作者:FPGA学习笔记 2024-02-18 14:34 次阅读

在实际的电路设计过程中,存在传播延时和信号变换延时。由延时引起的竞争与冒险现象会影响输出的正确与否。下面将就竞争与冒险产生的原因判断方法避免竞争与冒险的方法进行讨论,希望对诸位有所帮助。

产生原因

竞争:在组合逻辑电路中不同路径的输入信号到达同一个门级电路时,在时间上有先有后,这种先后时间上的差异称之为竞争(Competition)

冒险:由于竞争的存在,信号在过渡时间瞬间可能产生错误的输出,例如尖峰脉冲。成为冒险。

有竞争不一定产生冒险,但是有冒险一定存在竞争。

判断方法

代数法

在电路的逻辑表达式中保持一个变量不变,其余变量用0或者1替代如果逻辑表达式可以化成:

F = A + ~A

F = A·~A

的形式则可以判断出此逻辑存在竞争与冒险。

卡诺图法

存在两个相切的卡诺图,若在相切处没有其他卡诺图包围,可能会出现竞争与冒险现象。如下图所示:

wKgaomXNrUKATNocAABL_BWhff4575.png

F = ~A·~B + A·C

wKgZomXNrU6AIOPAAAAw7O0aAXU346.png

F = A·~B + B·~C

消除方法

常见的避免竞争与冒险的办法有以下四种:

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

在输出端并联一个小电容,将尖峰脉冲幅度削弱至门电路阈值以下。这种方法的突出问题是会增加输出电压的翻转时间,容易破坏波形。

修改逻辑,增加冗余项

在卡诺图中两个相切的圈之间增加一个圈,并加入逻辑表达式之中。如下图所示:

wKgaomXNrVyAetGzAAA4fwJelsk715.png

F = ~A·~B + A·C + ~B·C

使用时钟同步电路,利用触发器进行打拍延迟

同步电路信号的变化都发生在时钟边沿,对于D触发器的输入端而言,只要毛刺不出现在时钟上升沿并且还不满足建立保持时间要求,就不会对系统产生危害,即D触发器对输入端毛刺不敏感。因此在时钟边沿驱动下,对组合逻辑信号进行延迟打拍即可消除竞争冒险。实际设计过程中可以根据设计需求对信号进行合理的打拍延迟。

采用格雷码计数器

在递加的多bit位计数器,计数值有时候会发生多bit的跳变,产生短暂的尖峰脉冲。而格雷码计数器,计数时相邻的数之间只有一个bit数据发生跳变,所以能有效避免竞争与冒险。

总结

在消除竞争与冒险的办法中,增加滤波电容和逻辑冗余都不是在代码层面考虑的问题。利用触发器在时钟同步电路下对异步信号进行打拍延时常在Verilog中使用。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电路
    +关注

    关注

    172

    文章

    5823

    浏览量

    171702
  • 竞争冒险
    +关注

    关注

    0

    文章

    2

    浏览量

    5005
收藏 人收藏

    评论

    相关推荐

    Linux系统中的竞争冒险处理方法

    今天主要和大家聊一聊,如何理解Linux系统中的竞争冒险
    发表于 11-07 09:46 637次阅读

    FPGA中竞争冒险的前世今生

    竞争冒险:在组合电路中,当逻辑门有两个互补输入信号同时向相反状态变化时,输出端可能产生过渡干扰脉冲的现象,称为竞争冒险。那么 FPGA
    发表于 02-21 16:26

    FPGA设计中竞争冒险问题的研究

     摘 要:以现场可编程门阵列(以下简称FPGA)在设计中由于其内部构成,容易引起竞争问题。以我们在实验教学中的应用与实践为主线,详细介绍了消除竞争冒险的各种方法。关键词:现场
    发表于 04-21 16:44

    怎样消除竞争冒险

    ; elseout=0;endendmodule在进行门级仿真的时候波形中出现了毛刺,也就是所谓的竞争冒险,如下图书上也有竞争冒险的解决办法,但具体到代码里还是不会,谁能教教我该怎么改
    发表于 10-21 14:31

    FPGA中竞争冒险问题的研究

    FPGA中竞争冒险问题的研究
    发表于 08-04 16:16

    组合逻辑电路的竞争冒险,输入信号同时从1变0会产生竞争冒险

    `对于一个组合逻辑电路,如果有两个输入端,那么只有两个输入端一个从0变1,另一个从1变0是才有可能产生竞争冒险吗,如果开始时两个输入端都是1,那么同时从1变0时会不会产生
    发表于 12-22 18:49

    FPGA中的竞争冒险现象

    通过改变设计,破坏毛刺产生的条件,来减少毛刺的发生。例如,在数字电路设计中,常常采用格雷码计数器取代普通的二进制计数器,这是因为格雷码计数器的输出每次只有一位跳变,消除了竞争冒险的发生条件,
    发表于 08-01 09:53

    什么是竞争冒险现象?怎样判断?如何消除?

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

    简谈FPGA的竞争冒险和毛刺问题

    问题。 竞争冒险:在组合电路中,当逻辑门有两个互补输入信号同时向相反状态变化时,输出端可能产生过渡干扰脉冲的现象,称为竞争冒险
    发表于 05-30 17:15

    FPGA | 竞争冒险和毛刺问题

    ,某一输入变量经过不同途径传输后,到达电路中某一汇合点的时间有先有后,这种现象称竞争;由于竞争而使电路输出发生瞬时错误的现象叫做冒险。(也就是由于竞争产生的毛刺叫做
    发表于 11-02 17:22

    组合逻辑中的竞争冒险及毛刺的处理方法

    组合逻辑中的竞争冒险及毛刺的处理方法 在组合逻辑中,由于门的输入信号通路中经过了不同的延时,导致到达该门的时间不一致叫竞争产生毛刺叫
    发表于 01-24 18:12 0次下载
    组合逻辑中的<b class='flag-5'>竞争</b>与<b class='flag-5'>冒险</b>及毛刺的处理<b class='flag-5'>方法</b>

    组合逻辑中的竞争冒险及毛刺的处理方法

    组合逻辑中的竞争冒险及毛刺的处理方法
    发表于 01-17 19:54 7次下载

    FPGA视频教程之FPGA设计中如何避免冒险竞争

    本文档的主要内容详细介绍的是FPGA视频教程之FPGA设计中如何避免冒险竞争
    发表于 03-22 17:04 12次下载
    FPGA视频教程之FPGA设计中如何<b class='flag-5'>避免</b><b class='flag-5'>冒险</b><b class='flag-5'>竞争</b>

    电路存在竞争冒险产生原因

    简言之:在组合逻辑中,由于门的输入信号通路中经过了不同的延时,导致到达该门的时间不一致叫竞争竞争产生冒险
    发表于 06-26 06:38 1.9w次阅读

    毛刺的产生原因冒险竞争

    冒险按照产生方式分为静态冒险 & 动态冒险两大类。静态冒险指输入有变化,而输出不应该变化时产生
    的头像 发表于 04-29 10:33 4993次阅读