微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 亚稳态有哪些解决办法

亚稳态有哪些解决办法

时间:10-02 整理:3721RD 点击:
最近在网上看了一些硬件笔试题中,问如何解决亚稳态的问题,有人给出的答案中有降频使用,我不明白为什么降频使用可以解决亚稳态的问题。

毛刺对高速信号影响大

降频不能解决吧……
只要有异步电路就可能有亚稳态。
应该是在异步过渡的地方好好处理。

多级同步,频率一定级数越多采到亚稳态的概率越小,一般采用2-3级。

亚稳态主要是建立或保持时间不满足导致的,不一定是频率的问题,具体问题具体分析

要看什么原因了,就算是同步电路,setup time holdtime不满足,也会出现亚稳态,异步电路就更要考虑了,不同情况处理不同,你懂得

亚稳态在异步电路中是不可避免的,不管用什么同步电路去同步异步信号,都会出现亚稳态。那同步电路的作用是什么呢?其实是为了不让亚稳态传播。
两级同步电路的思想其实是为了给亚稳态留出足够的时间,好让亚稳态变成稳定态。一般情况下亚稳态持续的时间很短,所以两级DFF同步之后的信号基本上不会出现亚稳态,可以给后级使用。这里用两级DFF的目的就是给亚稳态留出一个DFF的工作时钟周期,如果第一级DFF的输出出现亚稳态,那么在一个时钟周期内,让亚稳态变成稳定态。这样第二级DFF采样第一级DFF的输出时,第一级DFF的输出早就稳定了,因此不会出现亚稳态的传播。所以在用两级同步电路对异步信号做了处理后,降低同步电路的工作时钟,就可以给亚稳态留更多的时间让它变成稳定态,因此可以起到使电路更稳定安全的效果。
纯个人理解,若哪里说的有不正确的地方请指正,谢谢!

对,亚稳态是无法避免的,只能降低出现的频率

亚稳态平均无故障时间(The metastability MTBF,即为由亚稳态决定的平均无故障时间)的公式:
MTBF=etMET/C2/(C1*fclk*fdata)    (tMET/C2是e的上标)
C1 和C2 是常数,依赖于器件工艺和操作环境。
fCLK 和fDATA 参数取决于设计规格: fCLK 是接收异步信号的时钟域的时钟频率,fDATA 是异步数据的翻转频率(toggling frequency)。更快的时钟速率和更快的数据翻转(faster-toggling data)会降低平均无故障时
间。
tMET 参数是亚稳态转稳定时间(vailable metastability settling time),或者说时序裕量大于寄存器Tco 可
以让潜在的亚稳态信号达到稳定值的时间。tMET 对同步链来说就是链中每个寄存器输出时序裕量的
和。
从这个公式来看降频使用是降低亚稳态的一种方法。

在一次面试时遇到这个问题,我当时说可以降频使用,可那面试官说降频使用不是解决亚稳态的一种方法,现在想想应该是可以的。

亚稳态和电路的设计有关系。降频往往也可以解决一部分的问题



   你可以看看特权同学的一遍博文,百度文库里就有。降低频率,就增加了富余量Tsl,alter官网上给出了MTBF跟(e^Tsl)成正比,MTBF越大,就月不容易出现亚稳态。亚稳态,一般用握手或者双时钟FIFO解决,网上说的两级D触发器,也只是对单个信号应用的,只是消除亚稳态给楼面电路的影响,不会降低亚稳态发生的概率。降低工作频率,数据频率,或者增加富余量Tsl 才能降低亚稳态出现的概率。

FIFO FIFOFIFO

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top