异步时钟亚稳态 的解决方案——单bit信号

本文详细探讨了在异步电路设计中遇到的亚稳态问题,包括电平同步、漏采样以及解决这些问题的方法,如采用异或展宽和异或握手展宽。通过确保信号满足至少三个时钟沿,可以有效避免亚稳态导致的错误。同时,文中通过实例展示了如何使用Verilog代码实现这些同步策略,确保在不同时钟域间正确传输脉冲。


异步电路导致亚稳态的根本原因是跨时钟域导致建立、保持时间不满足,导致采样之后的信号在较长时间处于逻辑0~1的中间态,可能需要很长时间才能恢复到确定值 T m e t T_{met} Tmet

如果决断时间 T m e t T_{met} Tmet过长,长于sys_clk一个周期,那么后面逻辑电路采样到的值也是亚稳态,进而导致整个电路设计出现问题。

在这里插入图片描述

那么如何解决异步亚稳态问题呢?

跟老李一起学习芯片设计-- CDC的那些事(1)
菜鸟教程 - 跨时钟域设计 从快到慢
FPGA 设计之 跨时钟域(二 - 单比特设计)
《硬件架构的艺术》

1. 亚稳态问题——电平同步

电平同步的方法很简单,就是跨时钟域信号 连续经过两级触发器,俗称打两拍。

这里蕴含一个基本数学关系:时钟对信号a打拍得到a_d1,那么在时间上一定满足: t r o s e ( a ) < t r o s e ( a d 1 ) < t f e l l ( a ) < t f e l l ( a d 1 ) t_{rose(a)}<t_{rose(a_{d1})}<t_{fell(a)}<t_{fell(a_{d1})} trose(a)<trose(ad1)<tfell(a)<tfell(ad1)

其原理:即便采样到亚稳态的值。经过一级触发器后,有70%~80%的概率稳定。经过二级触发器后,稳定的概率为99%。

此处稳定意为收敛到逻辑0或逻辑1,到底稳定到几与采样到的电压有关。

在这里插入图片描述

1.1. 采样电压过低

如下图所示,要同步一个脉冲但是第一级FF最终输出的电压过低,导致第二拍输出0。

在这里插入图片描述

这是由于bclk采样脉冲的电压太低了,第一级触发器最终稳定到了0,未被第二级触发器捕捉到。

所以说电平同步的确能够在第二拍稳定,但到底稳定到几,那可就不确定了。

再极端点,可能时钟压根儿就采样不到有效信号,如下图

在这里插入图片描述

所以这就对异步时钟的频率作出了要求。

当然如果是电平信号,即异步信号有效的时间→∞就当我没说

1.2. “1.5倍频”

异步时钟可能采样到低电压导致第一拍不会有效。这种情况下怎么办?

如果采样到较低电压之后,还能再采一次采到稳定电平,那就好了。

如下图所示,第一个posedge采样到了不确定电平(红线),后面在脉冲拉低之前,还有第二个posedge采样到稳定电平(绿线)

在这里插入图片描述

注意根据图中的时钟建模,脉冲是在源时钟的上升沿处产生电压变化。

如果异步信号的有效时间为 T a s i g T_{asig} Tasig,那么满足 T b c l k < T a s i g T_{bclk} < T_{asig} Tbclk<

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Starry丶

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

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

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

打赏作者

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

抵扣说明:

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

余额充值