【发布时间】:2014-01-01 05:17:12
【问题描述】:
我是 VHDL 编码的初学者。我正在尝试使用 VHDL 实现倍频器。我已经实现了分频器,但是倍频器并不是那么容易。请给出实现的想法。
【问题讨论】:
我是 VHDL 编码的初学者。我正在尝试使用 VHDL 实现倍频器。我已经实现了分频器,但是倍频器并不是那么容易。请给出实现的想法。
【问题讨论】:
要在 FPGA 中实现,您必须使用专用的 FPGA 资源,例如 Phase-Locked Loop (PLL)(参见 Altera 和 Xilinx)或数字时钟管理器 (DCM)(参见 Xilinx)来倍频。
这些资源可以根据输入频率创建输出频率,例如:
f_out = (N / M) * f_in
PLL 和 DCM 资源是特定于设备的,通常是非常高级的资源,允许对相位、延迟等进行额外控制,因此请查看您正在使用的设备中的资源。
【讨论】:
可以使用触发器来划分时钟频率。然而,时钟乘法不能由纯数字电路执行。正如 Morten 所提到的,为此使用了 PLL 单元(这是一个混合电路,因此不直接用 VHDL 实现)。 PLL 是 FPGA 中的内置单元,因此您所要做的就是实例化它们。
V. Pedroni 所著的“使用 VHDL 进行电路设计和仿真”的附录 G 中提供了有关如何执行此操作的详细示例。该书中还包含了几个使用 PLL 在数据串行器中进行时钟倍频的完整示例。
【讨论】: