DCM32to16 - CLKFX vs CLKDV


Recommended Posts

I modified the DCM32to16 to also output CLKDV set for /2 and then routed it to clk16 instead of CLKFX. I did this so that I could in turn set CLKFX to output a 24MHz clock for an external device.

My sketches seem to run fine and show every indication that it is getting 16MHz from CLKDV and I am getting 24MHz at the physical output pin as I wanted.

Are there any timing issues or otherwise with doing this?

Link to comment
Share on other sites

This is exactly how you should handle this. :) It's one of the reasons I used FX instead of DV, I wanted people to see the example of using FX.

Just curious though, it sounds like you are not using the schematic DCM? I put a DCM in the second top level schematic example I made.

Jack.

Link to comment
Share on other sites

No, I didn't add a second DCM. I did this...

AVR8ModifiedDCM.jpg

VCLK is my 24MHz output to my external I2C device. DCLK is the data clock coming from the external I2C device which here I have just fed to a test circuit to divide it down to something I can easily trace with my USB Logic.

I modified DCM32to16 output CLKDV_OUT with a divisor of 2 and changed CLKFX_OUT to 24MHz instead of 16MHz.

I then modified Papilio_AVR8.vhd to use CLKDV_OUT instead of CLKFX_OUT for clk16M and added CLKFX_OUT to the Papilio_AVR8 entity.

After making these changes I regenerated teh Papilio_AVR8 Symbol and when I clicked on the schematic a dialog appeared asking if I would like to update the symbol. After the schematic updated itself with the newly generated Papilio_AVR8 Symbol , the CLKFX_OUT pin appeared :)

I am also thinking of routing nrst to the DCM reset and then the DCM Locked signal to the AVR8 reset so that the AVR8 does not startup until the clock is locked after reset.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.