如何使用VHDL将24MHz和12MHz时钟转换为8MHz时钟?

时间:2011-05-13 07:01:24

标签: vhdl fpga

我正在使用VHDL编写代码,将24MHz和12 MHz时钟转换为8 MHz时钟。有人可以帮我这个编码吗?提前致谢。

3 个答案:

答案 0 :(得分:1)

这适用于FPGA吗?或者是其他东西?你真的在划分时钟,还是只是一个信号?对于除以三个计数器,请尝试以下链接:

http://www.asic-world.com/examples/vhdl/divide_by_3.html

对于2/3:

http://www.edaboard.com/thread42620.html

答案 1 :(得分:1)

正如马丁已经说过的那样,请使用Xilinx建议的时钟管理器件,以便将时钟降低到更低的速率。

虽然您可能想要使用逻辑和计数器来实现时钟分频器,但您将无法获得良好的综合结果。

以下是一些提示:

  • 请务必仔细阅读并遵循设备时钟管理硬件的建议。可能存在相当多的“陷阱”与上电,复位,时钟锁丢失等有关。
  • 确保您在其规格范围内操作时钟管理设备。有关详细信息,请参阅设备的数据表(在本例中为S3-A)。
  • 使用FPGA编辑器验证时钟管理单元的正确放置和配置(即它最终位于芯片上的正确位置)
  • 坚持反馈时钟和时钟缓冲的推荐做法。

答案 2 :(得分:0)

使用DCM或PLL(取决于FPGA系列) - 文档中有示例。如果你告诉我们哪个家庭,我可能会更直接地指出你。

编辑: 正如你所说的Spartan 3ADSP - 你需要:

  • 使用核心生成器时钟向导为您创建包含所需组件的VHDL或Verilog文件,并希望您永远不需要了解正在发生的事情
  • 阅读该芯片的用户指南的图书馆指南和DCM部分,并自行实例化DCM并将正确的通用/参数应用于其中。

配置完成后,不要忘记向DCM应用复位脉冲,并确保脉冲持续足够长的时间。每个系列的最小脉冲长度是不同的,我不记得我的头顶是什么芯片,所以检查数据表。

相关问题