Package axi_pkg
Contains all necessary type definitions, constants, and generally useful functions.
Parameters
BurstWidth: int unsigned
AXI Transaction Burst Width.
RespWidth: int unsigned
AXI Transaction Response Width.
CacheWidth: int unsigned
AXI Transaction Cacheability Width.
ProtWidth: int unsigned
AXI Transaction Protection Width.
QosWidth: int unsigned
AXI Transaction Quality of Service Width.
RegionWidth: int unsigned
AXI Transaction Region Width.
LenWidth: int unsigned
AXI Transaction Length Width.
SizeWidth: int unsigned
AXI Transaction Size Width.
LockWidth: int unsigned
AXI Lock Width.
AtopWidth: int unsigned
AXI5 Atomic Operation Width.
NsaidWidth: int unsigned
AXI5 Non-Secure Address Identifier.
BURST_FIXED:
In a fixed burst:
-
The address is the same for every transfer in the burst.
-
The byte lanes that are valid are constant for all beats in the burst. However, within
those byte lanes, the actual bytes that have
wstrb
asserted can differ for each beat inthe burst.
This burst type is used for repeated accesses to the same location such as when loading or
emptying a FIFO.
BURST_INCR:
In an incrementing burst, the address for each transfer in the burst is an increment of the
address for the previous transfer. The increment value depends on the size of the transfer.
For example, the address for each transfer in a burst with a size of 4 bytes is the previous
address plus four.
This burst type is used for accesses to normal sequential memory.
BURST_WRAP:
A wrapping burst is similar to an incrementing burst, except that the address wraps around to
a lower address if an upper address limit is reached.
The following restrictions apply to wrapping bursts:
-
The start address must be aligned to the size of each transfer.
-
The length of the burst must be 2, 4, 8, or 16 transfers.
RESP_OKAY:
Normal access success. Indicates that a normal access has been successful. Can also indicate
that an exclusive access has failed.
RESP_EXOKAY:
Exclusive access okay. Indicates that either the read or write portion of an exclusive access
has been successful.
RESP_SLVERR:
Slave error. Used when the access has reached the slave successfully, but the slave wishes to
return an error condition to the originating master.
RESP_DECERR:
Decode error. Generated, typically by an interconnect component, to indicate that there is no
slave at the transaction address.
CACHE_BUFFERABLE:
When this bit is asserted, the interconnect, or any component, can delay the transaction
reaching its final destination for any number of cycles.
CACHE_MODIFIABLE:
When HIGH, Modifiable indicates that the characteristics of the transaction can be modified.
When Modifiable is LOW, the transaction is Non-modifiable.
CACHE_RD_ALLOC:
When this bit is asserted, read allocation of the transaction is recommended but is not
mandatory.
CACHE_WR_ALLOC:
When this bit is asserted, write allocation of the transaction is recommended but is not
mandatory.
ATOP_ATOMICSWAP:
-
Sends a single data value with an address.
-
The target swaps the value at the addressed location with the data value that is supplied in
the transaction.
-
The original data value at the addressed location is returned.
-
Outbound data size is 1, 2, 4, or 8 bytes.
-
Inbound data size is the same as the outbound data size.
ATOP_ATOMICCMP:
-
Sends two data values, the compare value and the swap value, to the addressed location.
The compare and swap values are of equal size.
-
The data value at the addressed location is checked against the compare value:
-
If the values match, the swap value is written to the addressed location.
-
If the values do not match, the swap value is not written to the addressed location.
-
-
The original data value at the addressed location is returned.
-
Outbound data size is 2, 4, 8, 16, or 32 bytes.
-
Inbound data size is half of the outbound data size because the outbound data contains both
compare and swap values, whereas the inbound data has only the original data value.
ATOP_NONE:
Perform no atomic operation.
ATOP_ATOMICSTORE:
-
Sends a single data value with an address and the atomic operation to be performed.
-
The target performs the operation using the sent data and value at the addressed location as
operands.
-
The result is stored in the address location.
-
A single response is given without data.
-
Outbound data size is 1, 2, 4, or 8 bytes.
ATOP_ATOMICLOAD:
Sends a single data value with an address and the atomic operation to be performed.
-
The original data value at the addressed location is returned.
-
The target performs the operation using the sent data and value at the addressed location as
operands.
-
The result is stored in the address location.
-
Outbound data size is 1, 2, 4, or 8 bytes.
-
Inbound data size is the same as the outbound data size.
ATOP_LITTLE_END:
For AtomicStore and AtomicLoad transactions AWATOP[3]
indicates the endianness that is
required for the atomic operation. The value of AWATOP[3]
applies to arithmetic operations
only and is ignored for bitwise logical operations.
When deasserted, this bit indicates that the operation is little-endian.
ATOP_BIG_END:
When asserted, this bit indicates that the operation is big-endian.
ATOP_ADD:
The value in memory is added to the sent data and the result stored in memory.
ATOP_CLR:
Every set bit in the sent data clears the corresponding bit of the data in memory.
ATOP_EOR:
Bitwise exclusive OR of the sent data and value in memory.
ATOP_SET:
Every set bit in the sent data sets the corresponding bit of the data in memory.
ATOP_SMAX:
The value stored in memory is the maximum of the existing value and sent data. This operation
assumes signed data.
ATOP_SMIN:
The value stored in memory is the minimum of the existing value and sent data. This operation
assumes signed data.
ATOP_UMAX:
The value stored in memory is the maximum of the existing value and sent data. This operation
assumes unsigned data.
ATOP_UMIN:
The value stored in memory is the minimum of the existing value and sent data. This operation
assumes unsigned data.
ATOP_R_RESP:
DemuxAw: logic [9:0]
Slice on Demux AW channel.
DemuxW: logic [9:0]
Slice on Demux W channel.
DemuxB: logic [9:0]
Slice on Demux B channel.
DemuxAr: logic [9:0]
Slice on Demux AR channel.
DemuxR: logic [9:0]
Slice on Demux R channel.
MuxAw: logic [9:0]
Slice on Mux AW channel.
MuxW: logic [9:0]
Slice on Mux W channel.
MuxB: logic [9:0]
Slice on Mux B channel.
MuxAr: logic [9:0]
Slice on Mux AR channel.
MuxR: logic [9:0]
Slice on Mux R channel.
Types
burst_t | AXI Transaction Burst Width. |
resp_t | AXI Transaction Response Type. |
cache_t | AXI Transaction Cacheability Type. |
prot_t | AXI Transaction Protection Type. |
qos_t | AXI Transaction Quality of Service Type. |
region_t | AXI Transaction Region Type. |
len_t | AXI Transaction Length Type. |
size_t | AXI Transaction Size Type. |
atop_t | AXI5 Atomic Operation Type. |
nsaid_t | AXI5 Non-Secure Address Identifier. |
largest_addr_t | An overly long address type. |
mem_type_t | Memory Type. |
xbar_latency_e | Latency configuration for |
xbar_cfg_t | Configuration for |
xbar_rule_64_t | Commonly used rule types for |
xbar_rule_32_t | Commonly used rule types for |