run_hw_axi - 2023.2 English

Vivado Design Suite Tcl Command Reference Guide (UG835)

Document ID
Release Date
2023.2 English

Run hardware AXI read/write transaction(s)and update transaction status in hw_axi object..


run_hw_axi [‑queue] [‑quiet] [‑verbose] <hw_axi_txns>...


Name Description
[-queue] Queue Transaction. Default: 0
[-quiet] Ignore command errors
[-verbose] Suspend message limits during command execution
<hw_axi_txns> hardware AXI Transaction object to execute on the AXI bus.




Run the AXI transactions defined on the specified JTAG to AXI Master core.

AXI transactions are created with the create_hw_axi_txns command.

Run the specified hardware AXI read/write transactions on the AXI bus, and update the transaction status on the associated hw_axi object.


-queue - (Optional) Run the specified hw_axi transactions in queue mode. Queued operation allows up to 16 read and 16 write transactions to be queued in the JTAG to AXI Master FIFO and issued back-to-back for low latency and higher performance between the transactions. Non-queued transactions are simply run as submitted.

-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.

<hw_axi_txns> - (Required) Specify the hardware AXI Transaction objects to run on the AXI bus. The objects can be returned by the get_hw_axi_txns command.


The following example runs the AXI transactions currently defined on the specified hw_axi object:

run_hw_axi [get_hw_axi_txns [get_hw_axis]]

This example runs four AXI transactions in queued mode:

run_hw_axi -queue  [get_hw_axi_txns txn_1] [get_hw_axi_txns txn_2] \
[get_hw_axi_txns txn_3] [get_hw_axi_txns txn_4]

This example creates AXI read and write transactions, runs the hw_axi, and reports on the results:

create_hw_axi_txn wr_txn [lindex [get_hw_axis] 0] -address 80000000 \
-data {11112222 33334444 55556666 77778888} -len 4 -type write
create_hw_axi_txn rd_txn [lindex [get_hw_axis] 0] -address 80000000 \
-len 4 -type read
run_hw_axi [get_hw_axi_txns wr_txn]
set wr_report [report_hw_axi_txn wr_txn -w 32]
puts $wr_report
run_hw_axi [get_hw_axi_txns rd_txn]
set rd_report [report_hw_axi_txn rd_txn -w 32]
puts $rd_report