cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
smasle
Visitor
Visitor
426 Views
Registered: ‎09-03-2018

Timing fails when slowing down PLL clock

Hello,

I have a MMCM in my design that takes a 62.5MHz clock as input and generates three clocks: 100MHz, 50MHz and 200MHz.

Timing fails on a path clocked at 100MHz with a WNS of -1.06ns, so the design should be capable of running at 90.4MHz. When I change the settings of the MMCM and configure 90MHz instead of 100MHz, I get a WNS of -5.4ns (i.e. 60.6MHz). This result is beyond my understanding.

As I interpret the timing report, Vivado is capable of fitting the design at 90MHz when the clock is configured at 100MHz, but not when the same clock is set to 90MHz. Does anyone have a clue on how I could get this design running at 90MHz?

Thanks,

Sebastien

0 Kudos
4 Replies
bruce_karaffa
Scholar
Scholar
418 Views
Registered: ‎06-21-2017

Are the failures on inter-clock paths or an intra-clock path?  Can you post your timing report?

smasle
Visitor
Visitor
358 Views
Registered: ‎09-03-2018

At 100MHz, the failures are intra-clock.

intra-clock-100MHz.png

At 90MHz, failures are both inter-clock and intra-clock. WNS is -5.3 instead of -5.4 as I said in my first message, I did several changes in fitter options, without success. WNS of -5.3 is with the same fitter options as the fit done at 100MHz.

inter-clock-90MHz.pngintra-clock-90MHz.png

I was naively thinking that slowing down the 100MHz clock would have solved my timing issues.

Thanks

Sebastien

0 Kudos
bruce_karaffa
Scholar
Scholar
340 Views
Registered: ‎06-21-2017

Without the full timing report, this is only speculation but the intra-clock paths are probably the same for both the 100MHz and 90MHz cases.  Adding pipeline registers to these paths my reduce both the number of logic stages between registers and reduce the routing delay between registers, allowing the logic to run on a faster clock.  As for the inter-clock paths, are you using proper clock domain crossing techniques and constraints?

Also, what logic family are you targeting?  7-series or higher should be able to reach 100MHz fairly easily.

0 Kudos
smasle
Visitor
Visitor
239 Views
Registered: ‎09-03-2018

Thanks for your help.

Adding registers was the last option I wanted to explore. I finally changed the parameters of my design and was able to slow down the clock for my critical block. It now passes all the timings!

But this still puzzles me why Vivado reaches 90MHz when the clock is set to 100MHz but is not able to do it when slowing it down to 90MHz.

0 Kudos