开发者

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

开发者 https://www.devze.com 2023-03-06 02:57 出处:网络
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. Is this for an FPGA? Or something else? A

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.


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


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.


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.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号