create_peripheral - 2024.1 English

Vivado Design Suite Tcl Command Reference Guide (UG835)

Document ID
Release Date
2024.1 English

Create a peripheral with a VLNV.


create_peripheral [‑dir <arg>] [‑quiet] [‑verbose] <vendor> <library>
    <name> <version>


Name Description
[-dir] Directory path for remote Peripheral to be created and managed outside the project
[-quiet] Ignore command errors
[-verbose] Suspend message limits during command execution
<vendor> Vendor, for example
<library> Library, for example ip
<name> Name, for example myip
<version> Version, for example 1.4


Create an AXI peripheral to add to the IP repository with the specified VLNV attribute.

The AXI peripheral that is created is just a framework until interfaces have been added to the peripheral using the add_peripheral_interface command, and the peripheral has been generated using the generate_peripheral command.


-dir <arg> - (Optional) Specify an output directory to store the AXI peripheral data files. By default, the peripheral is created and added into the source directory structure, . ./project_name.srcs/sources_1/ip, of the current project.

Note: If the AXI peripheral is stored outside of the current project, the specified directory should be added to the IP_REPO_PATH property of the current fileset using the set_property command to make the peripheral available through the IP catalog:
set_property IP_REPO_PATHS {C:/Data/axi_peripheral/ourIP_2.1} [current_fileset]
update_ip_catalog -rebuild
-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.
Note: Any errors encountered on the command-line, while launching the command, will be returned. Only errors occurring inside the command will be trapped.
-verbose - (Optional) Temporarily override any message limits and return all messages from this command.
Note: Message limits can be defined with the set_msg_config command.

<vendor> - Defines the vendor portion of the VLNV attribute that defines the location of the AXI peripheral in the IP catalog. The VLNV is the <Vendor:Library:Name:Version> string which identifies the IP in the catalog.

<library> - The library portion of the VLNV attribute.

<name> - The name portion of the VLNV attribute.

<version> - The version portion of the VLNV attribute.


The following example creates a new AXI peripheral, with the VLNV attribute as specified:

create_peripheral {} {user} {testAXI1} {1.3}
   -dir {C:/Data/new_periph}

This example creates a new AXI peripheral, with the VLNV attribute as specified, and captures the peripheral object in a Tcl variable for later processing, then adds AXI slave interfaces to the peripheral:

set perifObj [ create_peripheral {} {user} {testAXI1} \
   {1.3} -dir {C:/Data/new_periph} ]
add_peripheral_interface {S0_AXI} -interface_mode {slave} \
   -axi_type {lite} $perifObj
add_peripheral_interface {S1_AXI} -interface_mode {slave} \
   -axi_type {lite} $perifObj
add_peripheral_interface {S2_AXI} -interface_mode {slave} \
   -axi_type {lite} $perifObj