add_peripheral_interface - 2024.1 English

Vivado Design Suite Tcl Command Reference Guide (UG835)

Document ID
Release Date
2024.1 English

Add a new bus interface to a peripheral.


add_peripheral_interface ‑interface_mode <arg> ‑axi_type <arg> [‑quiet]
    [‑verbose] <name> <peripheral>


Name Description
-interface_mode Mode of an interface, supported option - master,slave.
-axi_type Type of a axi interface, supported option - lite,full,stream.
[-quiet] Ignore command errors
[-verbose] Suspend message limits during command execution
<name> Name to initialize the newly added element e.g S1_AXI, M1_AXI
<peripheral> Peripheral object


Add an AXI bus interface to a peripheral created with the create_peripheral command.


-interface_mode [ master | slave ] - (Optional) Specify the interface as a slave or master interface. The master interface generates out-bound AXI transactions and thus is the source of an AXI transfer. A slave interface receives in-bound AXI transactions and is the target of an AXI transfer.

-axi_type <arg> - (Optional) Type of AXI interface to add. The supported values are: full, lite, and stream.

  • The full AXI4 interface is for memory mapped interfaces allowing bursts of up to 256 data transfer cycles with just a single address phase.
  • The AXI4-Lite protocol is a subset of the AXI4 protocol intended for communication with simpler, smaller control register-style interfaces in components.
  • The AXI4-Stream protocol is designed for unidirectional data transfers from master to slave with greatly reduced signal routing.
    Note: For more information on AXI interfaces, refer to the AXI Reference Guide (UG761).
-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.

<name> - (Required) User-specified name of the interface to add.

<peripheral> - (Required) The peripheral object to add the interface to. The peripheral is created with the create_peripheral command, which should be captured in a Tcl variable to facilitate further processing by this and other related commands. See the example below.


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