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: 
Participant norume
Participant
185 Views
Registered: ‎04-01-2015

How to set ODELAYE2 REFCLK_FREQUENCY Attribute

Jump to solution

I used the SelectIO wizard (5.1) to configure an output port with a DDR 8:1 SERDES and an ODELAYE2 with variable loadable delay.  The delay reference clock is running at 400 MHz.  

When I compile this I get a critical warning:

CRITICAL WARNING: [Timing 38-469] The REFCLK pin of IDELAYCTRL gateDrivers/genblk1[0].gateDriver_i/gateDriverSelectIO_i/inst/delayctrl has a clock period of 2.500 ns (frequency 400.000 Mhz) but ODELAYE2 gateDrivers/genblk1[0].gateDriver_i/gateDriverSelectIO_i/inst/pins[0].odelaye2_bus has REFCLK_FREQUENCY of 200.000 Mhz (period 5.000 ns). The IDELAYCTRL REFCLK pin frequency must match the ODELAYE2 REFCLK_FREQUENCY property.

 

I see no way in the wizard to change the ODELAYE2 REFCLK_FREQUENCY attribute.   How is this supposed to be accomplished?  I've tried editing pinDriverSelectIO_selectio_wiz.v by hand but even then I get the critical warning.  

0 Kudos
1 Solution

Accepted Solutions
Highlighted
Moderator
Moderator
138 Views
Registered: ‎04-18-2011

Re: How to set ODELAYE2 REFCLK_FREQUENCY Attribute

Jump to solution

Hi @norume

In this case I tried it with a simple example. 

There is no attribute on the IDELAYCTRL to set the reference clock. In this case it should be set by the create_clock at the reference clock input. 

It seems by default the wizard set the refclk property on the ODELAY to be 200MHz. 

So to get it all to work I set this in the synthesised netlist. 

set_property REFCLK_FREQUENCY 400 [get_cells io_inst/inst/odelaye2_bus]
set_property REFCLK_FREQUENCY 400 [get_cells {io_inst/inst/pins[0].odelaye2_bus}]
set_property REFCLK_FREQUENCY 400 [get_cells {io_inst/inst/pins[1].odelaye2_bus}]
set_property REFCLK_FREQUENCY 400 [get_cells {io_inst/inst/pins[2].odelaye2_bus}]
set_property REFCLK_FREQUENCY 400 [get_cells {io_inst/inst/pins[3].odelaye2_bus}]
create_clock -period 2.500 -name ref_clock [get_ports ref_clock]

 

It goes through the tools fine then. 

 

Keith 

 

 

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
3 Replies
Moderator
Moderator
154 Views
Registered: ‎04-18-2011

Re: How to set ODELAYE2 REFCLK_FREQUENCY Attribute

Jump to solution

Hi @norume

I think (but I would need to double check) that support for 400mhz reference clock was added pretty late so my guess would be that this is some kind of mismatch in the wizard.

I would need to try this. 

A potential way to workaround it would be to do a set_property on the ODELAY in the netlist. Give that a try for now and see if it works.

Keith 

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 Kudos
Highlighted
Moderator
Moderator
139 Views
Registered: ‎04-18-2011

Re: How to set ODELAYE2 REFCLK_FREQUENCY Attribute

Jump to solution

Hi @norume

In this case I tried it with a simple example. 

There is no attribute on the IDELAYCTRL to set the reference clock. In this case it should be set by the create_clock at the reference clock input. 

It seems by default the wizard set the refclk property on the ODELAY to be 200MHz. 

So to get it all to work I set this in the synthesised netlist. 

set_property REFCLK_FREQUENCY 400 [get_cells io_inst/inst/odelaye2_bus]
set_property REFCLK_FREQUENCY 400 [get_cells {io_inst/inst/pins[0].odelaye2_bus}]
set_property REFCLK_FREQUENCY 400 [get_cells {io_inst/inst/pins[1].odelaye2_bus}]
set_property REFCLK_FREQUENCY 400 [get_cells {io_inst/inst/pins[2].odelaye2_bus}]
set_property REFCLK_FREQUENCY 400 [get_cells {io_inst/inst/pins[3].odelaye2_bus}]
create_clock -period 2.500 -name ref_clock [get_ports ref_clock]

 

It goes through the tools fine then. 

 

Keith 

 

 

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
Participant norume
Participant
130 Views
Registered: ‎04-01-2015

Re: How to set ODELAYE2 REFCLK_FREQUENCY Attribute

Jump to solution

Thanks.  I'll do that for now.

Hopefully an updated version of the wizard will take care of this too.

0 Kudos