Known Issues & Limitations#
This page lists anything from the SystemRDL 2.0 spec that the
systemrdl-compiler does not support yet.
Constraints#
SystemRDL constraint blocks are not implemented yet.
No support for heterogeneous arrays#
RDL spec allows parameters to be overridden via a dynamic property assignment. One feature described is the ability to modify a subset of an array of instances via a dynamic property assignment. This would result in an array of instances that no longer share the same properties.
Currently, assigning sub-ranges of an instance array is not supported. Dynamic assignments are only supported when modifying the entire instance array, and without using an array subscript (even if the subscript is a range that represents the entire array). This feature is planned to be supported in the future.
For example:
my_reg my_inst[16];
// Modifying all instances in the array is supported
my_inst->some_property = 1234;
// Modifying a subset is not supported
my_inst[2]->some_property = 1234;
my_inst[1:4]->some_property = 1234;
my_inst[0:15]->some_property = 1234;
Property assignments using references shall be constant#
Use of property or component references are only supported if the resulting assignment value can be determined during RDL elaboration-time.
- Supported:
some_property = PARAMETER ? my_reg.my_field : my_reg.my_field->some_property;
- Not supported:
some_property = my_signal ? my_field : my_field->some_property;