1 什么是亚稳态?

如果一个触发器的输入不满足建立时间和保持时间的要求时,触发器的输出就进入了一个不确定的状态(也就是亚稳态)。亚稳态最后有可能是1也有可能是0,整个这个过程叫做亚稳态。如下图所示Tsu是建立时间、Th是保持时间,当触发器的输入信号D不满足建立时间和保持时间的要求时,会出现亚稳态。

如果触发器进入亚稳态,如下图所示:输出会在0和1之间振荡(这里最终输出稳定到0),可以看到在输出稳定之前花了很长时间在振荡(这个时间依赖于触发器的性能)。

在触发器建立时间和保持时间没有满足时,我们来看一下触发器内部的工作状态,以上升沿D触发器为例,当时钟上升沿正好发生在触发器的输入D正准备给master latch传递数据的时候(也就是说时钟上升沿来的时候,想要通过触发器传递的数据正好来),这时触发器最有可能进入亚稳态,This rising clock causes the master latch to try to capture its current value while the slave latch is opened allowing the Q output to follow the "latched" value of the master. The most perfectly "caught" quasi-stable state (on the very top of the hill) results in the longest time required for the flip-flop to resolve itself to one of the stable states.

2 亚稳态持续时间长短

如上图所示,处于稳定状态的逻辑0和逻辑1要比亚稳态稳定很多。理论上处于亚稳态的触发器会持续处于亚稳态,但是实际中它不会持续处于亚稳态,正如在空气中皮球不会来回振荡一样,热和噪声最终会使亚稳态最终趋于0或者1(不确定最终会是哪个)。

3 亚稳态出现的原因

当一个触发器输入的建立时间和保持时间不满足时,会出现亚稳态,下面我们需要知道建立时间和保持时间需要满足多长时间。

  • 当输入信号是一个不对称信号时
  • 当时钟skew/slew太大时(上升时间和下降时间太大时)
  • 处于两个时钟域的接口电路、同一时钟内不同相位的电路
  • when the combinational delay is such that flip-flop data input changes in the critical window(setup+hold window)

4 什么是MTBF

MTBF是平均无故障时间,也就是平均两次故障之间的时间,下图给出了一个触发器的MTBF以及MTBF等式。

5 我们该怎么避免出现亚稳态

In reality, one cannot avoid metastability and increased clock-to-Q delays in synchronizing asynchronous inputs, without the use of tricky self-timed circuits. So a more appropriate question might be"怎么最大程度容忍亚稳态".

设计者可以使用的最简单的方法是提高时钟周期(也就是降低时钟频率),This approach ,while simple,is rarely practical given the performance requirements of most modern designs.

The most common way to tolerate metastabiligy is to add one or more successive synchronizing flip-flops to the synchronizer.This approach allows for an entire clock period(except for the setup time of the second flip-flop) for metastable events in the first synchronizing flip-flop to resolve themselves. This does,however,increase the latency in the synchronous logic's observation of input changes.

Neither of these approaches can guarantee that metastabiligy cannot pass through the synchronizer;they simply reduce the probability to practical levels.

In quantitative terms,if the MTBF of a particular flip-flop in the context of a given clock rate and input transition rate is 33.33seconds then the MTBF of two such flip-flops used to synchronize the input would be(33.33* 33.33) = 18.514 Minutes. Well I have taken the worst flip-flop ever designed in history of man kind :-). The figure below shows how to connect two flip-flops in series to achieve this and also the resultant MTBF.

Normally,

  • we can use a metastable hardened flip-flop
  • cascade two or three DFF

参考文献

  • http://www-s.ti.com/sc/psheets/sdya006/sdya006.pdf
  • Thomas J. Chaney, "Measured Flip-Flop Responses to Marginal Triggering", IEEE Transactions on Computers, Vol. C-32. No. 12, December 1983, pp.1207-1209.
  • Lindsay Kleeman and Antonio Cantoni, "On the Unavoidability of Metastable Behavior in Digital Systems", IEEE Transactions on Computers, Vol. C-36. No. 1, January 1987, pp.109-112.
  • Lindsay Kleeman and Antonio Cantoni, "Can Redundancy and Masking Improve the Performance of Synchronizers?", IEEE Transactions on Computers, Vol. C-35, No. 7, July 1986, pp.643-646.
  • Cypress Semiconductor, "Are Your PLDs Metastable?, Fax ID: 6403, May 1992, Revised March 6,1997. http://www.cypress.com/pld/pldappnotes.html#pldmeta
  • http://www.xilinx.com/apps/xapp.htm
  • M. Valencia, M. J. Bellido, J. L. Huertas, A. J. Acosta, and S. Sanchez-Solano, "Modular Asynchronous Arbiter Insensitive to Metastability. IEEE Transactions on Computers, 44(12):1456-1461, December 1995

What is metastability?相关推荐

  1. FPGA中亚稳态的理解(Understanding Metastability in FPGAs)

    写在前面 本文主要翻译自Altera公司的白皮书<Understanding Metastability in FPGAs>,主要讲述了FPGA设计中与亚稳态相关的问题. 正文中,黑字为翻 ...

  2. [转]亚稳态和毛刺 - Metastability and Hazard(CN)

    我们在芯片设计与调试中,一定曾经遇到过一些诡异的问题.比如芯片的某一部分莫名其妙的复位却并没有故障记录.比如有的问题上下电和复位表现不一.甚至在有的FPGA项目后期,每一次重布局布线都是对人品的考验, ...

  3. 机器能否拥有像人类一样的意识?Science长文综述解读

    来源:集智俱乐部 本文约12823字,建议阅读10+分钟. 本文从科学的角度对人类意识模式重新进行了思考,在人工智能时代中, Science 做出了综述. 机器能否拥有像人类一样的意识?要回答这个问题 ...

  4. Science长文综述:通过空间斑图形成避免复杂系统崩溃

    来源: 集智俱乐部 作者:Max Rietkerk et al. 译者:吕丽莎.胡一冰.李明章.郭瑞东.张澳 审校:张澳.梁金 编辑:邓一雪 导语 今天的地球处于人类世,人类活动对整个地球生态系统具有 ...

  5. 逻辑设计中复位的稳妥处理方法?

    前言 看别人的好设计,能让自己从细节上提升,所谓好的设计,除了从各种指标上评判,我们都知道,设计的兼容性(参数化),可读性,可扩展性等等,可是既然是学习,我们本身就不知道什么样的才是好的,这些指标也分 ...

  6. 漫谈时序设计(1)跨时钟域是设计出来的,而非约束出来的!

    目录 亚稳态(Metastability) 单比特信号同步 慢时钟域到快时钟域 快时钟域到慢时钟域 多比特信号同步 Handshake Mechanism 异步FIFO 参考链接 写在最后 这篇博文在 ...

  7. 减少亚稳态导致错误,提高系统的MTBF

    1.亚稳态与设计可靠性 设计数字电路时大家都知道同步是非常重要的,特别当要输入一个信号到一个同步电路中,但是该信号由另一个时钟驱动时,这是要在接口处采取一些措施,使输入的异步信号同步化,否则电路将无法 ...

  8. 浅析FPGA时序相关问题

    目录 案例引入: 时序约束场景 亚稳态的产生 声明:本博文整理互联网上相关资料并加入个人的理解而成,参考文献见最后. 案例引入: 何为建立时间和保持时间? 对于一个D触发器而言, 时钟上升沿触发,我们 ...

  9. 时序约束,STA的QA

    (1) clock Q1.1什么是同步时钟? 时钟频率是整倍数,并且相互之间的相位是固定而且相差可预知的,才可以称得上是同步时钟.其他的都算异步时钟. 比如, 5M,10M是同步 2M,3M一般算异步 ...

最新文章

  1. eclipselink mysql_Eclipse连接MySQL数据库(傻瓜篇)
  2. linux静态分配设备号,Linux驱动开发之静态申请设备号
  3. IOS之Swift5.x和OC网络请求JSON
  4. BugkuCTF-Reverse题SafeBox(NJCTF)
  5. Python学习【第1篇】:Python简介以及入门
  6. 又来Hello World了,Hello Python
  7. Java 语言 ArrayList 和 JSONArray 相互转换
  8. 深度学习(花书)+ 动手学深度学习(李沐)资料链接整理
  9. python爬虫案例
  10. Java中通过流下载文件
  11. 计算机文化基础实验教程第十一版课后答案,计算机文化基础实验指导及习题解答...
  12. 网络工程师(软考中级-华为认证)
  13. 基于html的明星网站
  14. JIRA-使用教程_界面_创建、方案配置
  15. 如何通过学习实现人生的逆袭!
  16. 图像修复 图像补全_图像修复简介
  17. 伤寒论(太阳病笔记)——学习笔记,更待前辈指点
  18. 《操作系统》2020年期末A卷
  19. 爱立信中国总裁杨迈猝死 爱立信中国惊魂48小时
  20. 游戏充值数据分析报告

热门文章

  1. Luogu P3367 并查集
  2. Redis分布式锁需要考虑的这些事!
  3. 人工智能-pands数据框架基本操作 以及查询sql生成excel表格
  4. 如果我们列出10以下的所有自然数是3或5的倍数,我们得到3,5,6和9.这些倍数的总和是23。 完成解决方案,使其返回传入数字下方所有3或5的倍数之和。
  5. API_2 安装详细流程
  6. 思科、华为路由器通过ftp、tftp传输文件
  7. 论文阅读:Deep Learning–Based Segmentation andQuantification in Experimental Kidney Histopathology
  8. [转]男人靠什么吸引女人
  9. 在某个小创业公司的三年工作总结
  10. java计算两条线夹角_Android获取两条线之间的夹角度数