1

将 FPGA 上的 12 MHz 系统时钟信号转换为 50% 占空比的 1 MHz 信号输出。

我知道我需要在 50/50 占空比下除以 2 以获得 6 MHz,然后再除以 2 以达到 3 MHz,然后除以 3 以达到 1 MHz。这是正确的方法吗?

另外,我将如何在 RTL Verilog 代码中实现这一点?

4

1 回答 1

2

这是正确的方法吗?

不会。首先,在逻辑时钟上运行通常很难正确布线,尤其是在多级中。其次,在没有下降沿或 DDR 触发器的情况下,将时钟除以 3 并获得 50% 的占空比是特别困难的,这两者在 FPGA 架构中通常是不可用的。

正确的方法是使用 FPGA 的时钟资源。大多数现代 FPGA 将具有一个或多个板载 DLL 或 PLL,可用于管理时钟信号。

在赛灵思器件上,这些资源称为 DCM、PLL 和/或 MMCM,可以使用 ClockGen IP 内核进行实例化。

在 Altera/Intel 部件上,这些资源可以通过 PLL 和其他宏功能进行配置。

在 Lattice 器件上,这些资源称为 sysCLOCK PLL,可以使用 IPexpress 进行配置。

于 2018-07-19T22:06:27.480 回答