How to convert 24MHz and 12MHz clock to 8MHz clock using VHDL?

蓝咒 提交于 2020-01-26 04:55:24

问题


I am writing a code using VHDL to convert 24MHz and 12 MHz clock to 8 MHz clock. Can anyone please help me in this coding? Thanks in advance.


回答1:


Is this for an FPGA? Or something else? Are you really dividing a clock, or just a signal? For a divide by three counter, try this link:

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

And for a 2/3:

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




回答2:


As Martin has already said, use a clock management device by Xilinx recommendations in order to divide your clock down to a lower rate.

While you might be tempted to implement a clock divider using logic and a counter, you will not obtain good synthesis results.

Here are some tips:

  • Be sure to closely read and follow recommendations for the clock management hardware for your device. There can be quite a few "gotchas" related to power-up, reset, loss of clock lock, etc.
  • Make sure that you are operating the clock management device within its specifications. See your device's datasheet for more information (in this case for the S3-A).
  • Use FPGA Editor to verify correct placement and configuration of your clock management units (i.e. did it end up in the right spot on the chip)
  • Adhere to recommended practices for feedback clocks, and clock buffering.



回答3:


Use a DCM or PLL (depending on the family of FPGA) - there's examples in the documentation. If you tell us which family, I might be able to point you more directly.

EDIT: As you say Spartan 3ADSP - you need to either:

  • Use the Core Generator Clocking Wizard to create you a VHDL or Verilog file with the components you need in and hope you never need to understand what's going on
  • Read the libraries guide and the DCM section of the Userguide for that chip and instantiate a DCM on your own and apply the correct generics/parameters to it.

Don't forget to apply a reset pulse to the DCM after configuration has finished 0 and make sure that pulse lasts long enough. The min pulse length is different for each family, I don't recall off the top of my head what it is for that chip, so check the datasheet.



来源:https://stackoverflow.com/questions/5988389/how-to-convert-24mhz-and-12mhz-clock-to-8mhz-clock-using-vhdl

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!