Chisel v6.1.0
Features
- Support checking isVisible with reflect.DataMirror (by @poemonsense in #3753)
- Provide ImplicitClock and ImplicitReset (backport #3714) (by @mergify[bot] in #3769)
These traits implement the functionality formerly only implemented in Module such that they can now be used by RawModules. They also define new protected virtual methodsimplicitClock
andimplicitReset
that can be overridden withinModule
to change what values are used as the implicit clock and implicit reset respectively. - Support isLit for Property types. (backport #3782) (by @mergify[bot] in #3789)
Since we override litOption to always be None, we need to override isLit to check the Binding. - Support isProperty query in DataMirror. (backport #3783) (by @mergify[bot] in #3790)
This adds an API to DataMirror to query if a Data is a Property. - Support Property in BoringUtils. (backport #3784) (by @mergify[bot] in #3791)
This adds support for BoringUtils.bore to bore and connect Property ports. - Add a new DynamicObject.apply method to create Class instances. (backport #3792) (by @mergify[bot] in #3797)
This is in addition to the existing support in Definition.apply. Sometimes it is not possible to use Definition.apply, for example, if you plan to bore ports through the Class being constructed. The new DynamicObject.apply method supports this, and creates a DynamicObject from the newly elaborated Class. - Make
SRAMInterface
parameters publicly available (backport #3826) (by @mergify[bot] in #3828)
memSize
,dataType
,numReadPorts
,numWritePorts
,numReadwritePorts
,masked
parameters are now visible forSRAMInterface
. - Add Property expressions, starting with addition. (backport #3810) (by @mergify[bot] in #3843)
This allows Properties to be used to build up expressions in terms of input Properties and literals. - Add Property expression for integer multiplication. (backport #3844) (by @mergify[bot] in #3845)
This adds an API for integer Property multiplication. - Add Property expression for integer shift right. (backport #3846) (by @mergify[bot] in #3850)
This adds an API for integer Property shift right. - Add DataProduct for Iterables and primitive types (backport #3856) (by @mergify[bot] in #3860)
Fixes
- Support === on empty Aggregates (by @jackkoenig in #3747)
- Fix
Reg()
to properly handle clocks as rvalues (backport #3775) (by @mergify[bot] in #3780)- Clocks are now properly supported by
DataView
(includingFlatIO
) - Users will also received better error messages when providing invalid clocks to
Reg()
- Clocks are now properly supported by
- Report source locator in when scoping error messages (backport #3804) (by @mergify[bot] in #3808)
- Fix visibility for views (backport #3818) (by @mergify[bot] in #3821)
DataMirror.isVisible
and other things checking visibility now work properly for views. - [svsim] Better error message when verilator not on PATH (backport #3829) (by @mergify[bot] in #3833)
- Remove extra bit from
SRAMInterface
address width (backport #3830) (by @mergify[bot] in #3840) - [svsim] Make EphemeralSimulator multi-processing friendly (backport #3847) (by @mergify[bot] in #3849)
- Grab a unique temporary directory for every invocation using Java API
- Allow multiple EphemeralSimulators to run in the same JVM (no longer necessary to single-thread)
- Use pure Scala code to recursively delete directory at end rather than platform specific
rm -rf
Documentation
- [docs] Minor updates to README and SETUP for Chisel 6 (by @jackkoenig in #3745)
- Update CONTRIBUTING.md (backport #3785) (by @mergify[bot] in #3788)
Update CONTRIBUTING instructions to clarify backport process and branch to target.
Dependency Updates
- de-bump to sbt 1.9.7 (backport #3852) (by @mergify[bot] in #3854)
De-bumping to sbt 1.9.7 to avoid glibc issues for users, manifesting as:java.lang.UnsatisfiedLinkError: Error looking up function 'stat': java: undefined symbol: stat
- Add Scala 2.13.13 to cross-build (backport #3851) (by @mergify[bot] in #3864)
Build and Internal Changes
- [main] Enable MiMa for v6.0.0 (by @chiselbot in #3743)
- Enhance release notes automation (by @jackkoenig in #3751)
- Bump
mikepenz/release-changelog-builder-action
to v4.1.1 - It now tabs every line included in the Release Notes section of the PR template
- Bump
- Update Scala CLI Template (backport #3757) (by @mergify[bot] in #3861)
- Use "dep" instead of deprecated "lib"
- Move ChiselStage import above
import chisel3._
- This makes users less likely to run into issues adding
import chisel3.util._
- This makes users less likely to run into issues adding
- Bump versions in Github workflows
Full Changelog: v6.0.0...v6.1.0