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
    +关注

    关注

    1656

    文章

    22292

    浏览量

    630405
  • PLD
    PLD
    +关注

    关注

    6

    文章

    230

    浏览量

    60953
  • 毛刺
    +关注

    关注

    0

    文章

    30

    浏览量

    15997

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    飞凌嵌入式ElfBoard-文件I/O的了解探究之竞争冒险

    竞争冒险(Race Condition)指的是在多线程或多进程环境中,多个线程或进程对共享资源进行访问和修改时可能导致的不确定性结果或错误行为。竞争冒险通常发生在多个线程或进程同时访问
    发表于 11-26 15:38

    使用 APx500 软件检测音频毛刺与信号丢失

    设备丢失了音频采样,根据丢失的采样数量和发生位置,由此产生的不连续性可能会导致毛刺,这种毛刺可能非常刺耳,或者说,会让听者感到不悦。因此,验证设备能否长时间稳定播放
    的头像 发表于 10-20 09:02 297次阅读
    使用 APx500 软件检测音频<b class='flag-5'>毛刺</b>与信号丢失

    4036 DC-T-ER11浮动主轴在汽车轮毂去毛刺中的解决方案

    汽车轮毂经机加工后,会产生残留毛刺或飞边。由于汽车轮毂是一个不规则的曲面,去毛刺加工尤为困难。传统人工去毛刺不仅效率低下、费时费力,且导致轮毂质量参差不齐,无法满足现代企业生产需求。速
    的头像 发表于 08-22 11:06 524次阅读
    4036 DC-T-ER11浮动主轴在汽车轮毂去<b class='flag-5'>毛刺</b>中的解决方案

    锂离子电池毛刺控制的要求及检测

    锂离子电池在完成装配封口前最怕金属粉尘、杂质、水分和毛刺。极片毛刺会引起的内部短路,因此涉及到锂电池的安全问题,是锂电池制造过程中非常关键的管控项目。毛刺的控制也一直是业内人士关注的焦点。美能光子湾
    的头像 发表于 08-05 17:54 928次阅读
    锂离子电池<b class='flag-5'>毛刺</b>控制的要求及检测

    铝铸件去毛刺加工,用SycoTec浮动去毛刺主轴

    在现代制造业中,铝铸件因其质量轻、强度高、耐腐蚀性好等性能,被广泛应用于航空航天、汽车制造、电子设备等众多领域。然而,铝铸件在生产过程中,不可避免地会产生毛刺。这些毛刺不仅影响铝铸件的外观质量,还可
    的头像 发表于 07-16 09:40 287次阅读
    铝铸件去<b class='flag-5'>毛刺</b>加工,用SycoTec浮动去<b class='flag-5'>毛刺</b>主轴

    最全的硬件工程师笔试试题集

    不尽相同,所产生的延时也就会不同,从而导致到达该门的时间不一致,我们把这种现象叫做竞争。由于竞争而在电路输出端可能产生尖峰脉冲或毛刺的现象叫
    发表于 06-26 15:34

    激光焊锡中虚焊产生原因和解决方法

    激光焊锡是发展的非常成熟的一种焊接技术,但是在一些参数控制不好的情况下,依然会产生一些焊接问题,比如说虚焊的问题。松盛光电来给大家介绍一下激光锡焊中虚焊问题产生原因及其解决方案。
    的头像 发表于 06-25 09:41 1128次阅读

    DRV8873的CPL和CPH脚电压波形有很多毛刺怎么解决?

    大家好,请教一个DRV8873驱动有刷电机的问题,测试CPL和CPH管脚电压波形时,波形上有很多毛刺毛刺的幅值有大概20V左右,请问这是什么原因,可以确定不是探头的问题,因为同样的条件下测试其它管脚没
    发表于 03-03 08:43

    ADC的谐波产生原因是什么?

    ADC的谐波产生原因是什么
    发表于 02-08 08:25

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

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

    用TMS2812通过spi控制ADS1298ECGFE-PDK开发板,采集的时候总有毛刺产生,为什么?

    我用TMS2812通过spi控制ADS1298ECGFE-PDK开发板,进行肌电采集,采样速率分别为500 和 1k,感觉采集的时候总有毛刺产生,而且采样频率越大似乎就越多,但在相同的情况下用贵公司提供的采集开发板配套软件进行采集后采集的图中就没有
    发表于 01-07 07:33

    ADS5407采样率在200M以下有很大毛刺,是什么原因

    请问,我的板子是K7的FPGA和ADS5407,在使用过程中,发现采样率在200M以下,(ADs5407内部有温度寄存器)温度过60度时候,有很大毛刺;而采样率在200M到500M以内高温都没有问题,请问这是什么原因
    发表于 01-02 06:31

    在TLC7524的DAC产生一个正弦波,在每个电平的跳变间隙都会出现小的毛刺,是正常的吗?

    最经在TLC7524的DAC产生一个正弦波,但是输出波形有些异常 上图图是100hz的正弦波,在每个电平的跳变间隙都会出现小的毛刺; 上图是100hz的局部放大图, 上图是1Khz的波形
    发表于 12-24 08:10

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

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

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

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