尽管每个模块在其单元级别都可以正常工作,但是当来自设计单元的信号与其他设计单元的信号进行通信时,考虑可靠性的观点很重要。 同步设计的方法很有帮助,但是电路中存在多个时钟域变得越来越普遍。 当信号跨时钟域通信时,可靠性尤其具有挑战性。 这里讨论了信号跨时钟域时要考虑的一些问题,以及如何提高可靠性。
1.如何跨时钟域可靠地传达控制信息?
当控制信号跨时钟域穿越时,该信号在目标时钟域显示为异步输入。 因此,该信号需要同步以满足目标时钟域的建立和保持要求,以便下游逻辑可以具有有效的逻辑电平。 否则,FF将进入亚稳定状态,在这种情况下,它将无法在给定的时间内达到有效状态。
亚稳态FF的输出可以处于中间电压电平,或者可以使无效逻辑沿信号路径振荡。
常见方法之一是在源时钟和目标时钟之间具有两级同步器FF。 如果由于CLK输入和D输入之间的任何竞争条件而使第一个FF进入亚稳态,则在第一个触发器中捕获的Q值是未知的,即为1或0(“ x” 在模拟中),取决于输入变化的分辨率。
通过串联两个触发器,第二个触发器始终可以确保将第一个触发器的已解析状态捕获为稳定数据,即使第一个触发器在时钟上升沿之后的一段时间内是亚稳态的也是如此。
以下是2级同步器。 请注意,当两个FF由clk2驱动时,数据来自源clk1。

一些芯片和IP供应商甚至具有专门用于同步目的的优化单元。 尽管这些单元具有较少的建立和保持时间要求,但这些单元的面积可能比普通FF大,并且消耗的功率也更多。 请注意,实例化此类技术特定的单元可能会使设计无法与其他库供应商重复使用。 在这种情况下,建议使用两个同步触发器定义模块,并在设计中实例化它们。
上面的同步器只处理足够长的电平信号,以便在目标时钟的下一个上升沿进行采样。 在脉冲信号传输的情况下,其宽度可能小于目标时钟频率,上述同步器逻辑无济于

本文探讨了在不同时钟域间可靠传输控制信息及数据的策略,包括使用两级同步器FF处理控制信号,利用FIFO解决不同总线宽度和时钟域的数据传输问题,以及使用FIFO进行非等待写入和预取读取时的设计考量。
最低0.47元/天 解锁文章
1260

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



