跨时钟域处理方法

张开发
2026/4/18 18:44:22 15 分钟阅读

分享文章

跨时钟域处理方法
目录前言1.1 setup-time 和 hold-time1.2 亚稳态的产生及原因2. 单bit信号跨时钟域处理方法2.1 慢时钟域到快时钟域-打两拍2.2 快时钟域到慢时钟域-脉冲同步前言1.1 setup-time 和 hold-time同步时序电路设计中只在时钟的上升沿或下降沿进行采样。为了正确得到采样结果需要确保采样时刻数据有效因此工具会对综合结果进行静态时序分析以判断时钟和数据之间的相对关系是否满足要求。以寄存器-寄存器之间的路径为例子发射时间launch edge源时钟发射数据的时刻采样时间capture edge目的时钟采样数据的时刻显然采样时刻要晚于发射时刻建立时间Tsuset up time是指在触发器的时钟信号上升沿到来以前数据稳定不变的时间如果建立时间不够数据将不能在这个时钟上升沿被稳定的打入触发器Tsu就是指这个最小的稳定时间。保持时间Thhold time是指在触发器的时钟信号上升沿到来以后数据稳定不变的时间如果保持时间不够数据同样不能被稳定的打入触发器Th就是指这个最小的保持时间。输出相应时间Tco触发器输出的响应时间也就是触发器的输出在clk时钟上升沿到来之后多长的时间内发生变化也即触发器的输出延时。1.2 亚稳态的产生及原因2. 单bit信号跨时钟域处理方法2.1 慢时钟域到快时钟域-打两拍打两拍解决亚稳态的原理1第一级寄存器产生亚稳态后如果直接输出很可能将亚稳态传递下去导致系统崩溃而添加了第二级D触发器后相当于多给了寄存器一个时钟周期的时间恢复稳定因此出现亚稳态的几率就会大大减小。2证明举例假设TsuThd1ns触发器的采样时钟周期是10s第一级触发器产生亚稳态的概率是10%第二级触发器产生亚稳态的概率是10%则两级触发器产生亚稳态的概率是10%x10%0.01则第三级触发器信号输出稳定的概率是1-1%99%。2.2 快时钟域到慢时钟域-脉冲同步它是快时钟域clka脉冲信号跨到慢时钟域clkb的标准电路俗称「脉冲展宽 同步 边沿还原」。为什么要这么做快时钟域的 Signal_a 是一个单周期脉冲宽度等于 clka 周期直接用慢时钟 clkb 采样有很大概率采不到因为脉冲太短慢时钟上升沿可能刚好错过所以先在快时钟域把脉冲转成一个电平信号 src_state翻转一次相当于把脉冲 “展宽” 成一个电平变化再跨时钟域同步到慢时钟域最后还原出脉冲 Signal_b

更多文章