避免亚稳态的方法

如前所述,每当违背建立,保持时间时,亚稳态就会出现。在以下条件中,信号可能违背时序要求。

*输入信号是异步信号

*时钟偏移/摆动(上升/下降时间)高于容限值

*信号在两个不同频率或者相同频率但是相位和偏移不同的时钟域下跨时钟域工作。

*组合延迟使触发器的数据输入在亚稳态窗口内发生变化

亚稳态引起过多的传输延迟和系统故障,所有的触发器和寄存器都存在亚稳态。虽然亚稳态不能根除,但是可以减小亚稳态发生的概率。

在最简单的情况下,设计人员可以通过确保时钟周期足够长来避免亚稳态,这个时钟周期要大于准稳态的解析时间,也要大于通往下一级触发器的路径上的任何逻辑延迟。虽然这种方法简单,但是大多数现代设计的性能要求下并不实用。另一种避免亚稳态的方法是使用同步器。

避免亚稳态最常见的方法是在跨时钟域的信号上加上一个或多个同步触发器。这种方法用一个完整的时钟周期来解决第一级同步触发器的亚稳态问题(不包括第二级触发器的建立时间)。但是这种方式增加了观察同步逻辑输入的延迟。

7449e163cfc043a9bf4b047908489879.jpg

多级同步器的一个局限就是系统需要花费较长的时间去响应异步输入,解决这个问题的办法就是使用倍频时钟作为两个同步触发器的时钟输入。

6b35a95f04014bf2bc40d1058fc0c064.jpg

两种方法都不能保证同步器阻止亚稳态传播下去,它们仅仅减少了亚稳态发生的概率。

每当触发器采样一个异步输入时,触发器输出都可能会产生一个不可预测的延迟,虽然这个概率很低。这不仅会在输入违反建立、保持时间要求时发生,而且在触发器接收新的输入这一小段时序窗口内也会发生。在这些情况下,触发器都会进入亚稳态。

下图所描述的测试电路可以用来确定触发器的亚稳态特征。图给出了有一个异步输入“async_in”的触发器“FFA”,再由时钟“clk”的上升沿触发。图中所示的触发器“FFB”和”FFC”都在时钟下降沿触发,这样做是为了捕捉FFA的亚稳态事件。

ae850f60be9a4730a02227ad612615d4.jpg

当两个互补的信号分别传递到“FFB”和“FFC”的输入时,无论“FFA”什么时候出现亚稳态事件,异或非(XNOR)门的输出都会变为高电平。在触发器“FFD”输出端捕获到高电平就表明已经检测到亚稳态事件。

时序如下所示

074fff88dd204c86bc8c15ccf5f163b4.jpg

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

人生如象棋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值