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

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

3天内不再提示

数字电路设计中什么时候需要分析竞争与冒险

lp7u_bia 来源:珠海芯思科技 作者:珠海芯思科技 2021-08-09 14:43 次阅读

1. 前言

数字电路课程中,老师在讲组合逻辑的时候,一般都会讲竞争与冒险。sky当时也听的云里雾里,没有想清楚如下问题:

1) 竞争与冒险究竟是什么东西?有啥物理现象?

2) 在数字电路设计中,什么时候需要关心(分析)竞争与冒险?

3) 如何避免竞争与冒险导致的问题呢?

经过多年实际工作的实践与理解,在此文略作分析。

2. 竞争与冒险的产生

在数字电路中,调用一个AND gate,用verilog可以如下描述:

assign out = in0 & in1;

其综合后对应的电路与波形如下:

4b170f80-f878-11eb-9bcf-12bb97331649.png

如果in0/in1分别有1--》0/0--》1的变化,如果同时满足如下两个条件:

1) in0/in1同时变化;

2) 从in0/in1的driver到AND gate的delay绝对匹配;

则,AND gate的输出端不会有毛刺,一直稳定的输出logic 0。

但是在实际电路中,经过place & route后,如上两个条件基本不能满足。抽象简化后,实际电路和波形如下:

4b25cd90-f878-11eb-9bcf-12bb97331649.png

可以看到,由于in0/in1到AND gate输入pin上delay的不匹配,导致AND的输出out出现一个logic 1的小脉冲,一般也叫毛刺(glitch)。

对于一个简单的AND gate,就会产生毛刺;那么对于一个更复杂的电路,比如:加法器,乘法器,glitch更是起起伏伏,直到一定的时间后,才会输出稳定的值。

这就是信号的竞争与冒险:逻辑上(真值表)输入的变化本来不会导致组合逻辑输出的变化;但是因为在输入逻辑gate的PIN上,输入信号变化时间上的差异,导致组合逻辑的输出端产生一些不必要的0--》1/1--》0变化,出现glitch。

3. 竞争与冒险分析

A. 对于同步电路(比如DFF的clk是同一个信号),我们需要分析(关心)竞争与冒险吗?

答案是不需要。

在实际同步数字电路中,组合逻辑通常伴随时序逻辑(DFF等),其结构如下图:

4b3b4864-f878-11eb-9bcf-12bb97331649.png

因为在同步电路中,我们会做STA时序分析,计算每条path的delay(如上图绿色线)。AND gate在各条path的最大delay后,out PIN上的信号是稳定不变的。再分析后级DFF是否满足setup/hold timing需求,则后级DFF一定采样到out PIN上稳定的输出值,而非中间的glitch。

也就是说:在同步电路中,我们利用STA分析,已经把out PIN产生glitch的期间给滤除(mask)掉了;只要后级DFF的setup/hold timing分析pass,则后级DFF肯定采样到正确的逻辑计算值,不会采样到毛刺。

B. 对于异步电路(比如DFF的clk不是同一个信号),我们需要分析(关心)竞争与冒险吗?

答案是需要。

在实际异步数字电路中,组合逻辑也通常伴随时序逻辑(DFF等),其结构如下图:

4b48645e-f878-11eb-9bcf-12bb97331649.png

在异步电路中,我们在做STA时序分析,会有困难。虽然我们仍然能准确计算每条path的delay(如上图绿色线),但是我们无法预知clk0/clk1的相位(phase)关系,导致无法分析后级DFF的setup/hold time,即:我准确计算out PIN在glitch产生期间是否会有clk1的上升沿。在工程实践中,一般是设置:set_flase_path -from clk0 -to clk1。这样,后级DFF(图中橙色DFF)可能会采样到毛刺。

这时,我们就得关心glitch了,即竞争与冒险。

不是说了不能计算了吗?那怎么“关心”呢?

既然不能计算,就从电路结构上解决问题:

通过增加一个clk0 domain的DFF,让clk0--》clk1的数据交互是DFF输出,是不是就肯定不会有glitch啦 ^_^。“out_reg”PIN是DFF输出,不会有glitch的。

啊,讲到这儿,是否突然明白,老师讲:跨时钟域时,信号一定要DFF的Q端直接输出。

C. 还有哪儿需要分析(关心)竞争与冒险吗?

当然是有的。

比如:chip IO上的异步信号。比如IIC接口的SCL/SDA。这2信号在chip输出时,是不是应该(必须)用DFF输出呢?不能搞组合逻辑输出,否则接收方chip可能看到SCL上的glitch,导致功能错误。

4. 总结

综上:

1) 在同步电路中,我们并不关心竞争与冒险,因为有STA做保障;

2) 在异步电路中,我们关心竞争与冒险(从电路结构解决问题),因为没有STA做保障;

编辑:jq

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

    关注

    1

    文章

    56

    浏览量

    13135
  • STA
    STA
    +关注

    关注

    0

    文章

    51

    浏览量

    18850
  • SCL
    SCL
    +关注

    关注

    1

    文章

    238

    浏览量

    16863

原文标题:数字IC/FPGA设计基础_竞争与冒险

文章出处:【微信号:bianpinquan,微信公众号:变频圈】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    数字电路仿真元件符号是什么

    数字电路仿真元件通常用符号来表示。这些符号是通过简洁和易于理解的图形来表示元件的特性和功能。符号是数字电路设计和仿真过程中非常重要的一部分,帮助工程师和设计者有效地沟通和理解电路的功能。在本文
    的头像 发表于 04-21 09:20 148次阅读

    FPGA竞争冒险的前世今生

    消除的。 2、采用格雷码 我们可以通过改变设计,破坏毛刺产生的条件,来减少毛刺的发生。例如,在数字电路设计,常常采用格雷码计数器取代普通的二进制计数器,这是因为格雷码计数器的输出每次只有一位跳变 消除
    发表于 02-21 16:26

    两位格雷码减法器数字电路设计

    目前,针对数字电路研究的主要目标都是为了提高电路的运算速度、降低电路的功耗和减少电路逻辑输出的误差,因此延时、功耗和误差是数字电路三个最重要
    的头像 发表于 02-19 13:36 379次阅读
    两位格雷码减法器<b class='flag-5'>数字电路设计</b>

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

    在实际的电路设计过程中,存在传播延时和信号变换延时。由延时引起的竞争冒险现象会影响输出的正确与否。下面将就 竞争冒险产生的原因 , 判断
    的头像 发表于 02-18 14:34 1057次阅读
    <b class='flag-5'>竞争</b>与<b class='flag-5'>冒险</b>产生的原因,判断方法和避免<b class='flag-5'>竞争</b>与<b class='flag-5'>冒险</b>的方法

    数字电路设计有哪些仿真验证流程

    数字电路设计的仿真验证流程是确保设计能够正确运行的重要步骤之一。在现代电子设备中,数字电路被广泛应用于各种应用领域,如计算机、通信设备、汽车电子等等。因此,设计师必须通过仿真验证来确保电路能够按照
    的头像 发表于 01-02 17:00 365次阅读

    FPGA/CPLD数字电路设计经验分享

    电子发烧友网站提供《FPGA/CPLD数字电路设计经验分享.pdf》资料免费下载
    发表于 11-21 11:03 3次下载
    FPGA/CPLD<b class='flag-5'>数字电路设计</b>经验分享

    请问51的P0口什么时候要上拉电阻什么时候需要

    求教大神,51的P0口什么时候要上拉电阻什么时候需要呢?
    发表于 11-09 08:02

    FPGA | 竞争冒险和毛刺问题

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

    建立/保持时间对数字电路的影响

    之一,它对数字电路的运作和性能产生着重要的影响。在本文中,我们将探讨时间与数字电路之间的关系,并分析它对于数字电路性能的影响。 数字电路包括
    的头像 发表于 10-29 14:21 393次阅读

    数字电路中的竞争冒险现象

    电路的两个输入信号同时向相反的逻辑电平跳变的现象叫做 竞争 ,这种竞争可能在电路的输出端产生尖峰脉冲,这种现象称为 竞争
    的头像 发表于 09-25 11:50 1509次阅读
    <b class='flag-5'>数字电路</b>中的<b class='flag-5'>竞争</b><b class='flag-5'>冒险</b>现象

    数字电路用什么仪器测试

    数字电路用什么仪器测试  数字电路测试是数字电路设计的重要环节。它是验证数字电路功能是否按照所期望的方式工作的过程。在数字电路测试过程中,要
    的头像 发表于 09-19 16:33 695次阅读

    为什么说数字电路无法取代模拟电路

    为什么说数字电路无法取代模拟电路 数字电路和模拟电路是两种不同的电路体系,它们各有优劣。数字电路
    的头像 发表于 08-27 15:37 1347次阅读

    高速数字电路设计资料分享

             这本书是专门为电路设计工程师写的。它主要描述了模拟电路原理在高速数字电路设计中 的分析应用。通过列举很多的实例,作者详细分析
    发表于 08-17 16:57 0次下载

    简谈数字电路设计的抖动

    和大侠简单聊一聊数字电路设计的抖动,话不多说,上货。 既然说到了抖动,那么什么是抖动?那首先我们就来了解一下什么是抖动。 一、抖动的几个重要概念 1、抖动的基本概 在理想情况下,一个频率固定
    发表于 06-02 17:53

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

    。 但是和所有的数字电路一样,FPGA 电路也存在毛刺问题。它的出现会影响电路工作的可靠性、稳定性,严重时会导致整个数字系统的误动作和
    发表于 05-30 17:15