tag 标签: 毛刺

相关博文
  • 热度 23
    2015-3-24 13:42
    1221 次阅读|
    0 个评论
      0引言   现场可编程门阵列(FPGA)是1985年由美国Xilinx公司首先推出的一种新型的PLD。 FPGA在结构上由逻辑功能模块排列成阵列,并由可编程的内部连线连接这些功能模块来实现一定的逻辑功能。FPGA的功能由逻辑结构的配置数据决定,这些配置数据存放在片外的EPROM或其他存储器上。由于FPGA规模大、集成度高、灵活性更强,实现的逻辑功能更广,因此已逐步成为复杂数字硬件电路设计的首选。   1 FPGA的基本结构   FPGA通常由可编程逻辑单元 CLB、可编程输入输出单元lOB及可编程连线资源组成。通常CLB包含组合逻辑部分和时序逻辑部分,组合逻辑一般又包括查询表(Look-up Table)和相关的多路选择器(Multiplexer)。而时序逻辑部分则包含触发器(DFF)和一些相关的多路选择器。lOB主要提供FPGA内部和外部的接口,连线资源则提供CLB与lOB之间以及各CLB之间的通讯功能。FPGA芯片的基本结构如图1所示,其中开关盒可对水平和竖直连线资源进行切换,连接盒可将CLB的输入输出连接到连线资源中。   2 Verilog HDL语言的特点与优化设计   Verilog HDL语言是硬件描述语言的一种。它能形式化地抽象表示电路的行为和结构,同时支持层次设计中逻辑和范围的描述。设计时可借用高级语言的精巧结构来简化电路行为的描述。此外,该语言还具有电路仿真与验证机制,可以保证设计的正确性,同时支持电路描述由高层到低层的综合转换,且硬件描述与实现工艺无关,便于文档管理,易于理解和设计重用。   由于Verilog HDL语言易于理解、设计灵活,因此,Verilog HDL语言已经成为目前FPGA编程最常用的工具之一。然而,正是其设计灵活的特点使工程师必须面对采用哪种编程风格才能使逻辑电路精确工作的问题。因为如果某些原因导致逻辑电路发生误动作,则有可能会造成系统无法正常工作。而电路设计中的"毛刺"问题则是电路设计中最常见的。下面,本文将对容易产生"毛刺"的电路进行分析,并给出对应的优化方法及仿真波形。   3出现"毛刺"的原因   当信号在FPGA器件内部通过连线和逻辑门时,一般都有一定的延时。延时的大小与连线的长短和门单元的数目有关,同时还受器件的制造工艺、工作电压、温度等条件的影响。此外,信号的高/低电平转换也需要一定的过渡时间。由于存在这些因素的影响,多路信号的电平值发生变化时,在信号变化的瞬间,组合逻辑的输出都有先后顺序,而并不是同时变化,这往往就会出现一些不正确的"毛刺"。   "毛刺"信号的电路有两种类型。第一种是输入信号经过FPGA内部布线以后产生不同延时的异步电路;第二种是由于在编程时内部信号变化落后。在多个信号关联时,第一个信号变化如果发生落后情况,后面的信号将产生不确定状况,从而出现"毛刺"。 "毛刺"的存在说明该电路存在不稳定状况,因此,这很可能导致整个系统的误动作。   4 "毛刺"信号的消除    4.1组合逻辑电路"毛刺"的同步消除   现以一个组合逻辑电路为例来介绍该方法。从图2所示的仿真波形可以看出,"in1、in2、in3、in4"四个输入信号经过布线延时以后,其高低电平变换不是同时发生的,这会导致输出信号"out"出现了毛刺。由于设计时无法保证所有连线的长度一致,所以,即使四个输入信号在输入端同时变化,经过 FPGA内部走线到达或门的时间也是不一样的,毛刺必然产生。一般情况下,即使输入信号同时变化,经过内部走线后的组合逻辑也将产生"毛刺"。这样,如果将它们的输出直接连接到时钟输入端、清零或置位端口,就可能会导致不可预料的结果。   针对这类"毛刺"电路,设计时可以通过"毛刺"信号对同步电路不敏感的特性,来在系统中加入同步时钟,这是因为同步电路信号的变化都发生在时钟沿的保持时间。因而可以在电路中加入同步时钟,使输出信号跟随时钟同步变化。图3所示是同步法去除"毛刺"的对应仿真波形。   4.2信号变化落后的"毛刺"消除   程序中的内部信号的判别赋值并不是立即发生变化,而是存在一个延迟。这也是最容易产生"毛刺"的一种情况。这样,在计数分频器程序设计中,可使用 counter%(delay-1)==0这个条件来约束分频的模数,由于条件判别的延时使分频输出产生"毛刺"的仿真波形如图4所示。     对于这种电路,设计时可以采用加触发器的方法来消除"毛刺",可以引入一个名为temp的触发器来有效除去这些"毛刺",其仿真波形如图5所示。具体的程序代码如下:   5结束语   "毛刺"信号是威胁逻辑电路稳定性的重大隐患,因此,发现"毛刺"和去除"毛刺"就成为FPGA开发人员必须要考虑的问题。本文总结了最为容易产生"毛刺"信号的两种典型电路,并且分别给出了有效的消除方法及仿真波形图。
  • 热度 36
    2011-1-18 20:17
    4598 次阅读|
    0 个评论
    我们在芯片设计与调试中,一定曾经遇到过一些诡异的问题。比如芯片的某一部分莫名其妙的复位却并没有故障记录、比如有的问题上下电和复位表现不一。甚至在有的 FPGA 项目后期,每一次重布局布线都是对人品的考验,祈祷在下一个版本中, Voldemort 不会出现。根本原因是多方面的,但是不难发现亚稳态和毛刺的影子。 幸运的是,这些问题难以定位但容易在设计中避免,只需我们在设计中稍加关注即可避免。任何一个成熟的团队都应该有自己的“ checklist ”。最近的一次检视中,发现一个设计可能同时受亚稳态和毛刺影响。那个有 4 年经验的工程师漫不经心的说“如果完全照教科书做,的确应该像你说的那样”。与遵守规则同样重要的是对规则的理解。 1 亚稳态 1.1 亚稳态的定义 亚稳态是指触发器无法在某个规定时间段内达到一个确定的状态。当一个触发器进入亚稳态时,该触发器的输出何时能稳定以及会稳定在哪个状态都不能确定。在达到稳定之前的时间,触发器输出一些中间电平或者处于震荡状态,并且这种无用的输出电平可以沿着信号通路上级联的触发器传播下去。 1.2 亚稳态的产生机制 如果触发器的 setup time 、 hold time 不满足,就可能产生亚稳态,此时触发器的输出端 Q 在有效时钟沿之后比较长的一段时间处于不确定的状态,这段时间称为决断时间( resolution time )。经过 resolution time 之后 Q 端将稳定到 0 或者 1 ,但究竟是 0 还是 1 和输入没有关系。 图 1 是一个处于亚稳态的寄存器的输出的例子。 1.3 亚稳态的危害与避免 亚稳态会导致逻辑误判,如果发生亚稳态的部位对系统的稳定至关重要同时缺少防错机制,则可能导致系统崩溃(逻辑挂死)。 逻辑误判可以通过特殊设计减轻危害,例如异步 fifo 的 gray 设计。比发生部位本身的逻辑误判更严重的是亚稳态传递。亚稳态传递会扩大故障面,让问题变得复杂。 在完全同步的设计中, CAD 工具可以方便的分析每一个触发器的建立保持时间。理论上一个时序完全收敛的纯同步设计不会有亚稳态问题。和有赖于时序分析的完备性,例如所使用的 timing mode 与实际芯片及其工作条件的吻合度,实际时钟抖动、偏斜与预期是否一致等。扩大时序裕量可以降低亚稳态发生的概率。 当前一个数字芯片上往往有多个时钟域,时钟域之间的异步设计是必不可少的。只要系统中存在异步设计,则亚稳态无法避免,但我们可以尽量限制亚稳态的影响范围并通过特殊的逻辑设计容忍可能的逻辑误判。 1.3.1 缩小亚稳态的影响范围 a. “将异步输出寄存器的扇出限制为 1 ”           如图 2 所示,让异步输出寄存器的扇出为 1 相当于减少了异步路径的条数。 若异步信号有多个输出 , 则可能因为路径延迟和时钟偏斜导致有的寄存器采到有效值 , 有的寄存器进入不确定的状态,如图 2 和图 3 所示。                  b. “异步信号参与逻辑运算前先同步两拍” 如图 2 所示,异步信号直接参与逻辑运算可能会导致亚稳态传递,而先将其用 2 级寄存器同步则基本可以把亚稳态限制在这 2 级寄存器内。 经过两级触发器同步,在右边的输出将是同步的,而且该输出基本不存在亚稳态。其原理是即使第一个触发器的输出端存在亚稳态,经过一个 CLK 周期后,第二个触发器 D 端的电平仍未稳定的概率非常小,因此第二个触发器 Q 端基本不会产生亚稳态。值得注意的是,这会大大降低亚稳态的发生概率但是并不是说一定不会出现,如果是关键信号,在接下来的设计中采用防错设计依然是必要的。 1.3.2 通过设计容忍逻辑误判 通过设计容忍逻辑误判的典型例子是异步 fifo 的 gray 设计。 Fifo 中 ram 的读写地址是 0 、 1 、 2… 连续的,而相邻二进制数的格雷码只相差 1bit 。也就是,对读写地址来说,任何一个时钟沿只有一个 bit 跳变,而且这 1bit 出现暂时的逻辑误判无关紧要。 图 4 是常用的将总线数据传递到异步时钟域的例子。                            2 组合逻辑毛刺 2.1 概念 毛刺是一种形象的说法,它的产生归因于组合逻辑的竞争与冒险。 竞争:在组合逻辑中,信号经由不同的路径达到某一会合点的时间有先有后,这种现象称为竞争。 冒险:由于竞争而引起电路输出发生瞬间错误现象称为冒险。表现为输出端出现了设计预期之外的窄脉冲,常称其为毛刺。 2.2 毛刺的产生机制 组合逻辑的多个输入端到达某一汇合点的时间有先后,导致组合逻辑电路的输出出现瞬间错误。图 5 是一个动态冒险的例子,即使假设线延迟为 0 ,毛刺依然存在。关于动态冒险和静态冒险本文不作详细解析。                            1.3 针对毛刺的设计 与亚稳态不同,在我们的设计中,毛刺几乎是无法避免的。不过有一点相同的是,在一个纯同步的设计中,毛刺不会带来问题。因为针对寄存器的建立保持时间的时序分析是“全路径”的。也就是说,时序分析 EDA 工具会认为组合逻辑的输出 f 在它稳定的时刻才是有效的,保证不会在组合逻辑输出 f 为毛刺时采样。 当然,这并不是说我们可以高枕无忧了。在包含异步的设计中,毛刺依然可能带来严重的问题。让我们回到文章前面那个工程师遇到的问题吧。 他需要用 3 个信号组合运算产生一个复位信号,对一个小模块复位。他的 HDL 代码可以表示为图 6 中的电路,正确的做法读者应该早已经  知道了,这里就不给出答案了。                              两个基本概念竟然啰嗦了这么长,而且它还引出了另一个同样有意思的问题,复位。又是一个基础但却非常关键的问题。
相关资源
  • 所需E币: 1
    时间: 2023-3-14 00:27
    大小: 892.09KB
    上传者: Argent
    华为专利:一种快速无_毛刺的时钟倒换方法
  • 所需E币: 0
    时间: 2022-7-25 10:50
    大小: 205.1KB
    上传者: czd886
    消除CPLD_FPGA器件设计中的毛刺
  • 所需E币: 1
    时间: 2022-5-2 10:20
    大小: 1.17MB
    上传者: ZHUANG
    基于示教和视觉校正的机器人自适应去毛刺系统
  • 所需E币: 1
    时间: 2022-3-11 10:50
    大小: 1.09MB
    上传者: ZHUANG
    基于机器学习的毛刺在线检测研究
  • 所需E币: 1
    时间: 2020-6-17 15:55
    大小: 917.23KB
    上传者: Argent
    示波器是一种用途十分广泛的电子测量仪器。它能把肉眼看不见的电信号变换成看得见的图像,便于人们研究各种电现象的变化过程。示波器利用狭窄的、由高速电子组成的电子束,打在涂有荧光物质的屏面上,就可产生细小的光点。利用示波器能观察各种不同信号幅度随时间变化的波形曲线,还可以用它测试各种不同的电量,如电压、电流、频率、相位差、调幅度等等
  • 所需E币: 4
    时间: 2019-12-25 21:10
    大小: 85KB
    上传者: quw431979_163.com
    随着芯片集成度的提高,对一些功能复杂的系统芯片功耗的管理,已经引起大家越来越多的重视,如何控制好SoC的功耗将成为芯片能否成功的重要因素。本文提出一种通过动态管理时钟的策略,达到降低整个SoC芯片功耗的目的;同时,分析动态管理时钟方案中可能会出现的一些问题,并给出解决方案。……
  • 所需E币: 4
    时间: 2019-12-25 10:24
    大小: 928.55KB
    上传者: 二不过三
    异步时序电路异步时序电路的分析与设计刘勇攀提纲背景介绍基本概念Huffman电路其它类型异步电路的简介展望与结论现状与趋向异步电路的研究开始于50年代中期目前主要应用于外围设备(接口等)将异步电路结构应用到VLSI推出了实用异步电路芯片(80C51)同步时序电路的一般结构InputOutputCombinationallogicCurrentstateNextstateRegistersClock异步时序电路的一般结构(1)InputOutputCombinationallogicCurrentstateNextstateDelayElementsFundamental-modecircuitmodel……
  • 所需E币: 3
    时间: 2020-1-4 12:51
    大小: 252.83KB
    上传者: wsu_w_hotmail.com
    有限状态机是数字系统中的重要组成部分.简单分析了有限状态机产生毛刺的原因,重点讨论了消除有限状态机毛刺的三种方案,比较了它们的优劣及其适用的条件,并以ADC0809采样控制过程为例,给出了实现控制功能的Moore型有限状态机方案和状态码直接输出型有限状态机方案的VHDL语言主要源程序,通过开发工具Max+plusⅡ的功能仿真验证了消除毛刺方案的正确性.消除状态机毛刺策略探讨鲁玲,刘大年(扬州大学信息学院…:江苏扬州225009)摘要:有限状态机是数字系统中的重要组成部分。简单分析了有限状态机产生毛刺的原因,重点讨论了消除有限状态机毛刺的三种方案,比较了它们的优劣及其适用的条件,并以ADC0809采样控制过程为例,给出了实现控制功能的M00re型有限状态机方案和状态码直接输出型有限状态机方案的VHDL语言主要源程序,通过开发工具Ma】【+plusII的功能仿真验证了消除毛刺方案的正确性。关键词:有限状态机VHDL毛刺随着EDA技术的高速发展,以大规模和超大规模10ckl<-‘0’:器件FPGA/CPLD为载体、以VHDL(硬件描述语言)为工……
  • 所需E币: 5
    时间: 2020-1-5 00:16
    大小: 311.59KB
    上传者: 微风DS
    PLD设计技巧——消除组合逻辑产生的毛刺……
  • 所需E币: 5
    时间: 2020-1-6 11:59
    大小: 1.16MB
    上传者: rdg1993
    1……