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# 62661

Vivado Implementation - How to verify whether an I/O register is packed into IOB


Is there any report that confirms the successful packing of an IOB register?


In Vivado versions prior to 2014.1:

To check if the I/O registers are placed into IOBs, run "report_io" or refer to the "IO Report" (*_io_placed.rpt) after place_design and check the "IOB Sequential Element" column.

You can use the following command to extract the information from that file:

cat *io_placed.rpt | awk -F\| '$16 ~ /[A-Z]/ {print "Pin "$2 $16}'

In Vivado versions from 2014.1 to 2015.2:

There is an ultrafast app inside the Tcl Store which includes a command called report_io_reg.

In the output table, there are ILOGIC and OLOGIC columns which indicate the IOB register.

To run this command:

  1. 1. Select Tools > Xilinx Tcl Store and ensure Ultrafast Design Methodology is installed.
  2. Open the implemented design, and run the following from the Tcl Console:


In Vivado versions starting from 2015.3:

Starting from 2015.3, the IOB registers information is put in the report_datasheet report.

The "(IOB)" mark in the "IO Reg Type" column means that the cell is placed in an IOB.

This report can be generated by running "report_datasheet -name" in the Tcl console or by generating the report_timing_summary report with the "Report Datasheet" option checked.

Both the GUI report and the text report contain the I/O Reg Type information.

AR# 62661
Date Created 10/31/2014
Last Updated 01/04/2016
Status Active
Type General Article
  • Vivado Design Suite