【问题标题】:How to implement clock frequency multiplier using VHDL如何使用VHDL实现时钟倍频器
【发布时间】:2014-01-01 05:17:12
【问题描述】:

我是 VHDL 编码的初学者。我正在尝试使用 VHDL 实现倍频器。我已经实现了分频器,但是倍频器并不是那么容易。请给出实现的想法。

【问题讨论】:

    标签: vhdl fpga


    【解决方案1】:

    要在 FPGA 中实现,您必须使用专用的 FPGA 资源,例如 Phase-Locked Loop (PLL)(参见 AlteraXilinx)或数字时钟管理器 (DCM)(参见 Xilinx)来倍频。

    这些资源可以根据输入频率创建输出频率,例如:

    f_out = (N / M) * f_in
    

    PLL 和 DCM 资源是特定于设备的,通常是非常高级的资源,允许对相位、延迟等进行额外控制,因此请查看您正在使用的设备中的资源。

    【讨论】:

    • 我曾经(很久以前)对 Xilinx DLL 感到“有趣”,当时我们感觉到它的复位输入错误。事实证明,将其保持在复位状态的唯一影响是其相位噪声略低于规格……这真的很难找到。一旦重置感觉正确,它就会完美地执行!
    【解决方案2】:

    可以使用触发器来划分时钟频率。然而,时钟乘法不能由纯数字电路执行。正如 Morten 所提到的,为此使用了 PLL 单元(这是一个混合电路,因此不直接用 VHDL 实现)。 PLL 是 FPGA 中的内置单元,因此您所要做的就是实例化它们。

    V. Pedroni 所著的“使用 VHDL 进行电路设计和仿真”的附录 G 中提供了有关如何执行此操作的详细示例。该书中还包含了几个使用 PLL 在数据串行器中进行时钟倍频的完整示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-14
      • 2023-02-25
      • 1970-01-01
      相关资源
      最近更新 更多