run_hw_axi - 2024.1 English

Vivado Design Suite Tcl Command Reference Guide (UG835)

Document ID
UG835
Release Date
2024-05-30
Version
2024.1 English

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

Syntax

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

Usage

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.

Categories

Hardware

Description

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.

Arguments

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

Example

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
close_hw_target;
disconnect_hw_server;