一、什么是跨时钟域?
在讲怎么解决跨时钟域问题之前,起码的先介绍什么是跨时钟域吧!!!那么跨时钟域指的是什么意思呢?在IC基础(一):异步FIFO的介绍异步FIFO的介绍中其实就存在跨时钟域的问题。跨时钟域简单的说就是两个模块之间运行的时钟频率不一致,并且这里两个模块之间需要通信。举个例子就是现在有两个模块A和B,其运行的时钟分别是CLKA和CLKB。CLKA和CLKB的频率和相位不同的话,一定是跨时钟域。(PS:有些博客中说频率不同,但是相位差相同的情况下,也可以当作是同步时钟。这个我没有太研究过,也很想和大家一起讨论)。
二、异步信号的危害和处理
首先给出跨时钟域的模型!!!!
信号A从时钟域CLK1传输到时钟域CLK2。
再来画个波形图(没图讲个屁啊)!!!
图片来源于李洪革FPGA/ASIC高性能数字系统设计
如上图所示,CLK1和CLK2分别属于不同的时钟,既不同频也不同相,这就是典型的跨时钟域了。
当信号A的拐点