Releases: SystemRDL/systemrdl-compiler
Releases · SystemRDL/systemrdl-compiler
1.25.3
1.25.2
1.25.1
1.25.0
New features
UserEnum
is now pickleable.- Upgrade to Antlr 4.11.1 runtime
- Rework compiler's UDP preregistration API
- Deprecated
RDLCompiler.define_udp()
method in favor of newRDLCompiler.register_udp()
- New API allows for "soft" UDP predefinition
- Better default value & validation hooks
- See docs for more details: https://systemrdl-compiler.readthedocs.io/en/stable/api/udp.html
- Deprecated
Bug Fixes
- Fix ability to define and instantiate signals inside fields. (#131)
1.24.0
New features
- Add more formalized
UserEnum.define_new()
factory method for use in importers - Add explicit
UserStruct.type_name
property. UserStruct
is now pickleable.
Bug Fixes
- Fix missing error detection if extraneous input is passed to
RDLCompiler.expr()
- Rework
UserEnum
to remove member name restrictions(#130) - Fix invalid importer identifier check regex.
- Fix
UserStruct
so RDL inheritance is also represented in Python class inheritance.
1.23.0
New Features
- Add numerous Node methods and properties to make working with aliases easier:
RegNode.is_alias
RegNode.alias_primary
RegNode.has_aliases
RegNode.aliases
FieldNode.is_alias
FieldNode.alias_primary
FieldNode.has_aliases
FieldNode.aliases
FieldNode.implements_storage
now accounts for aliases:- Fields inside an alias register never implement storage
- A field inside a primary register may inherit additional access modes indirectly from its aliases, and therefore end up implementing storage.
- Enhance walker so that listener callbacks can control walker traversal. Listener callbacks can now optionally return a
systemrdl.WalkerAction
enumeration to direct how walker should continue.
New Validation
- Numerous rule checks added to check consistency of alias registers and their contents.
Bug Fixes
- Fix elaboration so alias registers inherit primary instance's internal/external type. #123
1.22.0
New Features
- Add
RegNode.is_interrupt_reg
- Add
RegNode.is_halt_reg
- Include offending text in "illegal name" import exceptions
FieldNode.implements_storage
now returns True for counters, interrupts, and sticky/stickybit fields
New Validation
- Enforce that
next
property requires field to be hw writable. - Add check for conflicting edge-sensitive interrupt that uses whole-field sticky property.
- Add check for conflicting
sticky
/stickybit
withwe
/wel
properties - A field that uses
sticky
/stickybit
properties shall be hw writable - Illegal to use
enable
/mask
/haltenable
/haltmask
on non-interrupt fields - Value of
incrwidth
/decrwidth
shall be between 1 and the width of the counter - Use of
overflow
/underflow
is pointless on counters that saturate. Emit error.
Bug Fixes
- Fix
intr type
to return None for non-interrupt fields - Fix uncaught error if local property assignment is attempted in the root namespace
1.21.0
New Features
- Upgrade to Antlr 4.9.3
- Add
FieldNode.is_up_counter
andFieldNode.is_down_counter
- Add
PropertyReference.width
- Add
MemNode.is_sw_readable
andMemNode.is_sw_writable
(#115) - Add
skip_top
option toRDLWalker.walk()
method
New Validation
- Improve validation of counter properties
- Add validation of property reference widths
- Require that signals used in resets shall have activehigh/activelow specified
- Flag illegal rclr/rset/woclr/woset properties if field is not readable/writable
Bug Fixes
- Fix default return value for incrvalue/decrvalue
- Fix incorrect validation of incrvalue/decrvalue reference widths
- Fix incorrect spelling of decrsaturate/decrthreshold RHS property references (was previously decsaturate/decthreshold!)
1.20.0
1.19.0
Changes
- Add proper support for elaboration and validation of bridge addrmaps. (#72)
- Bridge addrmaps now allow overlapping children
- Improved validation of bridge addrmaps
- Improve startup time by lazy-loading markdown module
- Enforce regwidth >= accesswidth as per 10.6.1.c. #98
- Improve support for field and cpuif reset signals:
FieldNode.get_property('resetsignal')
will now default to finding the nearest in-scope field reset signal if not explicitly set.- Added
Node.cpuif_reset
property which similarly returns the nearest in-scope cpuif reset signal - Add missing validation checks for cpuif/field reset signals
- Improve handling of mutually exclusive properties. Auto-clear all mutex counterparts on assign.
- Remove deprecated
Node.add_derived_property()
function #68