如何处理来自同一源的时钟的多时钟设计信号?例如,一个时钟域是 25Mhz,另一个是 100Mhz 如何处理从 25Mhz 到 100Mhz 以及从 100Mhz 到 25Hhz 的数据总线?
不想使用 AFIFO 以及任何其他简单的 CDC 方式来处理它?
如何处理来自同一源的时钟的多时钟设计信号?例如,一个时钟域是 25Mhz,另一个是 100Mhz 如何处理从 25Mhz 到 100Mhz 以及从 100Mhz 到 25Hhz 的数据总线?
不想使用 AFIFO 以及任何其他简单的 CDC 方式来处理它?
情况 1:如果源确保时钟的边沿对齐,则无需在设计中执行任何操作。单比特和多比特数据没有区别。
情况 2:如果边沿未对齐,但相位关系已知,则时钟仍是同步的。综合/STA/P&R 工具可以计算时序(例如建立/保持)检查的最坏情况。如果没有违规,则无需再次执行任何操作。这里最重要的部分是正确定义时序约束。
情况 3:如果时钟是异步的,一种解决方案是在总线上携带一个使能信号。使能信号由一对触发器同步。然后根据同步使能信号的值屏蔽或传递数据位。此处解释了此解决方案以及许多其他解决方案和案例。
取决于两个时钟是同步的还是异步的。您可以使用 2 位/n 位同步器来消除 CDC 中的元稳定性问题。其他方法是基于多路复用器的握手机制、格雷码计数器。
如果您将数据从较慢的时钟域发送到较快的时钟域,则快速时钟应该是慢速时钟的 1.5 倍。对于较快的时钟到较慢的时钟域,Fast clock 的 Data 应该是较慢时钟的 1.5 倍。