【问题标题】:VHDL clock divide in decimal十进制的 VHDL 时钟分频
【发布时间】:2013-06-15 21:16:04
【问题描述】:

我需要使用 VHDL 以 50% 的占空比将 50 MHz 时钟分频为 1.5 Mhz。为此,我想使用一个计数器来计算 50 Mhz 时钟脉冲的数量,直到 1.5 Mhz 时钟周期的一半,即 16.6666,它是十进制的,我不知道如何在代码中实现。有人可以帮我吗?

非常感谢。

【问题讨论】:

    标签: vhdl clock


    【解决方案1】:

    我不是 VHDL 方面的专家,但我认为您无法使用可合成代码精确到 1.5 MHz。如果您改变在 50 MHz 时钟上等待的时钟周期数,直到提高 1.5 MHz 时钟周期,您可能会得到 1.5 MHz 的平均值。

    如果您只想要可以模拟的代码,那么您当然可以使用任意延迟。

    【讨论】:

      【解决方案2】:

      您建议的方法将产生近似值,这当然可以。如果没有,我建议您使用特定于目标技术的 PLL 或时钟管理器。

      【讨论】:

      • PLL 是要走的路。如果你自己实现时钟分频器,你能得到的最好的就是一个近似值。如果您使用的是 Altera 设计软件,请寻找 ALTPLL 宏功能。
      • 我正在使用赛灵思 ISE。 DCM 只能分频到 16。所以,我不能除以 33.3333 来从 50MHz 输入时钟得到 1.5MHz。你知道如何使用 DCM 来实现吗?
      • 使用 DCM_clkgen 原语:设置 M = 3,d = 10(我已阅读数据表,这是有效的)。这将采用您的 50MHz 参考,将其频率增加到 150MHz,然后除以 10 得到 15MHz。然后要么做一个 5 时钟计数器给你 1.5MHz,这在这些速度下可能没问题,或者放第二个 dcm 并进一步分频。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-06
      • 1970-01-01
      • 1970-01-01
      • 2012-09-02
      • 1970-01-01
      • 1970-01-01
      • 2014-11-06
      相关资源
      最近更新 更多