Adds register with update_state semantics, with a hierarchical test #212
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Using this PR as a new feature review (eg not meant to be merged)
Goal: Add precise verilator-like simulation semantics for peak classes and registers
Under this paradigm (only using Register3 for any state),
__call__(...)
does not ever update state, but only evaluates the combinational logic defined in Peak. ThePeak.update_state()
method does the state update exactly analogous to toggling the clock in verilator.To evaluate multiple cycles:
In addition, there are set() and get() methods for Regsister3 for to dynamically peak and poke the state.
One ultimate goal is to treat state input/outputs similar to peak outputs/inputs (respectively)for the automatic rewrite rule generation cod generation.