This roadmap captures the current plans of the Chisel maintainers and can be changed through the usual PR process. Not every small feature add or planned bugfix is logged here, but the high-level changes and planned direction that are relevant for those using and contributing to the project. Two especially notable directions on the roadmap below are:
- We are migrating Chisel to rely on, exclusively, the MLIR-based FIRRTL Compiler
- Accelerating improvements and changes to Chisel and the FIRRTL specification
- Continue to maintain binary compatibility on these releases
- Continue to backport bug fixes, new features if possible, documentation updates, etc.
- Deprecations are backported to ease in users migrating to next major release (3.6).
This release is intended to provide a smooth path for the Chisel codebase to no
longer depend on the
Scala FIRRTL Compiler (SFC)
and use the MLIR Firrtl Compiler (MFC) as the
main backend. While the SFC may continue to work to consume the .fir
produced
by Chisel, it will not be a requirement for adding new features to the FIRRTL
spec and the Chisel APIs. Thus, the 3.6 release will:
- Deprecate
Chisel._
- Turn the deprecations from previous releases into Errors
- Support integration with MFC by bringing
chisel-circt
in-repo - Stop using SFC except to test deprecated features
- Deprecate all Chisel features that are not implemented in MFC. A nonexhaustive
list includes:
- Interval Types
- Fixed Point Types
- Injecting Aspects
- EnumAnnotations
- RunFirrtlTransformAnnotation
- ChiselAnnotation/custom annotations
- Publish Roadmap
See the Q&A below.
As we look forward to Chisel development, we plan to accelerate coordinated changes with the FIRRTL specification to add new functionality. The bump to version 5.0.0 will be a major change in the overall versioning scheme of the Chisel project. We will switch to Semantic Versioning 2.0.0, which means we expect the MAJOR version number to increment much more frequently. To make this change more apparent, these changes will be made in the Chisel 5.0.0 release:
- The build artifact will be renamed to
org.chipsalliance.chisel
- The repository will be renamed to github.com/chipsalliance/chisel (the
chisel3
URL will still work as an alias). - All of Chisel’s internal tests will rely on MFC, not SFC, for lowering from firrtl
- Delete Chisel._
- The repo will be flattened with its dependencies/dependents as much as
possible
- Bring all things in from SFC into chisel repo that are needed(FIRRTL IR, Stage, etc)
- chisel-test (or a subset of it that works with MFC) will be brought into the chisel repo
- The chisel-lang website will be brought in-repo
- Only the chisel repo will be released as an artifact (as all supported dependents and dependencies will be flattened in)
Faster co-improvements to Chisel, MFC, the FIRRTL IR and Chisel.
- What happened to Chisel 4?
We want to make it clear that there is a change in development versioning and philosophy (moving faster), so we are skipping 4 and moving straight from chisel3 to Chisel 5.0.0.