Chisel v5.0.0-M2
Pre-release
Pre-release
Features
- add MuxLookup.fromEnum (by @albertchen-sifive in #3071)
addchisel3.util.MuxLookup.fromEnum
- Fix FIRRTL spec emission and bump to spec 1.2.0 (by @jackkoenig in #3094)
Fix emission of FIRRTL spec in emitted.fir
. Now emitting FIRRTL version 1.2.0. - add curried MuxLookup.apply, deprecate old apply (by @albertchen-sifive in #3095)
Add a new version ofMuxLookup.apply
that takes two parameter lists instead of one. This helps the scala compiler report better type errors. - Introduce
svsim
, a low level library for simulating SystemVerilog using Verilator and VCS. (by @GeorgeLyon in #3121)
Addedsvsim
, a new library for compiling and controlling SystemVerilog simulations in Scala using Verilator or VCS. - Add
Simulator
class for simulating Chisel modules withsvsim
(by @GeorgeLyon in #3136)- Added
chisel3.simulator.Simulator
for simulating Chisel modules withsvsim
- Added
API Modification
- Removed innards and NotStrict for CompileOptions, and object Chisel (by @azidar in #3055)
Removal ofChisel
and theNotStrict
compile options. - Remove compile options everywhere in Chisel internals. (by @azidar in #3056)
Removed CompileOptions trait and associated code, as it is now unnecessary. - Remove LegacyModule and LegacyBlackBox (by @azidar in #3058)
Removed LegacyModule and LegacyBlackBox. Users should instead now extendModule
orBlackBox
. - [nfc] Remove two unused SFC annotations (by @seldridge in #3102)
- Remove ImplicitInvalidate (by @azidar in #3096)
Remove ImplicitInvalidate - now users must explicitly assign DontCare to a module, at instantiation site, rather than this happening automatically because the module extended ImplicitInvalidate. - Remove reflectivelyFindIO, its unused (by @azidar in #3106)
Performance
- Make return value of Serializer.lazily lazy (by @jackkoenig in #3122)
Reduce peak memory usage during .fir serialization by using lazy intermediate data structures.
Fixes
- Fix paper cut: bad message on calling litValue on Bundle containing DontCare (by @chick in #3043)
There is now a better message when calling litValue on a Bundle that contains a DontCare
that shows the Bundle and fields - Disallow --target-dir in ChiselStage$ (by @seldridge in #3063)
- Remove deprecated CIRCT Options (by @seldridge in #3101)
- Detect bound hardware when processing record elements (by @adkian-sifive in #3037)
Using bound hardware as an Element for a Record will now throw a better error message - Actually fail on compilation errors and fix issue with older
gcc
versions (by @GeorgeLyon in #3132)
Documentation
- Fix broken cookbook link (by @mwachs5 in #3073)
Fix broken link in the cookbook about resolving UInt index mismatches - Update README, fix link to roadmap.md (by @jensengrey in #3091)
- Update README.md, fix scala version support badge (by @seanjensengrey in #3119)
Dependency Updates
- Bump CIRCT to 1.34.0 (by @seldridge in #3079)
- Bump to firtool 1.35.0 (by @jackkoenig in #3128)
Bump to firtool 1.35.0, see release notes: https://github.com/llvm/circt/releases/tag/firtool-1.35.0 - Bump to firtool 1.36.0 (by @jackkoenig in #3133)
Bump to firtool 1.36.0, see release notes: https://github.com/llvm/circt/releases/tag/firtool-1.36.0
Build and Internal Changes
- Let sbt-dynver control the SBT version (by @jackkoenig in #3064)
Change SNAPSHOT versioning scheme to be derived fromgit describe --tag
. SNAPSHOTs will now be unique per push to main. - [CI] Do full unshallow clone for publish job (by @jackkoenig in #3069)
- Use -std=c++11 for Verilator 5.0 support (by @seldridge in #3066)
- Require unshallow clone to publish in SBT (by @jackkoenig in #3070)
- Release Chisel v5.0.0-M1 (by @jackkoenig in #3087)
- Simplify assertKnownWidth to Verilog test (by @seldridge in #3078)
- Add VSCode devcontainer config (by @GeorgeLyon in #3083)
Added standard config for VSCode dev containers that can get developers up and running with just Docker and VSCode. To use, simply open the repo in VSCode and choose "Rebuild and Reopen in Container". - More VSCode Devcontainer Improvements (by @GeorgeLyon in #3120)
- Add SBT aliases for formatting including SBT files (by @jackkoenig in #3125)
- Fix svsim to publish as part of unipublish (by @jackkoenig in #3127)
- [devcontainer] Use CIRCT full source bundle instead of git (by @GeorgeLyon in #3139)
Full Changelog: v5.0.0-M1...v5.0.0-M2