硬件架构的艺术:亚稳态世界

1. 简介

   在同步系统中数据相对于时钟总有固定的关系,当这种关系满足器件的建立和保持时间的要求时,输出端会在特定的延迟时间内输出一个有效状态。因为在同步系统中输入信号总是满足触发器的时序要求(同步系统满足STA即可,若不满足需要重新设计,常用的方法是拆分组合逻辑),所以不会发生亚稳态。
   但是,在异步系统中,由于数据和时钟的关系不是固定的,因此有时会出现违反建立和保持时间的现象。当违反建立和保持时间时,就会输出介于两个有效状态之间的中间级电平且无法确定停留在中间状态的时间,或者经过一定的延迟后才能进行正常的转换

2. 亚稳态理论

   亚稳态是由于违背了触发器的建立和保持时间而产生的。触发器都有特定的建立和保持时间,在时钟的上升沿前后的这段时间窗口内,数据输入信号必须保持稳定。如果这段时间内发生变化,那么输出将是未知的,即“亚稳态”。触发器的输出会产生毛刺或保持在不稳定状态而且需要较长时间才能回到稳定状态
亚稳态产生及输出

  • t_co:寄存器输出的延迟值
  • t_met:亚稳态发生时,输出会在高低电平之间波动,亚稳态输出恢复到稳定所需的超出t_co的额外时间称为稳定时间t_met。一般来说,触发器都会在一两个周期内返回稳态。

   异步系统容易产生亚稳态的原因在于“时钟和数据的关系不是固定的”,时钟和数据的不固定导致时钟(dst_clk)上升沿很大概率采到数据(src_data)翻转的窗口,此时很难满足建立和保持时间,输出亚稳态,这就是同步失败。

   常见的异步系统包括: 异步信号检测、跨时钟域信号传输、异步复位。
在这里插入图片描述

3. 亚稳态窗口

   亚稳态窗口具有特定的时间长度,在这段时间内输入信号和时钟都应该保持不变(时钟不变是指时钟频率和占空比不变),如果输入数据发生变化,则输出可能变为亚稳态。
在这里插入图片描述

4. 计算MTBF

   MTBF(Mean/Average Time Between Failures,平均无故障时间),故障率恒定时,MTBF就是故障率的倒数。

MTBF计算公式

  • t_r:允许超出器件正常传输延迟时间的解析时间
  • tao : 触发器的亚稳态时间常数
  • W:亚稳态窗口
  • f_c:时钟频率
  • f_d:异步信号边沿频率(异步信号时钟频率)

   两级同步器的MTBF公式如下:
两级同步器的MTBF
   公式的第一项表示第一级发生亚稳态的概率,第二项表示亚稳态时间的解析概率。一般来说两级同步可以将亚稳态发生概率降低至很低,实际项目中使用三级更为稳妥。

5. 避免亚稳态

5.1 多级同步器

  多级同步器如下图所示:
在这里插入图片描述
  多级同步器不能阻止亚稳态传播下去,它们仅仅减少了亚稳态发生的概率。

6. 同步器类型

  亚稳态通常发生在异步系统中(同步系统满足STA即不会出现亚稳态),异步系统之间的数据交互包括单bit信号和多bit信号传输,异步复位也是一种异步系统,以上三种异步系统的亚稳态消除方法如下。

6.1 单bit信号跨时钟域

  • 电平信号:打两拍,该电平信号需要保证有效时间大于等于2*T_dst,保证dst_clk可以采到有效电平。
  • 脉冲信号:握手机制,详细分析见“硬件架构的艺术:跨时钟域处理

6.2 多bit信号跨时钟域

  异步fifo可以解决该问题,详细分析见“硬件架构的艺术:异步FIFO设计

6.3 异步复位信号

  异步复位,同步释放可以解决该问题,详细分析见“硬件架构的艺术:时钟和复位
在这里插入图片描述

参考资料

  1. 《硬件架构的艺术》
  2. https://blog.csdn.net/weiaipan1314/article/details/90257574
  3. https://blog.csdn.net/CLL_caicai/article/details/104625791?spm=1001.2101.3001.6650.5&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-5.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-5.pc_relevant_default&utm_relevant_index=10
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值