cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Visitor
Visitor
516 Views
Registered: ‎07-23-2020

XDC [Common 17-55] 'set_property' expects at least one object Error Spartan 6 to Spartan 7 Migration

Jump to solution

I am transitioning from a Spartan 6 .ucf file to a Spartan 7 .xdc file, and I am getting this issue during Implementation when referring to:

set_property PACKAGE_PIN C7 [get_ports generic_port_name]

How do I resolve this? below, I also include the following definition:

set_property IOSTANDARD LVCMOS33 [get_ports generic_port_name]

Is there something else I need to include or change?

 

0 Kudos
1 Solution

Accepted Solutions
Highlighted
337 Views
Registered: ‎01-22-2015

There are many challenges in moving your project from a Spartan-6 to a Spartan-7.  Please do not attempt to address them all in this one post.

The focus of this post is getting your Vivado constraints file (xdc file) in order.

In the xdc file that you have shown, the IOSTANDARD and PACKAGE_PIN constraints are correctly formatted.  All other lines of text in the file should be removed or specified as Tcl comments (ie. begin the line with #).

Now is the perfect time to assign pins from the Spartan-7 package to your IO.

As with the Spartan-6, Spartan-7 IO are arranged in banks and each bank is powered by a voltage, VCCO, that determines the types of IOSTANDARD available to you.  Table 1-55 in UG471 shows you how to matchup IOSTANDARD and VCCO.  Chapter 2 in UG475 has links to downloadable package files that show the IO PACKAGE_PIN designations and bank for your Spartan-7.

So, for now, focus on getting your xdc file in order. -and then let’s see if you are still getting [Common 17-55] warnings.

 

View solution in original post

0 Kudos
6 Replies
Highlighted
496 Views
Registered: ‎01-22-2015

@Erin 

The warning you are seeing is often caused by forgetting that port names (eg. generic_port_name) are case sensitive.  So, make sure the port names in the xdc file match exactly the port names in your HDL.

Also, we often surrounded port names with curly braces { } to avoid unintended processing by Tcl.   For example the port name, INP1[3], uses square-braces which are special characters for Tcl.  So, in the xdc file, we would use curly braces as follows:

set_property PACKAGE_PIN H9 [get_ports {INP1[3]}]

Cheers,
Mark

0 Kudos
Highlighted
Visitor
Visitor
439 Views
Registered: ‎07-23-2020

If I have one pin assignment that is missing the {} where it is necessary, would that throw the errors for every pin assignment? I went through and confirmed, but the capitalization and naming conventions are consistent between the .xdc and all of the other files. 

Are the {} necessary everywhere, or just in cases where there are multiple pins with the same base name? i.e. CS[0], CS[1], etc...

0 Kudos
Highlighted
424 Views
Registered: ‎01-22-2015

The { } are used when port names contain Tcl special characters.  For example, the square braces, [ ], surround your [get_ports ....].  So, { } are needed to tell Vivado that the [ ] in INP1[3] are not special characters.  -actually, Vivado is smart enough to know that some uses of [ ] are not special characters, but I don't depend on this smartness.  I use { } often and more than needed.

Anyway, it seems like you are now doing things correctly.  If you can attach you xdc file to your next post, I will look at it.

0 Kudos
Highlighted
Visitor
Visitor
368 Views
Registered: ‎07-23-2020

There is not currently an up to date schematic for the new board. The .xdc is still referencing the spartan 6 pinning configuration. Could that be the issue? 

Also, if there is one line in the document that is wrong, would that subsequently cause issues to be thrown back for every line? 

I have the old .ucf version written above each pin assignment in a comment using '#'. I made a copy of the document with a smattering of the different versions of the same pin assignment. There were no clock definitions in the .xdc.

Tags (2)
0 Kudos
Highlighted
Visitor
Visitor
353 Views
Registered: ‎07-23-2020
I have been reading every response to issues of the sort, and have found one that had to do with an issue in the FIFO Generator core. I recently updated the FIFO Generators from 9_3 to 13_2 to work with Vivado, using reverse-engineering to figure out the correct details. Is there any way to know if that is the issue I am having? Can you give explicit directions that may help me resolve the issue? I have hit a wall with the migration process, and cannot get the implementation to work.
0 Kudos
Highlighted
338 Views
Registered: ‎01-22-2015

There are many challenges in moving your project from a Spartan-6 to a Spartan-7.  Please do not attempt to address them all in this one post.

The focus of this post is getting your Vivado constraints file (xdc file) in order.

In the xdc file that you have shown, the IOSTANDARD and PACKAGE_PIN constraints are correctly formatted.  All other lines of text in the file should be removed or specified as Tcl comments (ie. begin the line with #).

Now is the perfect time to assign pins from the Spartan-7 package to your IO.

As with the Spartan-6, Spartan-7 IO are arranged in banks and each bank is powered by a voltage, VCCO, that determines the types of IOSTANDARD available to you.  Table 1-55 in UG471 shows you how to matchup IOSTANDARD and VCCO.  Chapter 2 in UG475 has links to downloadable package files that show the IO PACKAGE_PIN designations and bank for your Spartan-7.

So, for now, focus on getting your xdc file in order. -and then let’s see if you are still getting [Common 17-55] warnings.

 

View solution in original post

0 Kudos