txn_count |
32/STRING |
- <value in decimal>
- Transaction count. Repeat the current
command <N> times, where N = value.
- <value in decimal>KB
- Amount of data to be transferred in KB,
for example 50 KB, 100 KB.
- <value in decimal>MB
- Amount of data to be transferred in MB,
for example 5 MB, 10 MB.
- <value in decimal>GB
- Amount of data to be transferred in GB,
for example 1 GB, 2 GB.
- INF
- Repeat the current command
infinitely.
|
start_delay |
32/STRING |
- <value in decimal>
- Value in number of clocks. Issue
transaction after specified number of clocks
- <value in decimal>MBps
- Bandwidth value for Write transactions,
for example 12500 MB/s.
Note: 1 MB/s = 1,000,000 Bps
(Bytes per second).
|
inter_beat_delay |
32 |
- <value in decimal>
- Value in number of clocks. Adds
specified number of clocks between two Write data beats
in a transaction
|
wdata_pattern |
STRING |
- constant
- random
- walking_0
- walking_1
- hammer
- same_as_src
- same_as_addr
- same_as_addr_xor
- same_as_id
- same_as_burst
- same_as_len
- same_as_size
- same_as_cache
Note: Data pattern details are described
in the Data Patterns section.
|
wdata_pat_value |
512 |
- <value in hex>
- When the wdata_pattern field is set to
constant, this field value is used as constant data
which is sent on all Write data beats (wdata_pattern:
constant).
- <seed_value in hex>
- When wdata_pattern field is selected as
“random”, this field value is used as seed for RNG
(wdata_pattern: random).
|
data_integrity |
STRING |
- enabled
- Data integrity checks will be enabled for the Write transaction. The
Write transaction details are stored in the AXI TG
sparse memory to do comparison later when a Read occurs
to this location.
- disabled
- Data integrity checks will be disabled for the Write transaction, and
details arel not
stored in the AXI TG sparse memory.
|
dest_id |
12 |
- <value in hex>
- The targeted NoC slave destination ID value (12-bit value) can be
given in this field for the transaction.
The dest_id value is sent on the
nmu_wr_usr_dst signal along with AXI Write requests.
|
base_addr |
64 |
- <value in hex>
-
The base_addr can be specified in this field. The incremented address
for the transactions is looped back to the base
address when the high address boundary is
reached.
In case of randomized address, the TG generates the address between
base_addr and high_addr.
|
high_addr |
64 |
- <value in hex>
-
The high address can be specified here. Up to this value the address
is incremented by the TG. When the incremented
address reaches the high address boundary, the next
transaction start address is the base_addr.
In case of a randomized address, TG generates the address between
base_addr and high_addr.
|
addr_incr_by |
64/STRING |
- <value in hex>
- This field value is considered as
“value in hex” when the axi_addr_offset field is set to
a start address offset value. The first transaction
start address (SA) will be picked from the
axi_addr_offset and base_addr fields (SA = base_addr +
axi_addr_offset). From the second transaction onwards
for each AXI transaction, the start address is
incremented by the specified addr_incr_by value.
For example: txn_count=4,
base_addr=0x0_0000, high_addr=0xF_FFFFF,
addr_incr_by=0x41, axi_addr_offset=0x01, axi_len=0,
axi_size=4.
1st transaction:
AWADDR=0x0_0001
2nd
transaction: AWADDR=0x0_0042
3rd transaction: AWADDR=0x0_0083
4th transaction:
AWADDR=0x0_00C4
- <seed_value in hex>
- This field value is considered as seed
for RNG to generate random addresses when the
axi_addr_offset field is set to random address
options.
- auto_incr
- The first transaction start address (SA) is picked from the
axi_addr_offset and base_addr fields (SA = base_addr +
axi_addr_offset). From second transaction onwards for
each AXI transaction issued, the start address is
calculated using the expression described below.
|
addr_incr_by (continued) |
64/STRING |
- INCR/WRAP Burst
-
- auto_incr
- The first transaction start
address (SA) will be picked from the
axi_addr_offset and base_addr fields (SA =
base_addr + axi_addr_offset). From second
transaction onwards for each AXI transaction
issued, the start address is calculated using the
following expression:
start_address (from second transaction onwards) =
previous_start_address + ((2^axi_size) *
(axi_len+1))
For example:
txn_count= 3, base_addr= 0x0000_0000, high_addr=
0xFFFF_FFFF, axi_addr_offset= 0x0000_0000,
axi_size= 6, axi_len= 0, axi_burst= 1(INCR).
The start addresses of all three
transactions are as follows:
1st transaction start address:
0x0000_0000
2nd transaction
start address: 0x0000_0000 + ((2^6)*(0+1)) =
0x0000_0040
3rd transaction
start address: 0x0000_0040 + ((2^6)*(0+1)) =
0x0000_0080
|
addr_incr_by (continued) |
64/STRING |
- FIXED Burst
-
- auto_incr
- The first transaction start address (SA) is picked from the
axi_addr_offset and base_addr fields (SA =
base_addr + axi_addr_offset). From second
transaction onwards for each AXI transaction
issued, the start address is calculated using the
following expression:
start_address (from second transaction onwards) =
previous_start_address + (2^axi_size)
For example, txn_count= 3,
base_addr= 0x0000_0000, high_addr= 0xFFFF_FFFF,
axi_addr_offset= 0x0000_0000, axi_size= 5,
axi_len= 4, axi_burst= 0(FIXED).
The start addresses of all three
transactions are as follows:
1st transaction start address:
0x0000_0000
2nd transaction
start address: 0x0000_0000 + (2^5) =
0x0000_0020
3rd transaction
start address: 0x0000_0020 + (2^5) =
0x0000_0040
|
axi_addr_offset |
64/STRING |
- <value in hex>
- This is the offset value added to base_addr to calculate the start
address of the first transaction. From the second
transaction onwards, the start address is calculated
based on the addr_incr_by field option. If the next
transaction address reaches the high_addr boundary it is
looped back to base_addr.
- random
- Any random address is generated between
base_addr and high_addr. The addr_incr_by field value is
set as seed to RNG.
- random_aligned
- Any random aligned address is generated
between base_addr and high_addr. addr_incr_by field
value is set as seed to RNG.
- random_unaligned
- Any random unaligned address is
generated between base_addr and high_addr.The
addr_incr_by field value is set as seed to RNG.
Note: To generate an address that is
aligned to the transaction size (that is, (len+1) * 2^size), use
the SET_DEFAULT command addr_mask option to set the required LSB
address bits to 0.
|
axi_len |
8/STRING |
- <value in hex>
- Write transactions is sent with the specified AXI length value.
Width: 4 for AXI3,
8 for AXI4.
- all
- Generates all length values in transactions. The first transaction is
sent with an axi_len of 0x0 and then incremented on each
consecutive AXI transaction. When MAX_LEN is reached,
the transaction starts again from an axi_len of 0x0 and
increments until MAX_LEN is reached, and so on.
Note: For AXI3, MAX_LEN = 0xF. For AXI4, MAX_LEN varies depending
on AWSIZE due to the 4k Boundary limit:
- When AWSIZE is 64B, MAX_LEN is
0x3F.
- When AWSIZE is 32B, MAX_LEN is
0x7F.
- When AWSIZE is 16, 8, 4, 2 or 1B,
MAX_LEN is 0xFF.
|
axi_size |
3/STRING |
- <value in hex>
- Write transactions is sent with the specified AXI size value.
- all
- Generates all the size values in transactions. The first AXI
transaction is sent with MAX_SIZE and the size is
decremented with each consecutive transaction. When it
reaches 0x0, transactions start again from MAX_SIZE and
decrements until 0x0 is reached again and so on.
Note: MAX_SIZE = $clog2(AXI Data
Width/8).
|
axi_id |
16/STRING |
- <value in hex>
- Write transactions are sent with the specified AXI ID value.
- auto_incr
- The first Write transaction is sent out with an ID of 0x0 and each
consecutive transaction ID is incremented by 0x1. When
the ID reaches MAX_ID value, it starst again from 0x0
and increments until MAX_ID is reached again, and so
on.
Note: MAX_ID = 2^AXI ID Width - 1
|
axi_burst |
2/STRING |
- <value in hex>
- Supported values are 0x0, 0x1,
0x2.
- <value in string>
- Supported values are FIXED, INCR,
WRAP.
|
axi_lock |
2/STRING |
- <value in hex>
- Supported values are 0x0, 0x1.
- <value in string>
- Supported values are NORMAL,
EXCLUSIVE.
|
axi_cache |
4/STRING |
- <value in hex>
- <value in string>
- Supported values are MOD, NON_MOD.
Note: In the <value in string>
option, MOD denotes that the AXI Write transaction is modifiable
(AWCACHE = 0x2) by the slave/interconnect. NON_MOD denotes that
the AXI Write transaction is non-modifiable (AWCACHE = 0x0) by
the slave/interconnect.
|
axi_prot |
3 |
<value in hex> |
axi_qos |
4 |
<value in hex> |
axi_region |
4 |
<value in hex> |
axi_user (for AWUSER) |
16 |
<value in hex> |
exp_resp |
STRING |
- OKAY
- AXI Write responses should come as
expected as OKAY, otherwise the TG will error out.
- EXOKAY
- AXI Write responses should come as
expected as EXOKAY, otherwise the TG will error
out.
- SLVERR
- AXI Write responses should come as
expected as SLVERR, otherwise the TG will error
out.
- DECERR
- AXI Write responses should come as
expected as DECERR, otherwise the TG will error
out.
- <Blank/Empty_Field>
- Leaving the exp_resp field
Empty/Blank/Unfilled. In this case, TG does not do any
expected response check. Instead, it treats the AXI
responses in a standard manner; that is, if any
responses are coming as SLVERR or DECERR, the TG will
error out.
|