FPGA中的亚稳态毛刺异步FIFO.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
FPGA中的亚稳态毛刺异步FIFO

1亚稳态 1.1亚稳态的定义 亚稳态是指触发器无法在某个规定时间段内达到一个确定的状态。当一个触发器进入亚稳态时,该触发器的输出何时能稳定以及会稳定在哪个状态都不能确定。在达到稳定之前的时间,触发器输出一些中间电平或者处于震荡状态,并且这种无用的输出电平可以沿着信号通路上级联的触发器传播下去。 1.2亚稳态的产生机制 如果触发器的setup time、hold time不满足,就可能产生亚稳态,此时触发器的输出端Q在有效时钟沿之后比较长的一段时间处于不确定的状态,这段时间称为决断时间(resolution time)。经过resolution time之后Q端将稳定到0或者1,但究竟是0还是1和输入没有关系。 图1是一个处于亚稳态的寄存器的输出的例子。 HYPERLINK /images/attachments/201101/9950017205_TIME_1295276725806.jpg HYPERLINK /images/attachments/201101/9950017205_TIME_1295276725806.jpg HYPERLINK /images/attachments/201101/9950017205_TIME_1295276725806.jpg 1.3亚稳态的危害与避免 亚稳态会导致逻辑误判,如果发生亚稳态的部位对系统的稳定至关重要同时缺少防错机制,则可能导致系统崩溃(逻辑挂死)。 逻辑误判可以通过特殊设计减轻危害,例如异步fifo的gray设计。比发生部位本身的逻辑误判更严重的是亚稳态传递。亚稳态传递会扩大故障面,让问题变得复杂。 在完全同步的设计中,CAD工具可以方便的分析每一个触发器的建立保持时间。理论上一个时序完全收敛的纯同步设计不会有亚稳态问题。和有赖于时序分析的完备性,例如所使用的timing mode与实际芯片及其工作条件的吻合度,实际时钟抖动、偏斜与预期是否一致等。扩大时序裕量可以降低亚稳态发生的概率。 当前一个数字芯片上往往有多个时钟域,时钟域之间的异步设计是必不可少的。只要系统中存在异步设计,则亚稳态无法避免,但我们可以尽量限制亚稳态的影响范围并通过特殊的逻辑设计容忍可能的逻辑误判。 1.3.1缩小亚稳态的影响范围 a.“将异步输出寄存器的扇出限制为1” HYPERLINK /images/attachments/201101/9950017205_TIME_1295276803422.jpg ????????? HYPERLINK /images/attachments/201101/9950017205_TIME_1295276803422.jpg HYPERLINK /images/attachments/201101/9950017205_TIME_1295276803422.jpg 如图2所示,让异步输出寄存器的扇出为1相当于减少了异步路径的条数。 若异步信号有多个输出,则可能因为路径延迟和时钟偏斜导致有的寄存器采到有效值,有的寄存器进入不确定的状态,如图2和图3所示。 HYPERLINK /images/attachments/201101/9950017205_TIME_1295276990096.jpg ???????????????? HYPERLINK /images/attachments/201101/9950017205_TIME_1295276990096.jpg HYPERLINK /images/attachments/201101/9950017205_TIME_1295276990096.jpg b.“异步信号参与逻辑运算前先同步两拍” 如图2所示,异步信号直接参与逻辑运算可能会导致亚稳态传递,而先将其用2级寄存器同步则基本可以把亚稳态限制在这2级寄存器内。经过两级触发器同步,在右边的输出将是同步的,而且该输出基本不存在亚稳态。其原理是即使第一个触发器的输出端存在亚稳态,经过一个CLK周期后,第二个触发器D端的电平仍未稳定的概率非常小,因此第二个触发器Q端基本不会产生亚稳态。值得注意的是,这会大大降低亚稳态的发生概率但是并不是说一定不会出现,如果是关键信号,在接下来的设计中采用防错设计依然是必要的。 1.3.2 通过设计容忍逻辑误判的典型例子是异步fifo的gray设计。Fifo中ram的读写地址是0、1、2…连续的,而相邻二进制数的格雷码只相差1bit。也就是,对读写地址来说,任何一个时钟沿只有一个bit跳变,而且这1bit出现暂时的逻辑误判无关紧要。 图4是常用的将总线数据传递到异步时钟域的例子。 HYPERLINK /images/attachments/201101/9950017205_TIME_1295277

文档评论(0)

189****6649 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档