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!

AR# 65016

Vivado - 7 Series IOB and get_sites ordering cause difficulty with Tcl scripting in Pin Planning


When trying to script a pin planning design in Vivado, The ordering of the IOB sites and get_sites return values make it difficult to use the place_ports command.

For 7 Series devices, the IOB sites are ordered in a N - P manner which is inconsistent with other architectures.

Also, the get_sites will return P - N ordering that makes it difficult to order objects sequentially.

For example:

get_sites -range IOB_X0Y248 -range IOB_X0Y245
IOB_X0Y247 IOB_X0Y248 IOB_X0Y245 IOB_X0Y246

place_ports [create_port -direction in -diff_pair FOOBAR15] [get_package_pins -of_objects [get_sites -range IOB_X0Y247 -range IOB_X0Y248]]

ERROR: [Vivado 12-3609] Port and package pin arguments must be interleave each other -- i.e. a port must be followed by a package pin.


One way to work around the get_sites ordering is to use the lsort command. The modified get_sites command could be issued as follows:

lsort -dictionary -increasing [get_sites -range IOB_X0Y248 -range IOB_X0Y247]

However, the interleaving of "Port and package pin arguments" must still be honored. A request has been made to update the place_ports command to remove the interleaving requirement.

AR# 65016
Date Created 07/17/2015
Last Updated 02/09/2016
Status Active
Type General Article
  • Vivado Design Suite