跨时钟域和亚稳态

亚稳态问题

 

亚稳态

电路中不希望存在的、会存在很长时间的(会产生会传播,影响后面组合逻辑)

 

产生亚稳态

采样寄存器不满足建立保持时间,(不等价与竞争冒险,竞争冒险只存在于组合电路)

 

影响因素

1、工艺

2、温度

3、电压

4、电磁波干扰

 

解决亚稳态

1、两级同步(单bit)

输出信号利用原时钟域打一拍

再利用目的寄存器时钟打两拍进行两级同步

 

2、两级同步(多bit)

每bit都用一个两级同步,浪费寄存器(面积开销太大)

源时钟域产生一个交互信号,目的时钟进行两级同步,利用该信号进行选择

 

MTBF出现亚稳态的平均时间

除fd,fc其他均为参数,工艺决定

fd:输入数据变化率

fc:接收时钟频率

证明两级同步可以消除亚稳态(同步级数越多越可靠)

功能仿真看不到亚稳态仿真现象(后仿真才能)

 

 

跨时钟域

SOC中的跨时钟域

AHB总线---APB总线 时钟不一样(通过桥完成转换)

APB---外设  时钟不一样

使用先SpyGlass检测跨时钟域问题(RTL分析,综合之前)

问题:clk1与clk2关系不明确,可能在不稳定的时候进行采样

STA静态时序分析只能分析同步电路(不对异步电路进行检查),主要后仿真才进行

 

跨时钟域中的典型问题

1亚稳态时钟关系不确定,不满足建立保持时间的情况下进行采样

bit信号:打两拍,两级同步(不能插入组合逻辑,时钟信号只能来自一级)

不能组合逻辑直接输出到下一个时钟域两级同步(需要经过源时钟域打一拍)

2多bit信号送入目的时钟域的组合逻辑

bit信号:多bit信号通过不同组合逻辑延时不同,被目的时钟采样时可能已经不同步;每次只有1bit信号发生翻转,则不会产生这个问题(格雷码编码)

 

 

3数据保持问题---如何保证一个时钟域的数据保持足够长时间能被其他时钟域捕捉到(快时钟域到慢时钟域)

问题:clk_a过快,clk_b过慢,数据有效时间较短,两个时钟沿都采不到数据

解决方法:将数据信号扩展

数据时高电平有效时

 

数据是低电平有效时:或变与

 

4大量数据传输,握手方式,异步fifo

 

5异步复位,同步释放(保证释放后到下一个有效沿有足够时间)

复位信号拉低复位,释放后两个时钟打两拍与时钟同步,应用到电路