Skip to content

Chisel v6.0.0-M1

Pre-release
Pre-release

Choose a tag to compare

@jackkoenig jackkoenig released this 10 May 00:41
36622f1

Features

  • Add ConstType and Const(...) API (by @debs-sifive in #3046)
    Adds Const() API to create ConstTypes, which denotes Data that holds a constant value.
  • Implement read-write memory accessors for SyncReadMem (by @jared-barocsi in #3190)
    SyncReadMem.readWrite(address, writeData, enabled, isWrite) explicitly generates a read-write port that supports both read and write access to the memory.
  • [Feature] Add Interface, ConformsTo for Separate Compilation (by @seldridge in #3199)
  • Handle BoringUtils in Chisel, rather than in FIRRTL compiler (by @azidar in #3187)
    • Added a new BoringUtils.bore that is performed during Chisel elaboration, not via Annotations+CIRCT. Punched ports are accessible to the user via DataMirror. However, using these reflection APIs or calling .toDefinition will fully close a module, to ensure that subsequent boring fails (and thus getting all ports is never stale).
    • Added a skipPrefix to enable ignoring the last prefix value in the prefix name stack.
  • API for probing internal signals (by @debs-sifive in #3088)
    Adds an API for probing internal signals.
  • Add ClockGate intrinsic (by @fabianschuiki in #3209)
    Add support for the circt.clock_gate intrinsic.
  • Added more Connectable customization functions (by @azidar in #3227)
    • Added .unsafe, a useful function on Connectable when users want a connection to "try its best but don't error".
  • Added .squeezeAllAs, a useful function on Connectable when users want a connection to always squeeze, as well as upcast if desired.
  • Added .as, a useful function on Connectable when users to upcast the Scala type.
  • Connectable's now register erroneous connections (e.g. out of scope, unwritable sinks) to throw at end of elaboration
  • Allow DataView of Reset <=> [UInt<1>, AsyncReset] (by @seldridge in #3181)
  • [feature] Add properties to Interface (by @seldridge in #3238)
  • Enable .viewAsSupertype to work on Records (by @mwachs5 in #3267)
    • Allow .viewAsSupertype to work on Records, with additional tests.
  • Ensure that errors in DataView show the problematic fields in a deterministic order.

Fixes

  • Revert checks for size 0 Vecs in connections (by @jackkoenig in #3215)
  • Fix Instantiate for Product parameters (by @jackkoenig in #3210)
    Instantiate previously erased type information for case classes and case objects which could result in incorrect behavior.
  • [bugfix] Fix naming module with Unit parameter (by @seldridge in #3263)

Documentation

  • [docs] Fix README logo and update versions (by @jackkoenig in #3189)
  • [fix] typo fix: chosen port of arbiter is not onehot but UInt (by @SihaoLiu in #3235)
    Just a oneline fix to the comment of Arbiter chosen port

Dependency Updates

Build and Internal Changes

  • Remove PartialConnect (by @seldridge in #3185)
  • Update Mergify for backporting to 5.x (by @jackkoenig in #3191)
  • Add Chisel Scala CLI template and automation (by @jackkoenig in #3186)
    Add a new Chisel template for using Chisel with Scala CLI, and adds some automation for uploading versions of this template on tagged releases (or workflow dispatch).
  • Add Data.findFirstTypeMismatch for better type checking (by @jackkoenig in #3201)
  • Read previousVersions for bincompat checking from a file (by @jackkoenig in #3202)
    We can now simply append versions as they are released to project/previous-versions.txt on relevant release branches. build.sbt also now contains instructions are how to waive binary compatibility breakages.
  • Enable push CI on all *.x branches (by @jackkoenig in #3222)
  • Improve SyncReadMem.read, .readWrite (by @jared-barocsi in #3221)
  • Add workflow to automatically update binary compatibility checks (by @jackkoenig in #3242)
  • Add new workflow to fixup backports for release notes (by @jackkoenig in #3252)
    Improve backport automation so that release notes generation from backport PRs works properly.
  • Update .scala-steward.conf (by @jackkoenig in #3266)
    Make the frequency a legal value (14 days).

Full Changelog: v5.0.0-RC2...v6.0.0-M1