Known Limitations ================= The busdecoder exporter intentionally focuses on address decode and routing. Some SystemRDL features are ignored, and a few are explicitly disallowed. Address Alignment ----------------- All address offsets and array strides must be aligned to the CPU interface data bus width (in bytes). Misaligned offsets/strides are rejected. Wide Registers -------------- If a register is wider than its ``accesswidth`` (a multi-word register), its ``accesswidth`` must match the CPU interface data width. Multi-word registers with a smaller accesswidth are not supported. Fields Spanning Sub-Words ------------------------- If a field spans multiple sub-words of a wide register: * Software-writable fields must have write buffering enabled * Fields with ``onread`` side-effects must have read buffering enabled These rules are enforced to avoid ambiguous multi-word access behavior. External Boundary References ---------------------------- Property references are not allowed to cross the internal/external boundary of the exported addrmap. References must point to components that are internal to the busdecoder being generated. CPU Interface Reset Location ---------------------------- Only ``cpuif_reset`` signals instantiated at the top-level addrmap (or above) are honored. Nested ``cpuif_reset`` signals are ignored. Unsupported Properties ---------------------- The following SystemRDL properties are explicitly rejected: * ``sharedextbus`` on addrmap/regfile components