Skip to content

Releases: SystemRDL/systemrdl-compiler

1.25.3

12 Jan 04:29
Compare
Choose a tag to compare

Bug Fixes:

  • Fix bug when processing UDPs that use an array type. #147

1.25.2

04 Jan 06:56
Compare
Choose a tag to compare

Updates:

  • Add pre-built binary distributions for Python 3.11
  • Throw error if memory's width is not able to be determined. #146
  • Fix missing check for address alignment. #141

1.25.1

25 Oct 04:52
Compare
Choose a tag to compare

Bug Fixes:

  • Fix unintended behavior of a soft UDP's unassigned default value.
  • If UDP is not assigned a value, rather than ignoring the assignment, assign a NoValue token to it. (spec 15.2.1-c)

1.25.0

18 Oct 05:36
Compare
Choose a tag to compare

New features

  • UserEnum is now pickleable.
  • Upgrade to Antlr 4.11.1 runtime
  • Rework compiler's UDP preregistration API

Bug Fixes

  • Fix ability to define and instantiate signals inside fields. (#131)

1.24.0

08 Sep 04:29
Compare
Choose a tag to compare

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

17 Mar 04:39
Compare
Choose a tag to compare

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

21 Jan 06:25
Compare
Choose a tag to compare

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 with we/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

09 Dec 04:12
Compare
Choose a tag to compare

New Features

  • Upgrade to Antlr 4.9.3
  • Add FieldNode.is_up_counter and FieldNode.is_down_counter
  • Add PropertyReference.width
  • Add MemNode.is_sw_readable and MemNode.is_sw_writable (#115)
  • Add skip_top option to RDLWalker.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

31 Aug 06:22
Compare
Choose a tag to compare

Changes

  • Add Node.unrolled() method to unroll a target node. #81
  • Add __repr__() implementation for PropertyReference objects
  • Fix missing field packing range check when in msb0 mode. #103
  • Add validation for property references
  • Provide better API access to the preprocessor. #101

1.19.0

02 Jul 04:37
Compare
Choose a tag to compare

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