跨时钟域和亚稳态
亚稳态问题
亚稳态
电路中不希望存在的、会存在很长时间的(会产生会传播,影响后面组合逻辑)
产生亚稳态
采样寄存器不满足建立、保持时间,(不等价与竞争冒险,竞争冒险只存在于组合电路)
影响因素
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、异步复位,同步释放(保证释放后到下一个有效沿有足够时间)
复位信号拉低复位,释放后两个时钟打两拍与时钟同步,应用到电路