Chisel v6.0.0-RC2
Pre-release
Pre-release
Features
- Add ModuleChoice and Groups (by @nandor in #3683)
Added support for the post-generation configuration of designs. Instance choices allow multiple, option-dependent targets to be specified for a single option, picking an implementation in the downstream flow. - make SRAM targets accessible from SRAMInterface (by @debs-sifive in #3728)
MakesSRAM
targets accessible fromSRAMInterface
s instantiated via theSRAM
object, which sets theunderlying
field inSRAMInterface
.
API Modification
- Promote FlatIO to package chisel3 (by @jackkoenig in #3727)
- Make chisel3.internal.firrtl.* private (by @jackkoenig in #3732)
- Width, KnownWidth, and Unknown width promoted to package chisel3
- Other classes moved to new package private chisel3.internal.firrtl.ir
- Delete many old deprecated APIs (by @jackkoenig in #3733)
trait AutoCloneType
(its always enabled, the trait is a no-op)chisel3.experimental.ChiselEnum
(usechisel3.ChiselEnum
)chisel3.experimental.EnumType
(usechisel3.EnumType
)chisel3.experimental.EnumType
(usechisel3.reflect.DataMirror
)chisel3.internal.requireIsHardware
(usechisel3.experimental.requireIsHardware
)chisel3.internal.requireIsChiselType
(usechisel3.experimental.requireIsChiselType
)chisel3.internal.sourceinfo.*
(usechisel3.experimental.sourceinfo.*
)chisel3.internal.prefix
(usechisel3.experimental.prefix
)chisel3.internal.noPrefix
(usechisel3.experimental.noPrefix
)chisel3.internal.ChiselException
(usechisel3.ChiselException
)chisel3.internal.InstanceId
(usechisel3.InstanceId
)trait BackendCompilationUtilities
chisel3.util.MuxLookup(key, default, mapping)
(usechisel3.util.MuxLookup(key, default)(mapping)
, it has much better type inferencing behavior)
- Clean up Bindings deprecations (by @jackkoenig in #3736)
- Make already deprecated APIs package private
- Add deprecation warnings to a few that we missed
Performance
- Share the globalNamespace in the DynamicContext used for Definition. (by @mikeurbach in #3700)
When creating large numbers of Definitions, copying the globalNamespace back and forth becomes a performance bottleneck.
Fixes
- Define typeEquivalent specially for Property. (by @mikeurbach in #3685)
When we changed Property to extend Element, we needed to update some internal logic that checked "are these Elements the same type". That logic needs to work a little differently for Property, and this internal API is one other place that needed to be updated. - dontTouch: Skip probe and properties. (by @dtzSiFive in #3691)
- Fix the
--mlir-print-ir-after-all
option. (by @poemonsense in #3704)
Fix the--mlir-print-ir-after-all
option. - Fix using Definitions as arguments to Definitions (by @jackkoenig in #3726)
Fixes #3708
Documentation
- [docs] Fix release ordering and make RC count as latest (by @jackkoenig in #3686)
- [docs] update firtool version (by @schoeberl in #3670)
- [docs] Add Firtool versions table to Versioning page (by @jackkoenig in #3694)
This table is generated for all versions of Chisel that includeBuildInfo.firtoolVersion
and will thus automatically include new releases. Versions of Chisel that predateBuildInfo.firtoolVersion
are included in the table manually. - [docs] Fix links from ScalaDoc to source code (by @jackkoenig in #3697)
- Add riscvassembler lib to community projects (by @carlosedp in #3717)
Added RISCVAssembler Scala library to community projects.
Dependency Updates
- Bump firtool-resolver to 1.1.0 (by @jackkoenig in #3696)
The logic for- If FIRTOOL_PATH is set, the --version regex failing no longer will return fail, instead it will set version to
<unknown>
. - If FIRTOOL_PATH is set and something fails (firtool not found or cannot execute the binary), then the error will be returned rather than firtool-resolver falling back to fetching the default version.
- Errors from running firtool will be logged and returned rather than unconditionally turned into "Firtool binary not on FIRTOOL_PATH".
- If FIRTOOL_PATH is set, the --version regex failing no longer will return fail, instead it will set version to
- Bump firtool resolver to 1.2.0 (by @jackkoenig in #3702)
Now it will fetch llvm-firtool with classifier for the current system rather than the full artifact which contains binaries for all platforms. - Bump firtool-resolver to 1.3.0 (by @jackkoenig in #3719)
To override which firtool is used by Chisel, users can set environment variableCHISEL_FIRTOOL_PATH
. - [cd] Bump CIRCT from firtool-1.61.0 to firtool-1.62.0 (by @chiselbot in #3725)
Build and Internal Changes
- fix up path issue in build.sc (by @sequencer in #3692)
- Fix publish (by @jackkoenig in #3695)
- [CI] Fix flaky CI and remove VerilogMdocModifier from API docs (by @jackkoenig in #3701)
- Use Java 17 to build documentation in CI
- Exclude docs project from Unidoc
- bump and update nix to use upstreamed packages (by @sequencer in #3713)
- [CI] Fix CI flakiness with --server=false (by @jackkoenig in #3722)
- Bump SBT to 1.9.8 and update Ubuntu runners (by @jackkoenig in #3734)
Full Changelog: v6.0.0-RC1...v6.0.0-RC2