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

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

3天内不再提示

毛刺的产生原因:冒险和竞争

FPGA设计论坛 来源:FPGA设计论坛 作者:FPGA设计论坛 2022-04-29 10:33 次阅读

1. 毛刺的产生原因:冒险和竞争

使用分立元件设计电路时,由于PCB在走线时,存在分布电容和电容,所以在几ns内毛刺被自然滤除,而在PLD内部没有分布电感和电容,所以在PLD/FPGA设计中,竞争和冒险问题比较重要。

信号在FPGA器件内部通过连线和逻辑单元时,都有一定的延时。延时的大小与连线的长短和逻辑单元的数目有关,同时还受器件的制造工艺、工作电压、温度等条件的影响。信号的高低电平转换也需要一定的过渡时间。由于存在这两方面因素,多路信号的电平值发生变化时,在信号变化的瞬间,组合逻辑的输出有先后顺序,并不是同时变化,往往会出现一些不正确的尖峰信号,这些尖峰信号称为"毛刺"。如果一个组合逻辑电路中有"毛刺"出现,就说明该电路存在"冒险"。

可以概括的讲,只要输入信号同时变化,(经过内部走线)组合逻辑必将产生毛刺。将它们的输出直接连接到时钟输入端、清零或置位端口的设计方法是错误的,这可能会导致严重的后果。所以我们必须检查设计中所有时钟、清零和置位等对毛刺敏感的输入端口,确保输入不会含有任何毛刺。

存在逻辑冒险的电路:

18dc937e-c761-11ec-bce3-dac502259ad0.jpg

仿真波形:

18fc92d2-c761-11ec-bce3-dac502259ad0.jpg

2. 判断是否存在冒险

关于冒险的知识,数电书上有详细的说明,当时没有认真学,只了解个大概,现在又要重新看...还记得当年画卡诺图时的痛苦

冒险按照产生方式分为静态冒险&动态冒险两大类。静态冒险指输入有变化,而输出不应该变化时产生的窄脉冲;动态冒险指输入变化时,输出也应该变化时产生的冒险。动态冒险是由静态冒险引起的,所以,存在动态冒险的电路也存在静态冒险。

静态冒险根据产生条件不同,分为功能冒险和逻辑冒险两种。当有两个或两个以上的输入信号同时变化时,在输出端有毛刺,称为功能冒险;如果只有一个输入变量变化时,出现的冒险称为逻辑冒险。

因为动态冒险是由静态冒险引起的,所以消除了静态冒险,也就消除了动态冒险。功能冒险是由电路的逻辑功能产生的,只要输入信号不是按照循环码的方式变化,就会产生功能冒险,而且不能通过修改设计来消除,只能通过对输出进行采样来消除。判断逻辑冒险的步骤:

判断信号是否会同时变化

判断信号同时变化时,是否会发生冒险(代数法 or 卡诺图

3. 消除毛刺

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

毛刺并不是对所有的输入都有危害,例如D触发器的D输入端,只要毛刺不出现在时钟的上升沿并且满足数据的建立和保持时间,就不会对系统造成危害,我们可以说D触发器的D输入端对毛刺不敏感。根据这个特性,我们应当在系统中尽可能采用同步电路,这是因为同步电路信号的变化都发生在时钟沿,只要毛刺不出现在时钟的沿口并且不满足数据的建立和保持时间,就不会对系统造成危害。(由于毛刺很短,多为几纳秒,基本上都不可能满足数据的建立和保持时间)

以上方法可以大大减少毛刺,但它并不能完全消除毛刺,有时,我们必须手工修改电路来去除毛刺。一般有两种方法:

脉冲选择法

一般说来,冒险出现在信号发生电平转换的时刻,也就是说在输出信号的建立时间内会发生冒险,而在输出信号的保持时间内是不会有毛刺信号出现的。如果在输出信号的保持时间内对其进行"采样",就可以消除毛刺信号的影响。缺点是必须人为的保证sample信号必须在合适的时间中产生

19209d1c-c761-11ec-bce3-dac502259ad0.png

19492584-c761-11ec-bce3-dac502259ad0.png

时序逻辑保持法

利用D触发器的D输入端对毛刺信号不敏感的特点,在输出信号的保持时间内,用触发器读取组合逻辑的输出信号,这种方法类似于将异步电路转化为同步电路。

1962c0fc-c761-11ec-bce3-dac502259ad0.png

198d2194-c761-11ec-bce3-dac502259ad0.png

4. 具体信号的讨论

1. 置位/复位信号

清除和置位信号要求象对待时钟那样小心地考虑它们,因为这些信号对毛刺也是非常敏感的。正如使用时钟那样,最好的清除和置位是从器件的引脚单直接地驱动。有一个主复位Reset引脚是常用的最好方法,主复位引脚给设计项目中每个触发器馈送清除或置位信号。几乎所有PLD器件都有专门的全局清零脚和全局置位。如果必须从器件内产生清除或置位信号,则要按照“门控时钟”的设计原则去建立这些信号,确保输入无毛刺。

2. 组合逻辑输出

当PLD输出引脚给出系统内其它部分的边沿敏感信号或电平敏感信号时,这些出信号必须象内部时钟、清除和置位信号一样小心地对待。只要可能就应在PLD输出端寄存那些对险象敏感的组合输出。如果你不能寄存险象敏感的输出,则应符合“门控时钟”中讨论的门控时钟的条件。决不能用多级逻辑驱动毛刺敏感的输出。

3. 异步输入信号

按照定义,异步输入不是总能满足(它们所馈送的触发器的)建立和保持时间的要求。因此,异步输入常常会把错误的数据锁存到触发器,或者使触发器进入亚稳定的状态,在该状态下,触发器的输出不能识别为l或0。如果没有正确地处理,亚稳性会导致严重的系统可靠性问题。采用附加触发器同步使能信号的方法可保证不违反计数器的建立时间,从而解决可靠性的问题。

审核编辑 :李倩

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

    关注

    1631

    文章

    21806

    浏览量

    606688
  • PLD
    PLD
    +关注

    关注

    6

    文章

    230

    浏览量

    59541
  • 毛刺
    +关注

    关注

    0

    文章

    29

    浏览量

    15692

原文标题:FPGA学习-关于毛刺

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    高速AD加上时钟后,输入信号会有一个两倍于时钟信号的毛刺产生是什么原因

    高速AD加上时钟后,输入信号会有一个两倍于时钟信号的毛刺产生。请问这是什么原因?Other Parts Discussed in Thread: ADS807, OPA656高速
    发表于 01-20 06:33

    用ADS1298做心电采集时,基线有毛刺是什么原因造成的?

    用ADS1298做心电采集时,增益8,500采样率,发现基线有毛刺,第6路信号会有突变,不知道什么原因造成的
    发表于 12-20 06:05

    MAX13487接了终端电阻120Ω时,下降沿有很长的毛刺,是什么原因导致的?

    如下:下降沿有很长的毛刺, 按照理论上说,加了120Ω的终端电阻(减小反射),波形应该更好,为什么会出现这么长的毛刺呢?图中负载所加的TVS管,电容均已经除掉,以及更改上下拉的电阻值,现象依旧,没有改善;这是什么原因导致的呢
    发表于 12-19 06:15

    ADC08200采样速率高的情况下,波形出现毛刺原因

    出现在波形的最高点的地方,放大图片也可以看出DATA6和DATA7的边沿部分不能完全对齐,差了一个时钟周期,这也是导致毛刺原因
    发表于 12-03 06:52

    TPA3118D2输出产生毛刺噪声怎么解决?

    参数:电压15V,喇叭4欧、15W,电路基本上是按照TPA3118D2EVM电路,BTL模式,后面的LC为22uh、680nF, 产生问题现象,在某一段频率会出现毛刺波形,声音中有噪声,像是失真的样子,请问这问题出在那个方面,急需各位大神们帮助,谢谢了
    发表于 10-25 07:42

    仪表温度异常的产生原因

    电子发烧友网站提供《仪表温度异常的产生原因.docx》资料免费下载
    发表于 09-12 14:09 0次下载

    用AD623做应变调理电路,正弦波动和高频毛刺产生原因和避免的方法?

    确实是1.25的直流。对正弦波动的由来很是疑惑!!! 请教:还请各位指教,这些正弦波动和高频毛刺产生原因和避免的方法,谢谢!
    发表于 09-10 08:03

    简述自激振荡产生原因

    自激振荡是指在没有外部驱动信号的情况下,系统内部由于某种机制自发产生的振荡现象。这种现象在电子、机械、声学等多个领域中广泛存在,其产生原因复杂多样。以下是对自激振荡产生
    的头像 发表于 09-03 10:59 1199次阅读

    纹波电压的产生原因及控制方法

    纹波电压是电源系统中常见的一种现象,它是指电源输出电压在平均值附近波动的幅度。纹波电压的大小直接影响到电源系统的稳定性和可靠性,因此对纹波电压的控制非常重要。 纹波电压的产生原因 纹波电压的产生
    的头像 发表于 08-29 09:30 1162次阅读

    交越失真产生原因和消除方法

    和运算放大器中。本文将介绍交越失真的产生原因、影响因素以及消除方法。 一、交越失真的产生原因 放大器的非线性特性 放大器的非线性特性是交越失真产生
    的头像 发表于 08-01 15:07 5343次阅读

    MOS管尖峰产生原因

    ,深入了解MOS管尖峰产生原因对于电路设计和维护具有重要意义。本文将从多个方面详细分析MOS管尖峰产生原因,并给出相应的解决方案。
    的头像 发表于 05-30 16:32 3278次阅读

    无铅锡膏焊接后,边缘有毛刺和玷污的原因有哪些?

    ?今天深圳佳金源锡膏厂家带大家来了解下:首先我们来分析下造成这种现象的根源:一、PCB板焊后成形模糊,锡膏边缘不平整,表面上有毛刺原因1:锡膏粘度较低解决方法:更换锡
    的头像 发表于 04-02 16:54 821次阅读
    无铅锡膏焊接后,边缘有<b class='flag-5'>毛刺</b>和玷污的<b class='flag-5'>原因</b>有哪些?

    SPI从模式MISO会概率性出现毛刺原因

    我们在使用F401RC这款MCU配置SPI1为从模式,速率为8MHZ,测试发现MISO信号,发现信号出现概率性如下图所示的毛刺信号。我们断开PCB上的串联电阻把MCU的PIN脚悬空测试PIN脚依然出现毛刺信号,同时我们也检测3.3V电源没有发现有异常波动。请问是什么
    发表于 03-20 08:00

    FPGA中竞争冒险的前世今生

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

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

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