0
收藏
微博
微信
复制链接

同步还是异步?跨时钟域不处理会出大事!

2026-05-14 09:58
30

同一块板子上跑着好几个时钟,快的200MHz,慢的32kHz。它们之间传数据,不做处理,就是一颗随时会爆的定时炸弹。

4.png

1、先分清两种设计

同步设计:所有触发器由同一个时钟驱动,数据在时钟沿统一采样,时序清晰,分析简单。

异步设计:没有统一时钟,靠握手信号协调,设计灵活,但时序分析极其复杂。

实际项目中,两者往往混用。问题就出在交界处。

2、跨时钟域为什么危险?

慢时钟域的信号传到快时钟域,建立时间和保持时间都可能被违反。

触发器在亚稳态区域采样,输出可能在0和1之间震荡,既不是高也不是低。

这个亚稳态会像病毒一样向后级传播,导致整个系统逻辑错乱,而且这种错误是偶发的,仿真查不出来,上板才会暴露。

3、三种经典处理方法

第一种:两级打拍。最简单,适用于单比特控制信号。快时钟域连续采样两次,大幅降低亚稳态传播概率。

第二种:异步FIFO。多比特数据跨域,用双口RAM加格雷码读写指针,既解决数据宽度问题,又解决指针同步问题。

第三种:握手协议。源时钟域发出请求,目的时钟域返回应答,双方确认后再传数据,可靠但速度慢。


本文凡亿教育原创文章,转载请注明来源!

登录后查看更多
0
评论 0
收藏
侵权举报
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。

热门评论0

相关文章

电路之家

专注电子、科技分享,对电子领域深入剖解

开班信息