跨时钟域的讨论
相位控制、重新同步以及异步FIFO
相位控制是什么?
慢时钟域到快时钟域的切换,一般采用打两拍的处理方式。
对于有数据有效信号的数据总线来讲,也不用进FIFO,把单bit信号打三拍,用第二拍和第三拍的跳变沿去采样异步数据总线即可。
我刚开始学习,都看不太明白你讲的那些是如何实现的。
分为数据总线、和单BIT信号了
如果是数据总线,一般都是异步FIFO,
单BIT信号,则是接收时钟域打两拍
当然还需要考虑两个时钟域的频率关系,对于打拍信号,低频时钟可能会丢失高频时钟域来的数据
Mentor有一个工具0in,专门用来做cdc检查,这个工具的手册里有详细描述如何处理cdc的问题
方法比较多,但是有一个准则就是尽量保证在稳定的时候采样!
相位控制是当两时钟域频率一样,相位有严格的关系时,可以通过相位控制来避免亚稳态
对啊,接收时钟域打两拍的方法岂不是很不稳定么?
求共享一下文档。
异步时钟很难保证稳定啊
谢谢 明白了
当数字电路需要工作在“不稳定”的情况下时(比如,setup/hold不满足,电压不足...),就要切换到模拟电路的思路来理解问题。
这个超出我的知识范围了。
听说有篇很有用的文章,讲跨时钟域处理的:
Crossing the abyss asynchronous signals in a synchronous world
谢谢 我去找找
我看了一些资料,明白了你说的一些问题,在慢时钟域到快时钟域的情况下打两拍处理时,是不是第一个DFF产生亚稳态时,在第二个clock到来之前,第一个DFF的输出已经恢复到了信号的准确电平,供给第二个DFF采样?
相位控制求解释
跨时钟域处理的不好 會很嚴重的!
