PKGPIN_BYTEGROUP - 2023.2 English

Vivado Design Suite Properties Reference Guide (UG912)

Document ID
Release Date
2023.2 English


For 7 series devices, the hierarchy of I/O banks is divided into two object types: I/O Banks and Package Pins. For AMD UltraScale architecture, the I/O bank hierarchy includes two additional divisions: bytegroups and nibbles. The relationships of these objects on an UltraScale device are defined as follows:

  • An IO_BANK of 52 pins has four pkgpin_bytegroups, while a mini IO_BANK of 26 pins has two bytegroups.
  • Each pkgpin_bytegroup has 13 package pins, and has two pkgpin_nibbles, an upper and lower.
  • Each pkgpin_nibble has six or seven pins, and is the upper or lower nibble of the pkgpin_bytegroup.
  • A package_pin is one pin of an iobank, a pkgpin_bytegroup, or a pkgpin_nibble.

In UltraScale, the bitslice logic connected to I/O banks is grouped into pkgpin_bytegroups and pkgpin_nibbles. These objects aid in the placement of related I/O pins, such as groups of bitslices. For instance, you can use bytegroups and nibbles for I/O pin assignment of memory controllers on UltraScale devices. You can perform interactive I/O planning by opening either the elaborated RTL design or the synthesized design in the Vivado IDE, using the Memory Bank/Byte Planner, which enables automatic or manual assignment of memory I/O pin groups to I/O banks and byte lanes. This process is discussed in detail at this link in the Vivado Design Suite User Guide: I/O and Clock Planning (UG899).

Figure 1. PKGPIN_BYTEGROUP Objects

Related Objects

The PKGPIN_BYTEGROUP and PKGPIN_NIBBLE are related to IO_BANKs, PACKAGE_PINs, and PORTs, as previously described. In addition, each PKGPIN_BYTEGROUP is related to a SITE on the AMD device. You can query the PKGPIN_BYTEGROUP of an associated object using a Tcl command like the following:

get_pkgpin_bytegroups -of [get_package_pins AG17]

You can also get the list of package_pin objects assigned to specific pkgpin_bytegroups:

get_package_pins -of [get_pkgpin_bytegroups BANK45_BYTE2]


The properties found on PKGPIN_BYTEGROUP objects are as follows, with example values:

Property	Type	Read-only	Value
CLASS	string	true	pkgpin_bytegroup
INDEX_IN_IOBANK	int	true	2
IOBANK	int	true	45
NAME	string	true	BANK45_BYTE2

The properties of the bytegroup objects can be listed with the following command:

report_property -all [lindex [get_pkgpin_bytegroups] 0]