Known Issues & Limitations
Not all SystemRDL features are supported by this exporter. For a listing of supported properties, see the appropriate property listing page in the following sections.
Alias Registers
Registers instantiated using the alias
keyword are not supported yet.
Unaligned Registers
All address offsets & strides shall be a multiple of the cpuif bus width used. Specifically:
Bus width is inferred by the maximum accesswidth used in the regblock.
Each component’s address and array stride shall be aligned to the bus width.
Uniform accesswidth
All registers within a register block shall use the same accesswidth.
One exception is that registers with regwidth that is narrower than the cpuif bus width are permitted, provided that their regwidth is equal to their accesswidth.
For example:
// (Largest accesswidth used is 32, therefore the CPUIF bus width is 32)
reg {
regwidth = 32;
accesswidth = 32;
} reg_a @ 0x00; // OK. Regular 32-bit register
reg {
regwidth = 64;
accesswidth = 32;
} reg_b @ 0x08; // OK. "Wide" register of 64-bits, but is accessed using 32-bit subwords
reg {
regwidth = 8;
accesswidth = 8;
} reg_c @ 0x10; // OK. Is aligned to the cpuif bus width
reg {
regwidth = 32;
accesswidth = 8;
} bad_reg @ 0x14; // NOT OK. accesswidth conflicts with cpuif width