Tcl Commands for Common IP Operations - 2023.2 English

Vivado Design Suite User Guide: Designing with IP (UG896)

Document ID
Release Date
2023.2 English

Within the AMD Vivado™ IDE, the Vivado IP catalog can be accessed from the Vivado IDE and the Tcl design environment.

To accommodate end-users that prefer batch scripting mode, every IP catalog action such as IP creation, re-customization, output product generation, which is performed in the Vivado IDE, echoes an equivalent Tcl command into the vivado.log file; consequently, anything that you can do in the Vivado IDE you can script also.

The Vivado IP catalog provides direct access to IP parameter customization from the integrated Vivado IDE Tcl Console so you can set individual IP parameters directly from the Tcl Console.

The following are examples of common IP operations using Tcl commands:

Create a customization of the accumulator IP:

create_ip -name c_accum -vendor -library ip \
-module_name c_accum_0

Change customization parameter such as input and output widths:

set_property -dict [list CONFIG.Input_Width {10} \ 
CONFIG.Output_Width {10}] [get_ips c_accum_0]

Generate selective output products:

generate_target {synthesis instantiation_template simulation} \
[get_ips c_accum_0]

Reset any output products generated:

reset_target all [get_ips c_accum_0]

You can use a Tcl script to list the user configuration parameters that are available for an IP. by using either the list_property or report_property command and referencing the created IP. The following are useful Tcl commands for IP.

Return a list of objects which can be processed with a Tcl script as a list:


Return a text report giving the current value for each parameter, its type, and other parameters:


Get a list of all properties which apply to an IP:

list_property [get_ips fifo_generator_0]

Return an alphabetized list of the customization parameters:

lsearch -all -inline [ list_property [ get_ips fifo_generator_0 ] ] CONFIG.*

Create a report listing all the properties for an IP, including the configuration parameters:

report_property [get_ips fifo_generator_0]

Remove a design run:


Export a simulation:


Extract files from a core container to disk:


When you remove a design run for an IP and reset the output products for an IP in the Vivado IDE, two Tcl commands are issued: reset_target and delete_ip_run.

Write constraints to an XDC file:

write_xdc <file>

The command writes the constraints into the file in the same order in which the constraints are executed, based on the constraint settings. See Managing IP Constraints for more information on setting IP constraints. Also, see Overriding IP Constraints. Go to the Vivado Design Suite User Guide: Using Constraints (UG903) for more information.

Video: See the Vivado Design Suite QuickTake Video: Design Constraints Overview, for a demonstration of how constraints are used during IP flow.

Create a Tcl script of either all RTL IP or individual RTL IP with customizations:


For more information on the supported IP Tcl commands type, help -category IPFlow in the Tcl Console.

Note: The Vivado Design Suite Tutorial: Designing with IP (UG939) contains labs that cover scripting of both Project Mode and Non-Project Mode flows with IP. They include examples of generating output products and selectively upgrading IP.