Create an instance of a configurable IP and add it to the fileset
Syntax
create_ip [‑vlnv <arg>] ‑module_name <arg> [‑dir <arg>] [‑force]
[‑allow_hidden] [‑vendor <arg>] [‑library <arg>] [‑name <arg>]
[‑version <arg>] [‑revision <arg>] [‑quiet] [‑verbose]
Returns
list of file objects that were added
Usage
Name | Description |
---|---|
[-vlnv]
|
VLNV string for the Catalog IP from which the new IP will be created (colon delimited Vendor, Library, Name, Version) |
-module_name
|
Name for the new IP that will be added to the project |
[-dir]
|
Directory path for remote IP to be created and managed outside the project |
[-force]
|
Overwrite existing IP instance; allowed only with -dir option |
[-allow_hidden]
|
Allow hidden cores to be instantiated |
[-vendor]
|
IP Vendor name |
[-library]
|
IP Library name |
[-name]
|
IP Name |
[-version]
|
IP Version |
[-revision]
|
(Optional) IP core revision |
[-quiet]
|
Ignore command errors |
[-verbose]
|
Suspend message limits during command execution |
Categories
Description
This command creates an XCI file for a configurable IP core from the IP catalog, and adds it to the source files of the current project. This creates an IP source object which must be instantiated into the HDL design to create an instance of the IP core in the netlist.
For multiple instances of the same core, simply instantiate the core module into the HDL design as many times as needed. However, to use the same IP core with different customizations, use the create_ip
command to create separate IP source objects.
The create_ip
command is used to import IP cores from the current IP catalog. Use the import_ip
command to read existing XCI and XCO files directly, without having to add IP to a catalog.
This command returns a transcript of the IP generation process, concluding with the file path and name of the imported IP core file.
convert_ip
command lets you to convert legacy IP to native IP supported by Vivado.Arguments
-vlnv
<arg> - (Optional) Specifies the VLNV string for the existing Catalog IP from which the new IP will be created. The VLNV is the Vendor:Library:Name:Version string which identifies the IP in the catalog. The VLNV string maps to the IPDEF property on the IP core.
-vlnv
or all of -vendor
, -library
, -name
, and -version
.
-module_name
<arg> - (Required) Specifies the name for the new IP instance that will be created. The module is created with the <module_name>/<module_name>.xci naming convention.
-dir
<arg> - (Optional) The directory to write the IP core files into. If this option is not specified, the IP files (.xci, .veo...) are written in the hierarchy of the <project_name>.srcs directory.
-force
- (Optional) Overwrite an existing IP instance of the same <module_name>, if one exists in the specified directory. All files associated with the existing IP will be overwritten by files associated with the newly created IP. This option can only be used with the -dir
option.
-vendor
<arg> - (Optional) Specifies the vendor name for the IP's creator.
-library
<arg> - (Optional) Specifies the IP library from which the core should be added.
-name
<arg> - (Optional) Specifies the name of the IP core in the catalog.
-version
<arg> - (Optional) Specifies the version number for the IP core.
-vlnv
or all of -vendor
, -library
, -name
, and -version
.-quiet
- (Optional) Execute the command quietly, returning no messages from the command. The command also returns TCL_OK regardless of any errors encountered during execution.
-verbose
- (Optional) Temporarily override any message limits and return all messages from this command.
set_msg_config
command.Examples
The example below imports the IP core specified by the -vlnv
string, and gives it the specified module name in the current project:
create_ip -vlnv xilinx.com:ip:c_addsub:11.0 -module_name test_addr
The following example, from Vivado, creates an IP block with the specified -vendor
, -library
, -name
, -version
values, and assigns it the specified module name. After the IP is created, attributes of the IP are customized using set_property
commands. Then the instantiation template and the synthesis targets are generated for the IP:
create_ip -name c_addsub -version 11.0 -vendor xilinx.com -library ip \
-module_name c_addsub_v11_0_0
set_property CONFIG.COMPONENT_NAME c_addsub_v11_0_0 \
[get_ips c_addsub_v11_0_0]
set_property CONFIG.A_WIDTH 32 [get_ips c_addsub_v11_0_0]
set_property CONFIG.B_WIDTH 32 [get_ips c_addsub_v11_0_0]
set_property CONFIG.ADD_MODE Add_Subtract [get_ips c_addsub_v11_0_0]
set_property CONFIG.C_IN true [get_ips c_addsub_v11_0_0]
generate_target {instantiation_template synthesis} \
[get_files C:/Data/c_addsub_v11_0_0/c_addsub_v11_0_0.xci \
-of_objects [get_filesets sources_1]]