Chisel v6.0.0-M1
Pre-release
Pre-release
Features
- Add
ConstTypeandConst(...)API (by @debs-sifive in #3046)
AddsConst()API to createConstTypes, which denotesDatathat 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
skipPrefixto 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 thecirct.clock_gateintrinsic. - 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
- 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
- Bump firtool version to 1.40.0 (by @seldridge in #3226)
- Update sbt-ci-release to 1.5.12 (by @scala-steward in #3234)
- Update sbt-mima-plugin to 1.1.2 (by @scala-steward in #3145)
- Update scalacheck-1-14 to 3.2.11.0 (by @scala-steward in #3264)
- Update data-class to 0.2.6 (by @scala-steward in #3049)
- Update sbt-assembly to 2.1.1 (by @scala-steward in #3047)
- Update scopt to 4.1.0 (by @scala-steward in #3048)
- Update upickle to 3.1.0 (by @scala-steward in #3169)
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 toproject/previous-versions.txton relevant release branches.build.sbtalso 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