Constant |
- The user-defined data beat value is constantly
sent on all Write data beats.
- In the case of
user_defined_pattern_test , you can select the
constant data pattern by setting the wdata_pattern CSV field to constant and setting
the data value of the wdata_pat_value field.
- In the case of
pre_defined_pattern_test , you can select the
constant data pattern by setting the Write Data Pattern
Type GUI option to CONSTANT_DATA and setting the data
value on the Write Data
Pattern Value GUI option.
- For example, if Write Data Pattern
Value = 0xA5A6_A7A8_B5B6_B7B8,
AXI Data Width = 64, and assuming
it is full transfer, all the values of the given instruction
will be sent as 0xA5A6_A7A8_B5B6_B7B8.
|
Random |
- The random data is sent on each Write data beat.
The default seed value of 0 is used to generate random
data.
- In the case of
user_defined_pattern_test , you can select the
random data pattern by setting the wdata_pattern CSV field to random and setting the
seed value on the wdata_pat_value field.
- In the case of
pre_defined_pattern_test , you can select the
random data pattern by setting the Write Data Pattern Type GUI
option to RANDOM_DATA . The
default seed value of 0 is used to generate random data.
|
WALKING_0 |
- Any one bit on the data beat has a value of 0
and the rest have a value of 1. The value 0 walks through (left
in a circular fashion shifted by 1) bitwise in each beat. The
LSB of the first data beat on the first transaction has a value
of 0. From the second beat onwards, the previous data beat is
shifted left in a circular fashion.
- You can select the walking_0 data pattern by
setting the
wdata_pattern CSV
field to walking_0 in the case
of user_defined_pattern_test
and by setting the Write
Data Pattern Type GUI option to WALKING_0_DATA in the case of
pre_defined_pattern_test.
- For example, if
axi_len = 8 and axi_size = 0, the walking_0 data is sent as follows (shown below the
data for the valid byte lane):
- Beat0 = 8‘b1111_1110
- Beat1 = 8‘b1111_1101
- Beat2 = 8‘b1111_1011
- Beat3 = 8‘b1111_0111
- Beat4 = 8‘b1110_1111
- Beat5 = 8‘b1101_1111
- Beat6 = 8‘b1011_1111
- Beat7 = 8‘b0111_1111
- Beat8 = 8‘b1111_1110
|
WALKING_1 |
- Any one bit on the data beat has a value of 1
and the rest have a value of 0. The value 0 walks through (left
in a circular fashion shifted by 1) bitwise in each beat. The
LSB of the first data beat on the first transaction has a value
of 1. From the second beat onwards, the previous data beat is
shifted left in a circular fashion.
- You can select the walking_1 data pattern by
setting the wdata_pattern CSV field to
walking_1 in the case of user_defined_pattern_test and by setting the
Write Data Pattern
Type GUI option to WALKING_1_DATA in the case of
pre_defined_pattern_test .
- For example, if
axi_len = 8 and axi_size = 0, the walking_1 data is sent as follows (shown below the
data for the valid bytelane):
- Beat0 = 8‘b0000_0001
- Beat1 = 8‘b0000_0010
- Beat2 = 8‘b0000_0100
- Beat3 = 8‘b0000_1000
- Beat4 = 8‘b0001_0000
- Beat5 = 8‘b0010_0000
- Beat6 = 8‘b0100_0000
- Beat7 = 8‘b1000_0000
- Beat8 = 8‘b0000_0001
|
Hammer |
- The hammer data has a long number of tail bits
(MSBs) with a value of 0 or 1 and a short number of header bits
(LSBs) with an inverted bit value in a data beat. The value of
the tail bits (width of ¾ of
axi_size_in_bits ) and header bits (width of ¼ of
axi_size_in_bits ) is
generated based on the corresponding AXI beat address. If the
resulting value of beat_start_address divided by axi_size_in_bytes is
even, the header bits are 1 and the tail bits are 0. If the
resulting value is odd, the header bits are 0 and the tail bits
are 1.
- You can select the hammer data pattern by
setting the
wdata_pattern CSV
field to hammer in the case of user_defined_pattern_test and by setting
Write Data Pattern
Type GUI option to HAMMER_DATA in the case of pre_defined_pattern_test .
|
Hammer (continued) |
For example, if AXI Data Width = 64, axi_addr = 0x0000_0000_A11A, axi_burst = INCR, axi_len = 3, and axi_size = 3, data beats are generated as follows:
-
header_width =
axi_size_in_bits /4 = 64/4
= 16
-
tail_width =
(axi_size_in_bits *3)/4 =
(64*3)/4 = 48
- Beat0 calculation:
Aligned(beat_start_address )/axi_size_in_bytes = 0x0000_0000_A118/8 =
0x1423(odd value)
So, header bits are
16{{1’b0}} and tail bits are 48{{1’b1}}.
Beat0 = 0xFFFF_FFFF_FFFF_0000
- Beat1 calculation:
Aligned(beat_start_address )/axi_size_in_bytes = 0x0000_0000_A120/8 =
0x1424(even value)
So, header bits are
16{{1’b1}} and tail bits are 48{{1’b0}}.
Beat1 = 0x0000_0000_0000_FFFF
- Beat2 calculation:
Aligned(beat_start_address )/axi_size_in_bytes = 0x0000_0000_A128/8 =
0x1425(odd value)
So, header bits are
16{{1’b0}} and tail bits are 48{{1’b1}}.
Beat2 = 0xFFFF_FFFF_FFFF_0000
- Beat3 calculation:
aligned(beat_start_address )/axi_size_in_bytes = 0x0000_0000_1130/8 =
0x1426(even value)
So, header bits are
16{{1’b1}} and tail bits are 48{{1’b0}}.
Beat3 = 0x0000_0000_0000_FFFF
|
SAME_AS_SRC |
- The TG source ID value is sent as data on all
Write data beats.
- You can select the
same_as_src data pattern by setting the wdata_pattern CSV field to same_as_src in the case of user_defined_pattern_test and by
setting the Write Data
Pattern Type GUI option to SRC_ID_AS_DATA in the case of
pre_defined_pattern_test .
|
SAME_AS_ADDR |
- The corresponding AXI beat byte address (LSB 8
bits) is sent as data in the bytes of the Write beat.
- You can select the
same_as_addr data pattern by setting the wdata_pattern CSV field to same_as_addr in the case of
user_defined_pattern_test
and by setting the Write
Data Pattern Type GUI option to ADDR_AS_DATA in the case of
pre_defined_pattern_test .
- For example, if AXI Data Width = 64,
axi_addr =
0x0200_0000_11A0, axi_burst =
INCR, axi_len = 3, and axi_size = 3, data beats are
generated as follows:
- Byte_Lane0 address on Beat0=
0x0200_0000_11A0 --> LSB 8 bits are A0 which are sent
as Write data on byte_lane0 of beat0
- Byte_Lane1 address on Beat0=
0x0200_0000_11A1 --> LSB 8 bits are A1 which are sent
as Write data on byte_lane1 of beat0
- Beat0 = 0xA7A6_A5A4_A3A2_A1A0
- Beat1 = 0xAFAE_ADAC_ABAA_A9A8
- Beat2 = 0xB7B6_B5B4_B3B2_B1B0
- Beat3 = 0xBFBE_BDBC_BBBA_B9B8
|
SAME_AS_ADDR_XOR |
- The corresponding AXI beat byte address is
bytewise folded, XORed, and sent as data in the bytes of the
Write beat.
- You can select the
same_as_addr_xor data pattern by setting the
wdata_pattern CSV field to
same_as_addr_xor in the
case of user_defined_pattern_test and by setting the
Write Data Pattern
Type GUI option to ADDR_XOR_AS_DATA in the case of
pre_defined_pattern_test
.
- For example, if
AXI
Data Width = 64, axi_addr = 0x0200_0000_11A0, axi_burst = INCR, axi_len = 3, and axi_size =3, data beats are
generated as follows:
- Byte_Lane0 address on Beat0=
0x0200_0000_11A0 --> 0x02^0x00^0x00^0x00^0x11^0xA0=
0x B3. It will be sent as Write data on byte_lane0 of
beat0.
- Byte_Lane1 address on Beat0=
0x0200_0000_11A1 --> 0x02^0x00^0x00^0x00^0x11^0xA1=
0x B2. It will be sent as Write data on byte_lane1 of
beat0.
- Beat0 = 0xB4B5_B6B7_B0B1_B2B3
- Beat1 = 0xBCBD_BEBF_B8B9_BABB
- Beat2 = 0xA4A5_A6A7_A0A1_A2A3
- Beat3 = 0xACAD_AEAF_A8A9_AAAB
|
SAME_AS_ID |
- The corresponding AXI transaction ID value
(
AWID ) is sent as data on
all Write data beats.
- You can select the
same_as_id data pattern by setting the wdata_pattern CSV field to same_as_id in the case of user_defined_pattern_test and by
setting the Write Data
Pattern Type GUI option to AXI_ID_AS_DATA in the case of
pre_defined_pattern_test .
|
SAME_AS_BURST |
- The corresponding AXI transaction burst value
(
AWBURST ) is sent as data
on all Write data beats.
- You can select the
same_as_burst data pattern by setting the wdata_pattern CSV field to same_as_burst in the case of
user_defined_pattern_test
and by setting the Write
Data Pattern Type GUI option to AXI_BURST_AS_DATA in the case of
pre_defined_pattern_test .
|
SAME_AS_LEN |
- The corresponding AXI transaction length value
(
AWLEN ) is sent as data on
all Write data beats.
- You can select the
same_as_len data pattern by setting the wdata_pattern CSV field to same_as_len in the case of user_defined_pattern_test and by
setting the Write Data
Pattern Type GUI option to AXI_LEN_AS_DATA in the case of
pre_defined_pattern_test .
|
SAME_AS_SIZE |
- The corresponding AXI transfer size value
(
AWSIZE ) is sent as data
on all Write data beats.
- You can select the
same_as_size data pattern by setting the wdata_pattern CSV field to same_as_size in the case of
user_defined_pattern_test
and by setting the Write
Data Pattern Type GUI option to AXI_SIZE_AS_DATA in the case of
pre_defined_pattern_test .
|
SAME_AS_CACHE |
- The corresponding AXI transaction cache value
(
AWCACHE ) is sent as data
on all Write data beats.
- You can select the
same_as_cache data pattern by setting the wdata_pattern CSV field to same_as_cache in the case of
user_defined_pattern_test
and by setting the Write
Data Pattern Type GUI option to AXI_CACHE_AS_DATA in the case of
pre_defined_pattern_test .
|