AXI4 Dialect
This dialect provides operations and types to describe AXI4 connections and networks.
Rationale ¶
Designing AXI networks can be high-effort and fraught with the risk of creating networks that allow for invalid requests. This dialect aims to provide a high-level representation of AXI networks that uses types and verifiers to catch cases where an invalid or non-compliant network has been specified.
This dialect is designed to target three primary use-cases:
- Using the AXI dialect (or more practically some front-end that compiles to it) as a high-level description language; Once you have RTL specifications of your endpoints, you can use the dialect or front-end to describe your desired network and lower to RTL to generate an implementation.
- Using the AXI dialect to abstractly model an architecture; the dialect is designed to allow a network to be specified without concrete RTL sources. This allows the dialect to be used to specify a network early in the design process and validate that it meets sanity checks and validation criteria. A later lowering could also use such a description to generate an interconnect-only RTL implementation with top-level ports corresponding to the abstract ports given in the model.
- Extracting existing full RTL models to the AXI dialect; from an RTL system design with a sufficiently identifiable structure for AXI interfaces, it would theoretically be possible to produce a higher-level description raised to the AXI dialect. This allows users with existing RTL to benefit from the static analysis provided by the dialect, along with other tooling as it develops.
Attributes ¶
BurstSpecAttr ¶
Describes the burst capabilities of an endpoint
Syntax:
#axi4.burst_spec<
`fixed` | `incr` | `wrap`, # kind
uint32_t # len
>
Consists of a burst kind and a maximum burst length in beats, e.g.
#axi4.burst_spec<fixed, len = 4> or #axi4.burst_spec<incr, len = 256>.
AXI4 permits 1-16 beats for fixed, 1-256 for incr, and only 2, 4, 8, or
16 for wrap.
Parameters: ¶
| Parameter | C++ type | Description |
|---|---|---|
| kind | ::circt::axi4::BurstKind | an enum of type BurstKind |
| len | uint32_t |
Enums ¶
BurstKind ¶
AXI4 burst kind
Cases: ¶
| Symbol | Value | String |
|---|---|---|
| Fixed | 0 | fixed |
| Incr | 1 | incr |
| Wrap | 2 | wrap |