It would be great if partial verilog recompilation could be supported with CIRCT.
The API could be like:
make CONFIG=RocketConfig re-elab-module MODULE=RocketTile
In this example, this command should regenerate the entire Chisel design, and check that the interface to RocketTile has not changed. If there has been no change to the module interface, then it should re-generate the RocketTile.sv only. If there was a change to the IO, then a warning for the user should be emitted.
Motivating Example
This enables some useful workflows for VLSI and FPGA-prototyping. Of course, the designer should be aware of the dangers of this approach.
Background Work
Feature Description
It would be great if partial verilog recompilation could be supported with CIRCT. The API could be like:
In this example, this command should regenerate the entire Chisel design, and check that the interface to RocketTile has not changed. If there has been no change to the module interface, then it should re-generate the
RocketTile.sv
only. If there was a change to the IO, then a warning for the user should be emitted.Motivating Example
This enables some useful workflows for VLSI and FPGA-prototyping. Of course, the designer should be aware of the dangers of this approach.