cancel
Showing results for
Show  only  | Search instead for
Did you mean:
Visitor
11,212 Views
Registered: ‎04-07-2015

## How to gernerate a accurate clock using MMCM?

At the beginning, we designed10MHz input of the first MMCM, and output 40MHz, which was the input of the second MMCM, the output of the second MMCM was several 10MHz clocks with different phases, using vivado.
But now, the new requirement is input 9.995MHz, and the output is several 9.995MHz clocks with different phase.

I want to set the input of the first MMCM is 9.995MHz, but this value exceed the range of MMCM. I have to set it as 10MHz.
When I set the output of the second MMCM as 9.995MHz, the Actual value is still 10MHz..

I wonder if I can specify to three decimal of ouput in MMCM? If this imposible , how to deal with this problem?

1 Solution

Accepted Solutions
Scholar
19,508 Views
Registered: ‎02-27-2008

f,

The MMCM will create a clock exactly 4 times the input, if that is what it is programmed to do.

Set it for 10 MHz in the tools, multiply by 4.  In the hardware, if you put in 9.995, you will get 39.980 out.

Although you are out of specification, it is by so little that the hardware will still work, almost surely.  Although Xilinx will only guarantee what is in the data sheet, your risk of it not working is going to be practically none....

Austin Lesea
Principal Engineer
Xilinx San Jose
7 Replies
Xilinx Employee
11,206 Views
Registered: ‎04-16-2012

Hello @fireken

The minimum input frequency of mmcm is 10 MHz. See below snapshot:

See 7 series datasheet for mmcm switching characteristics.

Thanks,

Vinay

--------------------------------------------------------------------------------------------
Have you tried typing your question in Google? If not you should before posting. Also, MARK this is as an answer in case it helped resolve your query/issue.Give kudos to the post that helped you to find the solution.
Visitor
11,198 Views
Registered: ‎04-07-2015

yes，thank you .  Minimum input frequency of mmcm is 10 MHz.  But  I cann't find the information of output of MMCM.

can input 10MHz clk to mmcm , and the ouput of MMCM is the 9.995MHz?

When i set this frequency, the Acutal will be 10MHz.

Moderator
11,177 Views
Registered: ‎01-16-2013

Hi,

Open the datasheet and check for "MMCM_Foutmin" "MMCM_Foutmax" you will find the output frequency.

Thanks,

Yash

Visitor
11,168 Views
Registered: ‎04-07-2015

Thanks Yash！

But I am not looking for the minimun output frequency. I hope MMCM output accurate frequency.

I means than can MMCM output the frequency  with accuracy of 3 decimal points?

for example,  the frequency I need is 9.995MHz , not 9.99MHz,or 10MHz..

This may be call frequency frequency resolution. I remeber I saw 1.5% in document(ug472). but I think it is too large and impossible. I hope  you or someone know the 'frequency resolution'.

@yashp wrote:

Hi,

Open the datasheet and check for "MMCM_Foutmin" "MMCM_Foutmax" you will find the output frequency.

Thanks,

Yash

Scholar
19,509 Views
Registered: ‎02-27-2008

f,

The MMCM will create a clock exactly 4 times the input, if that is what it is programmed to do.

Set it for 10 MHz in the tools, multiply by 4.  In the hardware, if you put in 9.995, you will get 39.980 out.

Although you are out of specification, it is by so little that the hardware will still work, almost surely.  Although Xilinx will only guarantee what is in the data sheet, your risk of it not working is going to be practically none....

Austin Lesea
Principal Engineer
Xilinx San Jose
Guide
11,132 Views
Registered: ‎01-23-2009

I means than can MMCM output the frequency  with accuracy of 3 decimal points?

You have to understand what the MMCM is doing, and not confuse its capabilities with what the Wizard is doing.

The MMCM can do frequency multiplication and division. There is a formula for the operation

Fout = Fin * M/(D*O)

The M, D, and O are all parameters of the MMCM and have specific ranges

M = [1,64] (in 0.125 increments)

D = [1,56] (integer only)

O = [1,128], integers for all but the first output, which can be in increments of 0.125

When you use the wizard, you tell it what the input frequency is, and what the desired output frequencies are. It will then try and find the values of M, D, (which are global to the MMCM) and O (which is individual for each output) that meets these requirements and minimizes jitter (and meets some other restrictions internal to the MMCM).

So there is no single answer to your question. Obviously, you cannot convert a 10MHz clock to a 9.995MHz clock, because there is no value of M, D, and O in the range above that will accomplish this - that is why when you ask for 9.995MHz it tells you "the closest I can get to that is 10MHz" - its not a number precision thing, its the fact that this really is the best the MMCM can do. If you asked for (say) 14.285, it would give you exactly that (well, really 14.285714..., which is 10/7 of 10MHz), since the MMCM can do that...

Avrum

Tags (1)
Visitor
11,127 Views
Registered: ‎04-07-2015

Thank you