我最近开始尝试使用FPGA。在研究网络周围的事情时,我注意到在一些地方设计可能会使用完全相同速度的多个独立PLL时钟。那是为什么?
我将给出的一个例子是这个网站:Parallella Linux Quick Start
他们的FCLK_CLK1和FCLK_CLK2均为200MHz。为什么这是推荐的而不是200MHz的单个时钟?是否习惯性地为每个主要组件提供自己的时钟,即使它们是相同的?或者我错过了什么?
答案 0 :(得分:4)
除了已经提到的原因,还存在多个其他原因,为什么可能存在两个相同速度的PLL时钟。
即使频率完全相同,时钟相位或抖动也可能存在差异。使用一个具有固定时钟相位的PLL和另一个具有可调时钟相位的PLL可用于正确采样外部输入信号或保持时钟和输出数据之间的正确相位差。在IDELAY和ODELAY等组件广泛应用之前,这类技术特别受欢迎。
晶体振荡器也会从其标记值中得到小的推导。如果两个板之间有通信链路,并且两个板都有自己的振荡器,则一个主板主时钟可能以200.01 Mhz运行,而其他板可以以199.99 Mhz运行。在许多情况下,两个FPGA都会将本地生成的低抖动时钟作为主时钟,但也会使用远程时钟对输入数据进行采样。您可以在以太网PHY中看到这一点:100 Mbit PHY通常具有从输入信号恢复的25 Mhz接收时钟和本地生成的25 mhz发送时钟。
答案 1 :(得分:3)
使用完全相同速度的多个时钟有很多原因。所以我只想陈述一些。但是我对你的例子一无所知。
如评论中所述,FPGA是一种高度复杂的设备。只有供应商确切地知道那里发生了什么,所以他们可能会给你一些建议,这可能很奇怪。
如果您的设计仅使用一个时钟源,则正确布置时钟至关重要。时钟必须同时在任何地方触发,这对于PnR工具来说很难管理。今天的FPGA通常没有这个问题。
如果你有一个不同的IP /设计,你在一个FPGA上融合,IP可以使用不同的时钟。如果您想稍后再拆分,那么无论如何都需要多个时钟源。此外,如果你切换一个clockdomain,你被迫实现一些寄存器,在合并你的IP期间,你不要混淆evrything,这是一个很好的设计风格。这也可能是你的例子。
HDMI支持由ADI公司的IP核提供......
可能额外的时钟仅用作某个I / O端口的输出。
在今天的CMOS技术中,最大功率浪费在转换(晶体管开关)和静态功率泄漏(该死的东西是如此之小,它只是泄漏电流)。使用多个时钟域,您有机会每秒进行较少的转换。或者您可以完全关闭设备的部件。