UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
428 Views
Registered: ‎02-21-2019

Delaying clock in UltraScale+

Jump to solution

I am trying to implement an lvds receiver on an UltraScale+ device (Ultra96 board) referring the xapp524.

However, i also read that IDELAYE3 elements of UltraScale architecture should be not be used to drive clocks, which is done with IDELAYE2 in xapp524.

So what is the recommended method to do this? Can i use an MMCM to dynamically delay the clock and achieve the same result?

0 Kudos
1 Solution

Accepted Solutions
Moderator
Moderator
384 Views
Registered: ‎08-08-2017

Re: Delaying clock in UltraScale+

Jump to solution

Hi @navoda.perera.abb 

Yes, MMCM should be used here.

Form UG.

Clocks should not be delayed using an IDELAYE3, because the IDELAY cannot directly route to the global clock buffers. When clocks must be delayed,
use an MMCM or PLL for clock generation, and delay the clocks using the fine-phase shift capabilities.

Fine phase shift is documented in clocking user guide

https://www.xilinx.com/support/documentation/user_guides/ug572-ultrascale-clocking.pdf

 

-------------------------------------------------------------------------------------------------------------------------------
Reply if you have any queries, give kudos and accept as solution
-------------------------------------------------------------------------------------------------------------------------------

View solution in original post

2 Replies
Moderator
Moderator
385 Views
Registered: ‎08-08-2017

Re: Delaying clock in UltraScale+

Jump to solution

Hi @navoda.perera.abb 

Yes, MMCM should be used here.

Form UG.

Clocks should not be delayed using an IDELAYE3, because the IDELAY cannot directly route to the global clock buffers. When clocks must be delayed,
use an MMCM or PLL for clock generation, and delay the clocks using the fine-phase shift capabilities.

Fine phase shift is documented in clocking user guide

https://www.xilinx.com/support/documentation/user_guides/ug572-ultrascale-clocking.pdf

 

-------------------------------------------------------------------------------------------------------------------------------
Reply if you have any queries, give kudos and accept as solution
-------------------------------------------------------------------------------------------------------------------------------

View solution in original post

367 Views
Registered: ‎02-21-2019

Re: Delaying clock in UltraScale+

Jump to solution

On a different note, the device i am using is a Zynq UltraScale+ MPSoC ZU3EG (AvNet Ultra96 board).

As i understood from the documentation, the high speed LVDS clock input should be given to HP_GPIO_CC+/- pins at J5 (IO_L16N_T2U_N7_QBC_AD3N_65) and H5 (IO_L16P_T2U_N6_QBC_AD3P_65).

However, this results in a DRC PLCK-58 (Sub-optimal placement for global clock-capable IO pin and BUFG pair) error, which suggested to add an extra BUFG between the MMCM and the BUFIDS. Even after this, i had to add "CLOCK_DEDICATED_ROUTE FALSE" to demote it to a warning and get the placement done.

My 2 main questions are:

  1. Even with the warning, if the design doesn't fail timing am i good to go?
  2. Can i use one of the other differential input pairs in bank 65 to maybe take in the clock and avoid this warning? (I am not sure how exactly to determine whether they are clock-capable)
0 Kudos