cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
shaikon
Voyager
Voyager
823 Views
Registered: ‎04-12-2012

Failure to apply XDC constraint

Jump to solution

Hello,

When I open a synthesized design and type "report_clocks" in the TCL Console - one of the clocks I get looks like this:

Generated Clock : clk_80 
Master Source : inst_new_tap_uscale_newcar/inst_ik_clock_generator/inst/mmcme3_adv_inst/CLKIN1
Master Clock : clk_80_in_p
Multiply By : 1
Generated Sources : {inst_new_tap_uscale_newcar/inst_ik_clock_generator/inst/mmcme3_adv_inst/CLKOUT1}

I try to apply the "set_property CLOCK_DEDICATED_ROUTE BACKBONE" constraint on this clock as follows:

set_property CLOCK_DEDICATED_ROUTE BACKBONE [get_nets {inst_new_tap_uscale_newcar/inst_ik_clock_generator/inst/mmcme3_adv_inst/CLKOUT1}]

And I get this failure message: 

WARNING: [Vivado 12-507] No nets matched 'inst_new_tap_uscale_newcar/inst_ik_clock_generator/inst/mmcme3_adv_inst/CLKOUT1'.
ERROR: [Common 17-55] 'set_property' expects at least one object.

What am I doing wrong ?

 

0 Kudos
1 Solution

Accepted Solutions
749 Views
Registered: ‎01-22-2015

@avrumw   Thank you!

@shaikon 

I agree with Avrum that report_clocks has given you a pin name and not a clock name.  If, instead of report_clocks, you type get_clocks in the Tcl Console then you will get the clock names.

If you have a pin name and need the connected net name, you can use:

get_nets -of_objects [get_pins {<my_pin_name>}]


If you have a clock name and need the associated net name, then I think the following will work:

get_nets -of_objects [get_clocks {<my_clock_name>}]


So, maybe the answer to your original question is:

set_property CLOCK_DEDICATED_ROUTE BACKBONE [get_nets -of_objects [get_pins {inst_new_tap_uscale_newcar/inst_ik_clock_generator/inst/mmcme3_adv_inst/CLKOUT1}]]

 


Mark

View solution in original post

6 Replies
803 Views
Registered: ‎01-22-2015

@shaikon 

The CLOCK_DEDICATED_ROUTE constraint is for a net going out of the MMCM.  However, you have used a clock name in the constraint instead of a net name.  That is, clock names are not the same thing as net names.  One way to find the needed net name is to open the synthesized design (maybe before writing the constraint) and identify the net as shown below.
net_name.jpg

Cheers,
Mark

0 Kudos
avrumw
Guide
Guide
792 Views
Registered: ‎01-23-2009

However, you have used a clock name in the constraint instead of a net name.

Actually, it looks like a pin name, and not a net name...

Avrum

shaikon
Voyager
Voyager
774 Views
Registered: ‎04-12-2012

markg@prosensing.com wrote:

@shaikon 

The CLOCK_DEDICATED_ROUTE constraint is for a net going out of the MMCM.  However, you have used a clock name in the constraint instead of a net name.  That is, clock names are not the same thing as net names.  One way to find the needed net name is to open the synthesized design (maybe before writing the constraint) and identify the net as shown below.

Cheers,
Mark


Isn't there a TCL console command that derives the net name driven by the clock ?

0 Kudos
750 Views
Registered: ‎01-22-2015

@avrumw   Thank you!

@shaikon 

I agree with Avrum that report_clocks has given you a pin name and not a clock name.  If, instead of report_clocks, you type get_clocks in the Tcl Console then you will get the clock names.

If you have a pin name and need the connected net name, you can use:

get_nets -of_objects [get_pins {<my_pin_name>}]


If you have a clock name and need the associated net name, then I think the following will work:

get_nets -of_objects [get_clocks {<my_clock_name>}]


So, maybe the answer to your original question is:

set_property CLOCK_DEDICATED_ROUTE BACKBONE [get_nets -of_objects [get_pins {inst_new_tap_uscale_newcar/inst_ik_clock_generator/inst/mmcme3_adv_inst/CLKOUT1}]]

 


Mark

View solution in original post

shaikon
Voyager
Voyager
727 Views
Registered: ‎04-12-2012

markg@prosensing.com wrote:

 If, instead of report_clocks, you type get_clocks in the Tcl Console then you will get the clock names.


I tried get_clocks and report_clocks afterwards and couldn't see the difference:

1. With "get_clocks" - the console returns a flat list of clocks in which the clock of interest shows as: clk_80

2. With "report_clocks" the console returns a more verbose report of clocks - whith the clock of interest shows as:

Generated Clock : clk_80
Master Source : inst_new_tap_uscale_newcar/inst_ik_clock_generator/inst/mmcme3_adv_inst/CLKIN1
Master Clock : clk_80_in_p
Multiply By : 1
Generated Sources : {inst_new_tap_uscale_newcar/inst_ik_clock_generator/inst/mmcme3_adv_inst/CLKOUT1}

 

As you can see the name is the same.

0 Kudos
712 Views
Registered: ‎01-22-2015

@shaikon 

     With "report_clocks" the console returns a more verbose report of clocks..
Thanks!  It is a nice collection of often-needed info - except for the missing net name.

Mark