AXI3 Interface Classes¶
The four high-level AXI3 interface classes. Each composes GAXI channel components into a read or write path, and is implemented as a standalone protocol family — not a subclass of AXI4 — so the AXI3 deltas are enforced.
Classes¶
AXI3MasterRead¶
Drives AR requests and receives R responses.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
dut |
SimHandleBase |
Device under test | (required) |
clock |
SimHandleBase |
Clock signal | (required) |
prefix |
str |
Signal prefix (e.g. "m_axi_") |
"" |
log |
logging.Logger |
Logger instance | None |
ifc_name |
str |
Debug name suffix | "" |
data_width |
int |
Data bus width | 32 |
id_width |
int |
ID width | 8 |
addr_width |
int |
Address width | 32 |
user_width |
int |
User signal width | 1 |
multi_sig |
bool |
Individual signal mode | True |
timeout_cycles |
int |
R response timeout | 5000 |
Core Methods:
async read_transaction(address, burst_len=1, **transaction_kwargs) -> List[int]async single_read(address, **kwargs) -> int
burst_len must be 1-16. Accepted transaction_kwargs include id, size, burst_type, lock, cache, prot, and user.
AXI3MasterWrite¶
Drives AW and W requests and receives B responses. The master sets WID = AWID on every beat and does not interleave write data.
Core Methods:
async write_transaction(address, data, burst_len=None, **transaction_kwargs) -> Dict[str, Any]async single_write(address, data, **kwargs) -> Dict[str, Any]
data may be an int or List[int]. burst_len must be 1-16.
AXI3SlaveRead¶
Receives AR requests and generates R responses. Supports in-order and out-of-order modes via enable_ooo.
AXI3SlaveWrite¶
Receives AW and W requests and generates B responses. W beats are demuxed by WID, so interleaved write data is accepted.