SystemRDL Feature Matrix#
This page surveys SystemRDL features against the planned Python API described
in docs/IDEAL_API_SKETCH.md. The sketch is the source of truth: it is
aspirational, and code is catching up to it. Status values mean:
implemented— shipped today and behaves as the sketch describes.partial— exists but does not yet match the sketch’s surface or semantics.planned— defined by the sketch; the exporter does not yet emit it.
Most runtime-surface rows are now implemented; the holdouts cluster around
SystemRDL array instantiation, signal nodes, and a handful of metadata
attributes (swacc / swmod / swwe / swwel). Rows are organized by
SystemRDL category and reference the conceptual docs (in docs/concepts/)
where applicable.
Structural Components#
RDL feature |
API surface |
Status |
Notes |
|---|---|---|---|
|
|
implemented |
Hierarchy works and the uniform |
|
|
implemented |
Grouping and array indexing both ship via the |
|
|
implemented |
Typed |
|
|
implemented |
Bit-slice access ( |
|
|
implemented |
The NumPy-aware |
|
|
planned |
Signals appear in the tree as metadata-only nodes per §2 of the sketch. |
|
none |
planned |
Out of scope for the runtime API; ignored during export. |
Software Access (sw)#
RDL feature |
API surface |
Status |
Notes |
|---|---|---|---|
|
|
implemented |
Reads/writes and the typed |
|
|
implemented |
Writes to read-only fields raise |
|
|
implemented |
Reads from write-only fields raise |
|
hidden from autocomplete, raises on access |
implemented |
Both reads and writes raise |
Hardware Access (hw)#
RDL feature |
API surface |
Status |
Notes |
|---|---|---|---|
|
|
implemented |
|
Reset Values#
RDL feature |
API surface |
Status |
Notes |
|---|---|---|---|
|
|
implemented |
|
Encoding (encode = MyEnum)#
RDL feature |
API surface |
Status |
Notes |
|---|---|---|---|
|
Generated |
planned |
Today only the |
Arrays#
RDL feature |
API surface |
Status |
Notes |
|---|---|---|---|
Register array ( |
|
planned |
See Arrays. Today array instantiation is not handled. |
Regfile array ( |
|
planned |
Indexing semantics per §7.1 of the sketch. |
Multi-dim array ( |
|
planned |
Tuple indexing per §7.2. |
Field array ( |
|
planned |
Uncommon but supported per §7.4. |
Address stride |
resolved via |
planned |
The exporter will respect RDL |
Aliases (alias)#
RDL feature |
API surface |
Status |
Notes |
|---|---|---|---|
|
|
implemented |
Alias relationship ( |
Interrupts (intr)#
RDL feature |
API surface |
Status |
Notes |
|---|---|---|---|
|
|
implemented |
|
Per-source ops |
|
implemented |
|
Group ops |
|
implemented |
|
Top-level tree |
|
implemented |
|
Detection / overrides |
|
implemented |
The |
|
mapped onto |
partial |
|
Signals (signal)#
RDL feature |
API surface |
Status |
Notes |
|---|---|---|---|
|
|
planned |
Signals expose location, name, desc and any UDPs; no read/write. |
Component port declarations |
none |
planned |
Out of scope for the register-access surface. |
Counters#
RDL feature |
API surface |
Status |
Notes |
|---|---|---|---|
|
|
implemented |
The |
|
|
implemented |
|
Single-pulse#
RDL feature |
API surface |
Status |
Notes |
|---|---|---|---|
|
|
implemented |
|
Sticky / Stickybit#
RDL feature |
API surface |
Status |
Notes |
|---|---|---|---|
|
|
implemented |
|
HW-side effects (hwclr / hwset)#
RDL feature |
API surface |
Status |
Notes |
|---|---|---|---|
|
|
implemented |
|
Read-side effects (onread)#
RDL feature |
API surface |
Status |
Notes |
|---|---|---|---|
|
|
implemented |
|
|
|
implemented |
|
|
|
implemented |
|
Write-side effects (onwrite)#
RDL feature |
API surface |
Status |
Notes |
|---|---|---|---|
|
|
implemented |
|
|
|
implemented |
|
|
|
implemented |
|
|
|
implemented |
|
|
|
implemented |
|
|
|
implemented |
|
|
|
implemented |
|
Parity Check#
RDL feature |
API surface |
Status |
Notes |
|---|---|---|---|
|
|
implemented |
|
Precedence#
RDL feature |
API surface |
Status |
Notes |
|---|---|---|---|
|
|
implemented |
|
SW notification (swwe / swwel / swacc / swmod)#
RDL feature |
API surface |
Status |
Notes |
|---|---|---|---|
|
metadata only via |
planned |
Surface as access-mode metadata. |
|
|
planned |
Notification metadata. |
|
|
planned |
Notification metadata. |
Lock#
RDL feature |
API surface |
Status |
Notes |
|---|---|---|---|
|
|
implemented |
The |
Bit ordering & widths#
RDL feature |
API surface |
Status |
Notes |
|---|---|---|---|
|
hidden — the user always sees little-endian ints |
planned |
Per §22 decision 5: endianness/access-width are hidden, but bursts and traces preserve them. |
|
|
implemented |
|
|
hidden by default; available via |
implemented |
|
Memory regions#
RDL feature |
API surface |
Status |
Notes |
|---|---|---|---|
|
|
implemented |
|
|
|
implemented |
|
|
|
implemented |
Slicing, |
|
access-mode enforcement via |
planned |
Same model as register access modes; mem-specific |
User-Defined Properties (UDPs)#
RDL feature |
API surface |
Status |
Notes |
|---|---|---|---|
|
generated |
implemented |
Today’s mechanism. Planned to subsume into encode-driven flags per §8.2. |
|
generated |
implemented |
Today’s mechanism. Planned to subsume into |
Arbitrary UDPs |
|
partial |
|
Generated API surface#
These are the planned runtime surfaces, indexed for cross-reference.
Runtime feature |
API surface |
Status |
Notes |
|---|---|---|---|
Typed values |
|
implemented |
Ships via |
Format helpers |
|
implemented |
|
Multi-field RMW |
|
implemented |
|
Skip-readback writes |
|
implemented |
|
Bit-slice access |
|
implemented |
|
Discovery |
|
implemented |
|
Metadata namespace |
|
implemented |
The uniform |
Rich repr |
|
implemented |
|
Wait / poll |
|
implemented |
|
Snapshots |
|
implemented |
|
NumPy interop |
|
partial |
|
Observation hooks |
|
implemented |
|
Master backends |
|
partial |
|
Per-region routing |
|
implemented |
|
Reified transactions |
|
implemented |
|
Barriers / fences |
|
implemented |
|
Caching policy |
|
implemented |
|
Retry / recovery |
|
implemented |
|
Tracing & replay |
|
implemented |
|
Concurrency |
|
partial |
|
Hot reload |
|
implemented |
|
Generated stubs |
exhaustive |
partial |
Stub generation exists; exhaustive typing per §17 is planned. |
Schema export |
|
implemented |
|
Errors#
Situation |
Exception |
Status |
Notes |
|---|---|---|---|
Write to read-only / read from write-only |
|
implemented |
|
Out-of-range field value |
|
implemented |
|
Unknown field name in |
|
partial |
|
Side-effecting read inside |
|
implemented |
|
|
|
implemented |
|
Bus error |
|
implemented |
|
Address routing miss |
|
implemented |
|