【问题标题】:Why use multiple clocks of the same speed in an FPGA design?为什么在 FPGA 设计中使用多个相同速度的时钟?
【发布时间】:2015-05-15 11:19:52
【问题描述】:

我最近开始尝试使用 FPGA。在研究网络上的东西时,我注意到在几个地方设计可能会使用多个速度完全相同的独立 PLL 时钟。这是为什么呢?

我将举一个例子是这个网站:Parallella Linux Quick Start

它们的 FCLK_CLK1 和 FCLK_CLK2 都在 200MHz。为什么建议这样做,而不是两者都使用 200MHz 的单个时钟?是否只是习惯性地给每个主要组件自己的时钟,即使它是相同的?还是我错过了什么?

【问题讨论】:

  • 有几种可能性是时钟门控以节省功耗,单独的时钟网络每个都具有较低的扇出
  • 您有没有想过询问参与 Parallella 项目的人?还有赛灵思用户指南 899、Vivado 设计套件用户指南、I/O and Clock Planning,您会在其中找到时钟向导。有一些带有相关 BUFG 和 I/O 管脚的时钟区域。在某些时候,您可能希望信任供应商 (Xilinx) 知道他们在做什么。浏览附录 B 中的参考资料集。您不可能立即找到答案。

标签: vhdl clock fpga parallella


【解决方案1】:

除了已经提到的原因之外,还有多个其他原因导致可能存在两个相同速度的 PLL 时钟。

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

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

【讨论】:

    【解决方案2】:

    使用多个速度完全相同的时钟的原因有很多。所以我只说几个。但是我对您的示例没有任何深入的了解。

    • FPGA 上的魔力。

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

    • 时钟分布。

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

    • 一个 FPGA 上的不同 IP。

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

    HDMI 支持由 Analog Devices 的 IP 内核提供 ...

    • 输出。

    也许附加时钟仅用作某些 I/O 端口的输出。

    • 低功耗。

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

    【讨论】:

      猜你喜欢
      • 2019-02-09
      • 2017-09-24
      • 2017-09-16
      • 2019-03-07
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多