关于亚稳态恢复到稳态的问题
求大神解惑!
3 级是DFF0/DFF1/DFF2 还是DFF1/DFF2/DFF3?
123哈,不好意思没说清楚
亚稳态是因为有效沿时数据正在变化而发生的(如果是同步设计中出现那就是时序问题,异步设计中那就是电路设计要解决),有可能是正常的翻转也有可能是毛刺。那这时候怎么办呢!没怎么办,设计上不去管它!就是在数据变化时管它是0还是1,只要知道多个周期后肯定是稳态就行,或者是一组序列!所以慢到快用多级DFF,快到慢用FIFO。
从器件物理来说,“0”和“1”都有自己对应的电平范围,那从0/1变化过程中的中间态,对后级采样来说就是“非0非1”
MTBF = e (tr/τ)/ T0fa,用来描述亚稳态的概率,
tr :分辨时间(从时钟沿开始)
τ ,T0 :触发器参数
f :采样时钟频率
a :异步事件触发的频率
对于一个典型的0.25μm工艺的ASIC库中的一个触发器,我们取如下的参数:tr = 2.3ns, τ = 0.31ns, T0 = 9.6as, f=100MHZ, a = 10MHZ, MTBF = 2.01 days 即触发器每两天便可能出现一次亚稳态。这也就是我们需要采用两级或者三级同步原因。
但我个人的理解,“0/1”即使采在变化过程,对于数字逻辑来说,也是“非0即1”,那么亚稳态的意思就是,在变化的时候采用,不确定到底采到0还是1。 回到你的问题,DFF1发生亚稳态,也只是说在整个采样序列立, 到底是0多一个还是1多一个不确定。
我的理解是不能保证你一定采样到0或者1,只能保证这个信号本身稳定,如这个信号传输到后续多个D触发器,可以保证采样到同样的值
0或者1是不确定的,但是对你的结果没影响
我也遇到同样的问题,小编现在明白了吗,给我讲讲
简单点理解的话,类似与滤波,通过多级DFF将输入的异步信号中可能出现的毛刺滤除,从而得到相对干净的目标信号。
为啥“只要知道多个周期后肯定是稳态就行”,如果输入是010,发生亚稳态后多级同步我就能一定能得到010吗?不会稳态到000这种状态吗?
谢谢解答 我还是有疑问:如果输入是010,发生亚稳态后多级同步我就能一定能得到010吗?不会稳态到000这种状态吗?
如果输入是010,发生亚稳态后多级同步我就能一定能得到010吗?不会稳态到000这种状态吗?
为什么没影响?
可能得到000的
谢谢,我大概明白了:多级同步器的目的是为了让前级处于亚稳态的信号最后稳定下来,但是会稳定成什么设计者也不知道,这就需要后续逻辑了。就是说同步器阻止亚稳态的传播,但是保证不了数据的正确性。是这样子的吧?
FPGA的τ ,T0如何提取,希望不吝赐教,从那个文档获取?如果有可以给出运算方式或者截图么?
从器件物理来说,“0”和“1”都有自己对应的电平范围,那从0/1变化过程中的中间态,对后级采样来说就是“非0非1”
MTBF = e (tr/τ)/ T0fa,用来描述亚稳态的概率,
tr :分辨时间(从时钟沿开始)
τ ,T0 :触发器参数
f :采样时钟频率
a :异步事件触发的频率
对于一个典型的0.25μm工艺的ASIC库中的一个触发器,我们取如下的参数:tr = 2.3ns, τ = 0.31ns, T0 = 9.6as, f=100MHZ, a = 10MHZ, MTBF = 2.01 days 即触发器每两天便可能出现一次亚稳态。这也就是我们需要采用两级或者三级同步原因。
但我个人的理解,“0/1”即使采在变化过程,对于数字逻辑来说,也是“非0即1”,那么亚稳态的意思就是,在变化的时候采用,不确定到底采到0还是1。 回到你的问题,DFF1发生亚稳态,也只是说在整个采样序列立, 到底是0多一个还是1多一个不确定。
