Skip to content

Conversation

@jackkoenig
Copy link
Contributor

Follow on to #1804, make the compiler plugin autoclonetype be always on and thus used in chisel3 itself.

Contributor Checklist

  • [NA] Did you add Scaladoc to every public function/method?
  • Did you add at least one test demonstrating the PR?
  • Did you delete any extraneous printlns/debugging code?
  • Did you specify the type of improvement?
  • Did you add appropriate documentation in docs/src?
  • Did you state the API impact?
  • Did you specify the code generation impact?
  • Did you request a desired merge strategy?
  • Did you add text to be included in the Release Notes for this change?

Type of Improvement

  • performance improvement
  • new feature/API

API Impact

As described in the release notes in #1804 and reflected in the test change, this will cause issues for any Bundle that inherits from a Bundle in chisel3.util if the code is not also compiled using the compiler plugin. Thus, this change can only occur on the major version bump.

Backend Code Generation Impact

Desired Merge Strategy

  • Squash

Release Notes

Always generate cloneType methods for Bundles using the compiler plugin. This causes a binary and source incompatible change for any Chisel code that does not use the compiler plugin but extends a Bundle in other code that does. All Chisel users should use the compiler plugin.

Reviewer Checklist (only modified by reviewer)

  • Did you add the appropriate labels?
  • Did you mark the proper milestone (3.2.x, 3.3.x, 3.4.0, 3.5.0) ?
  • Did you review?
  • Did you check whether all relevant Contributor checkboxes have been checked?
  • Did you mark as Please Merge?

@jackkoenig jackkoenig added this to the 3.5.0 milestone Mar 19, 2021
@jackkoenig jackkoenig added the Please Merge Accepted PRs that are ready to be merged. Useful when waiting on CI. label Mar 23, 2021
@mergify mergify bot merged commit 26461d5 into master Mar 23, 2021
@jackkoenig jackkoenig deleted the use-plugin-autoclonetype branch April 6, 2021 18:33
sequencer added a commit that referenced this pull request Apr 9, 2021
@sequencer sequencer mentioned this pull request Apr 9, 2021
14 tasks
jackkoenig pushed a commit that referenced this pull request Feb 28, 2023
This adds an experimental new SMTLib and Btor2 emitter
that converts a firrtl module into a format
suitable for open source model checkers.
The format generally follows the behavior of yosys'
write_smt2 and write_btor commands.

To generate btor2 for the module in m.fir run
> ./utils/bin/firrtl -i m.fir -E experimental-btor2
for SMT:
> ./utils/bin/firrtl -i m.fir -E experimental-smt2

If you have a design with multiple clocks
or an asynchronous reset, try out the new StutteringClockTransform.
You can designate any input of type Clock to be your
global simulation clock using the new GlobalClockAnnotation.

If your toplevel module instantiates submodules,
you need to inline them if you want the submodule
logic to be included in the formal model.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Please Merge Accepted PRs that are ready to be merged. Useful when waiting on CI.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants