Skip to content

Chisel v6.0.0-RC2

Pre-release
Pre-release
Compare
Choose a tag to compare
@jackkoenig jackkoenig released this 14 Jan 03:55
· 562 commits to main since this release
4c28bd6

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)
    Makes SRAM targets accessible from SRAMInterfaces instantiated via the SRAM object, which sets the underlying field in SRAMInterface.

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 (use chisel3.ChiselEnum)
    • chisel3.experimental.EnumType (use chisel3.EnumType)
    • chisel3.experimental.EnumType (use chisel3.reflect.DataMirror)
    • chisel3.internal.requireIsHardware (use chisel3.experimental.requireIsHardware)
    • chisel3.internal.requireIsChiselType (use chisel3.experimental.requireIsChiselType)
    • chisel3.internal.sourceinfo.* (use chisel3.experimental.sourceinfo.*)
    • chisel3.internal.prefix (use chisel3.experimental.prefix)
    • chisel3.internal.noPrefix (use chisel3.experimental.noPrefix)
    • chisel3.internal.ChiselException (use chisel3.ChiselException)
    • chisel3.internal.InstanceId (use chisel3.InstanceId)
    • trait BackendCompilationUtilities
    • chisel3.util.MuxLookup(key, default, mapping) (use chisel3.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 include BuildInfo.firtoolVersion and will thus automatically include new releases. Versions of Chisel that predate BuildInfo.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".
  • 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 variable CHISEL_FIRTOOL_PATH.
  • [cd] Bump CIRCT from firtool-1.61.0 to firtool-1.62.0 (by @chiselbot in #3725)

Build and Internal Changes

  • Exclude docs project from Unidoc

Full Changelog: v6.0.0-RC1...v6.0.0-RC2