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: 
Observer sundarbas
Observer
142 Views
Registered: ‎12-20-2018

Precedence of XDC constraints

Hi,

This is my flow of execution in tcl script which is read in by vivado.

read_xdc ./constraints/design_pins.xdc

read_ip ../../../../../../../builds/devel_xilinx/macros/2017.4/TxABE_SERDES_lanes/TxABE_SERDES_lanes.xci

link_design -part xcku115-flva1517-2-e -top $design_name
write_inferred_xdc -force -clocks post_synth_inferred_xdc_clocks.xdc
report_clocks -file pre_clocks.txt
opt_design
power_opt_design
report_utilization -force -file post_synplify_map_util.txt
write_checkpoint -force ${design_name}_post_map.dcp

 

My XDC constraint in design_pins.xdc:

set_property LOC GTHE3_CHANNEL_X1Y14 [get_cells {top/GTH_TX_lanes/inst/gen_gtwizard_gthe3_top.TxABE_SERDES_lanes_gtwizard_gthe3_inst/gen_gtwizard_gthe3.gen_channel_container[27].gen_enabled_channel.gthe3_channel_wrapper_inst/channel_inst/gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST}]


set_property LOC GTHE3_CHANNEL_X1Y13 [get_cells {top/GTH_TX_lanes/inst/gen_gtwizard_gthe3_top.TxABE_SERDES_lanes_gtwizard_gthe3_inst/gen_gtwizard_gthe3.gen_channel_container[27].gen_enabled_channel.gthe3_channel_wrapper_inst/channel_inst/gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST}]

 

As you can see, I am reading my user defined constraints first and then reading the IP in which has its constraints defined within the macro(autogenerated).

But when linking the design, it takes the constraint from the IP and reports conflicts with my user defined one.

 

CRITICAL WARNING: [Vivado 12-2285] Cannot set LOC property of instance 'top/GTH_TX_lanes/inst/gen_gtwizard_gthe3_top.TxABE_SERDES_lanes_gtwizard_gthe3_inst/gen_gtwizard_gthe3.gen_channel_container[27].gen_enabled_channel.gthe3_channel_wrapper_inst/channel_inst/gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST'... Instance top/GTH_TX_lanes/inst/gen_gtwizard_gthe3_top.TxABE_SERDES_lanes_gtwizard_gthe3_inst/gen_gtwizard_gthe3.gen_channel_container[27].gen_enabled_channel.gthe3_channel_wrapper_inst/channel_inst/gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST can not be placed in GTHE3_CHANNEL of site GTHE3_CHANNEL_X1Y14 because the bel is occupied by top/GTH_TX_lanes/inst/gen_gtwizard_gthe3_top.TxABE_SERDES_lanes_gtwizard_gthe3_inst/gen_gtwizard_gthe3.gen_channel_container[27].gen_enabled_channel.gthe3_channel_wrapper_inst/channel_inst/gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST(port:). This could be caused by bel constraint conflict [/path/constraints/design_pins.xdc:432]^M
Resolution: When using BEL constraints, ensure the BEL constraints are defined before the LOC constraints to avoid conflicts at a given site.^M
CRITICAL WARNING: [Vivado 12-2285] Cannot set LOC property of instance 'top/GTH_TX_lanes/inst/gen_gtwizard_gthe3_top.TxABE_SERDES_lanes_gtwizard_gthe3_inst/gen_gtwizard_gthe3.gen_channel_container[27].gen_enabled_channel.gthe3_channel_wrapper_inst/channel_inst/gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST'... Instance top/GTH_TX_lanes/inst/gen_gtwizard_gthe3_top.TxABE_SERDES_lanes_gtwizard_gthe3_inst/gen_gtwizard_gthe3.gen_channel_container[27].gen_enabled_channel.gthe3_channel_wrapper_inst/channel_inst/gthe3_channel_gen.gen_gthe3_channel_inst[2].GTHE3_CHANNEL_PRIM_INST can not be placed in GTHE3_CHANNEL of site GTHE3_CHANNEL_X1Y13 because the bel is occupied by top/GTH_TX_lanes/inst/gen_gtwizard_gthe3_top.TxABE_SERDES_lanes_gtwizard_gthe3_inst/gen_gtwizard_gthe3.gen_channel_container[27].gen_enabled_channel.gthe3_channel_wrapper_inst/channel_inst/gthe3_channel_gen.gen_gthe3_channel_inst[1].GTHE3_CHANNEL_PRIM_INST(port:). This could be caused by bel constraint conflict [/path/constraints/design_pins.xdc:433]^M

Resolution: When using BEL constraints, ensure the BEL constraints are defined before the LOC constraints to avoid conflicts at a given site.
Finished Parsing XDC File [/path/constraints/design_pins.xdc]

 

I need this constraint fixed in the flow. Can you help me fix it?

 

Regards,
Sundar

0 Kudos
2 Replies
Moderator
Moderator
107 Views
Registered: ‎01-16-2013

Re: Precedence of XDC constraints

@sundarbas 

 

Use read_ip first followed by read_xdc command. You need to make sure that Vivado Design Suite processes the IP-delivered XDC constraints before processing the user-defined constraints.

Check managing IP constraints in below link:

https://www.xilinx.com/support/documentation/sw_manuals/xilinx2019_1/ug896-vivado-ip.pdf#nameddest=xWorkingWithIPConstraints

 

--Syed

---------------------------------------------------------------------------------------------
Kindly note- Please mark the Answer as "Accept as solution" if information provided is helpful.
Give Kudos to a post which you think is helpful and reply oriented.

Did you check our new quick reference timing closure guide (UG1292)?
---------------------------------------------------------------------------------------------
0 Kudos
Observer sundarbas
Observer
91 Views
Registered: ‎12-20-2018

Re: Precedence of XDC constraints

Hi Syed,

 

Thanks for your answer I did try that today. But it is still throwing those CRs.

I did get around it with a change to the xdc file from the IP. But I don't want to rely on this as it may not always be consistent if the location changes.

Regards,

Sundar

0 Kudos