Using IP Tcl Commands In Design Flows - 2021.1 English

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

Document ID
UG896
Release Date
2021-07-08
Version
2021.1 English

Generally, the IP Tcl commands used for working are consistent between the Project Mode flow and the Non-Project Mode flow with a few exceptions related to setting the part to be used for IP creation and synthesis. The following table lists the Tcl command in the order that you would use them in a design.

Table 1. IP Tcl Commands in Order of Design Use
Action Project Mode Command Non Project Mode Command
Set part for IP creation N/A. Part is a project setting.
# Set target part 
set_part <part>
Creates project in memory, not on disk. Commands that have a part option, for example, synth_design, then use the specified part.
Create an IP Customization create_ip <ip_name> create_ip <ip_name>
Upgrade an IP upgrade_ip <ip_name> upgrade_ip <ip_name>
CAUTION:
Do not use upgrade_ip [get_ips -all]; this can cause issues with Vivado. The -all option returns sub-core IP. These IP might get removed during an upgrade of the parent and can lead to unreferenced Tcl objects.
Configure IP Customization

set_property \ CONFIG.Input_Data_Width 8 \

[get_ips <ip_name > ]

set_property \ CONFIG.Input_Data_Width 8 \

[get_ips <ip_name > ]

Create a target Clock Period If supported, use IP Customization GUI. If not supported use the Tcl command as shown in Non Project mode.

set_property \ CONFIG.<clock_name>.FREQ_HZ \ <#>[get_ips char_fifo]

See Setting the Target Clock Period.

Generate output products

generate_target all \

[get_ips <ip_name > ]

Optionally, you can specify the target(s) you want to generate.

generate_target all \

[get_ips <ip_name > ]

Optionally, you can specify the target(s) you want to generate.

Synthesize IP to create OOC DCP

create_ip_run \

[get_ips <ip_name > ]

launch_runs <ip_name >_ synth_1

synth_ip [get_ips <ip_name > ]
Read an IP

Copy an IP into a project along with any output products:

import_files <ip_name>.xci

Add the IP to a project along with any output products and reference from the specified location. Use either of the following:

add_files <ip_name>.xci
read_ip <ip_name>.xci

Read the IP as well as any generated output products. Use either of the following:

add_files <ip_name>.xci
read_ip <ip_name>.xci

Unlike in the Project Flow, the output products are not generated automatically. You must generate them using the generate_target command. If you use the synth_ip command to produce a DCP for the IP, it is not necessary to generate the output targets first; those targets are generated automatically.

File queries

get_files -of_objects \

[get_ips <ip_name>]

get_files -of_objects \

[get_ips <ip_name>]

Simulation See Simulating IP. See Delivering IP Simulation Models.
Debug See Debugging Flows.  
IP Definition   report_property -all [get_ipdefs <IPVLNV>
IP Creation

write_ip_tcl

Writes out IP from a Tcl script.

write_ip_tcl <ip_name>

Writes out IP from a Tcl script.