1.单bit,慢时钟采快时钟
方法1:加宽源数据的宽度
原则:源数据宽度尽量保持到目标时钟的2个clk周期长度
如上图所示,clk2时钟频率是clk1时钟频率的1/3。d1为跨时钟域待传输的单bit数据
步骤1:在源端将d1打拍,然后将结果异或得到d_out1。(打几拍呢?——数据维持宽度达到目标时钟周期的两倍就行,所以本次是打了5拍)
步骤2:输出d_out1,clk2的触发器去采样d_out1,则肯定是能采到了
方法2:握手机制
原则:目的端根据flag信号去变化自己的值,源端根据返回的值来刷新flag信号
步骤1:当d1数据产生时,拉高flag信号并一直维持住,输出flag信号;
步骤2:clk2采样flag信号,当发现它拉高了,则输出d_out2的值;
步骤3:clk1采样d_out2的值,发现它变成了目标值,则拉低flag信号,至此,完成了对d1单bit信号的采样。
握手机制是完成当前bit值的采样之后才能进行下一位的采样。
2.单bit,快时钟采慢时钟
本文介绍了IC设计中跨时钟域的问题及其解决方法,包括单bit数据在不同时钟频率间的传输,以及多bit数据的处理。通过数据打拍、握手机制、拓宽数据宽度和使用异步FIFO等策略,确保在异步时钟条件下正确采样和传输数据。
订阅专栏 解锁全文
7568

被折叠的 条评论
为什么被折叠?



