1. 什么是亚稳态?
亚稳态是违背了触发器的建立和保持时间而产生的。设计中任何触发器都有特定的建立和保持时间,在时钟上升沿前后的这段时间窗口内,数据输入信号必须保持稳定。如果信号在这段时间发生了变化,那么输出将是未知的或者称为“亚稳的”。这种有害的传播就叫做亚稳态。
当触发器处在亚稳态时,输出会在高低电平之间波动,这会导致延迟输出转换过程,并超出所规定的时钟到输出的延迟值(tco)。亚稳态输出恢复到稳定状态所需的超出tco 的额外时间称为稳定时间(tMET)。并非所有不满足建立和保持时间的输入变化都会导致亚稳态输出。触发器是否进入亚稳态和返回稳态所需时间取决于生产器件的工艺技术和外界环境。一般来说,触发器都会在一个或者两个时钟周期内返回稳态。
当信号在一个时钟域里变化,在另一个时钟域内采样时,就会导致输出变成亚稳态,只就是所谓的同步失败。
2. 亚稳态产生的原因
- 输入信号是异步信号,容易不满足触发器的建立和保持时间
- 跨时钟域
- 时钟CLOCK的偏移和抖动
- 系统的异步复位信号
3. MTBF(Mean/Average Time Between Failures)
两级同步器的MTBF的典型例子:
4. 避免亚稳态和亚稳态测试电路
- 设置更大的时钟CLOCK周期(设计中基本不用)
- 使用同步器(2级已经基本能够达到要求)
亚稳态测试电路
一个有异步信号async_In输入的触发器FFA ,在时钟clk上升沿触发。触发器FFB 和FFC 在时钟的下降沿触发,为了捕获FFA 的亚稳态。
传递到触发器FFB 和FFC 的信号是两个互补的信号,无论FFA 什么时候产生亚稳态,异或非门的输出都会变成高电平,在触发器FFD 输出端捕获到高电平就表示已经检测到亚稳态事件。
5. 影响亚稳态稳定时间的因素
- 工艺
- 温度
- 采样电压
- 电磁波
6. 亚稳态的建议
- 采用响应更快的触发器
- 采用多级同步器
- 减小采样速率
- 避免使用dV/dt低的输入信号
- 异步复位做同步释放