Creating and Running a Write Transaction - 2020.2 English

Vivado Design Suite User Guide: Programming and Debugging (UG908)

Document ID
UG908
Release Date
2020-12-07
Version
2020.2 English

Here is an example on how to create a 4-word AXI write burst transaction from address 0:

create_hw_axi_txn write_txn [get_hw_axis hw_axi_1] -type WRITE -address 00000000 \
      -len 4 -data {11111111_22222222_33333333_44444444}

where:

  • write_txn is the user-defined name of the transaction
  • [get_hw_axis hw_axi_1] returns the hw_axi_1 object
  • -address 00000000 is the start address
  • -len 4 sets the AXI burst length to 4 words
  • -data {11111111_22222222_33333333_44444444}- The -data direction is LSB to the left (i.e., address 0) and MSB to the right (i.e., address 3).

The next step is to run the transaction that was just created using the run_hw_axi command. Here is an example on how to do this:

run_hw_axi [get_hw_axi_txns write_txn]
Important: If you reprogram the device, all the existing jtag_axi transactions will be deleted. You may need to recreate these transactions again.

Tip: The -queue optional argument to the run_hw_axi Tcl command allows you to specify 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.