Vhdl 为什么在FPGA设计中使用相同速度的多个时钟?

Vhdl 为什么在FPGA设计中使用相同速度的多个时钟?,vhdl,clock,fpga,parallella,Vhdl,Clock,Fpga,Parallella,我最近开始用FPGA做实验。在网络研究中,我注意到在一些地方,设计可能使用多个速度完全相同的独立PLL时钟。为什么呢 我要举的一个例子是这个网站: 它们的FCLK_CLK1和FCLK_CLK2均为200MHz。为什么这是推荐的,而不是一个单一的时钟在200MHz为两者?即使每个主要组件都是相同的,也会给它们自己的时钟,这只是一种习惯吗?还是我遗漏了什么?使用多个速度完全相同的时钟有很多原因。因此,我将仅陈述几个。然而,我对你的例子不太了解 神奇的FPGA 如评论中所述,FPGA是一种高度复杂

我最近开始用FPGA做实验。在网络研究中,我注意到在一些地方,设计可能使用多个速度完全相同的独立PLL时钟。为什么呢

我要举的一个例子是这个网站:


它们的FCLK_CLK1和FCLK_CLK2均为200MHz。为什么这是推荐的,而不是一个单一的时钟在200MHz为两者?即使每个主要组件都是相同的,也会给它们自己的时钟,这只是一种习惯吗?还是我遗漏了什么?

使用多个速度完全相同的时钟有很多原因。因此,我将仅陈述几个。然而,我对你的例子不太了解

  • 神奇的FPGA
如评论中所述,FPGA是一种高度复杂的设备。只有供应商知道那里到底发生了什么,所以他们可能会给你一些建议,这可能很奇怪

  • 时钟分配
如果您的设计只有一个时钟源,那么正确路由时钟至关重要。时钟必须同时在任何地方触发,这对于PnR工具来说是很难管理的。今天的FPGA通常没有这个问题

  • 一个FPGA上的不同IP
如果您有不同的IP/设计,并且融合在一个FPGA上,则IP可以使用不同的时钟。如果您想稍后再次拆分它,您将需要多个时钟源。此外,如果切换clockdomain,您将被迫实现一些寄存器,并且在IP合并期间,您不会混淆evrything,这是一种很好的设计风格。你的例子可能也是这样

HDMI支持由模拟设备的IP核提供

  • 输出
可能额外的时钟仅用作某些I/O端口的输出

  • 低功耗

在今天的CMOS技术中,大部分功率浪费在转换(晶体管开关)和静态功率泄漏上(该死的东西太小了,只会泄漏电流)。使用多个时钟域,您有机会每秒进行较少的转换。或者,您可以完全关闭设备的某些部分。

除了前面提到的原因之外,还有其他多种原因可以解释为什么可能存在两个相同速度的PLL时钟

即使频率完全相同,时钟相位或抖动也可能存在差异。使用一个具有固定时钟相位的PLL和另一个具有可调时钟相位的PLL可用于外部输入信号的适当采样或保持时钟和输出数据之间的正确相位差。在IDELAY和ODELAY等组件广泛使用之前,这样的技术尤其流行


晶体振荡器的标记值也会有小的导数。如果两块板之间有通信链路,并且两块板都有自己的振荡器,那么一块板的主时钟可能运行在200.01 Mhz,而其他板的主时钟可能运行在199.99 Mhz。在许多情况下,两种FPGA都将本地生成的低抖动时钟作为主时钟,但也将使用远程时钟对输入数据进行采样。您可以在以太网物理层中看到这一点:100 Mbit物理层通常具有从输入信号恢复的25 Mhz接收时钟和本地生成的25 Mhz发射时钟

有两种可能性是时钟门控节能,单独的时钟网络,每个都有较低的扇形输出。你有没有想过问问参与Parallela项目的人?还有Xilinx用户指南899,Vivado Design Suite用户指南,您可以在其中找到计时向导。存在具有相关BUFG和I/O引脚的时钟区域。在某种程度上,您可能希望相信供应商(Xilinx)知道他们在做什么。仔细阅读附录B中的一组参考资料。你不可能马上找到答案。