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.
This implements the top-down hierarchical flow in Innovus. Users are required to use a channel-based methodology, because feedthrus are not yet supported. Some notes:
vlsi.inputs.hierarchical.mode
was purely dynamically-set. Hence, user setting it to "hierarchical" didn't actually do anything. I've repurposed this to be user-facing to be able to select between bottom-up and top-down flows.vlsi.inputs.hierarchical.module_mode
. A similar dynamically-set key isvlsi.inputs.hierarchical.partitioning
, which is needed to know if we are traversing up or down the dependency graph.par.in/outputs.in/output_dbs
are added and are also dynamically set.Note: currently, this flow requires a full top-level synthesis; however, to make it more practical for agile methodologies, we will need to implement hierarchical synthesis as well. The inputs to the flow would start from leaf node synthesis in a bottom-up fashion to top-level synthesis, then top-down to bottom-up traversal of par.
A major additional change is making the Makefile generation much more DRY (see the total rewrite of
hammer_build_systems.py
). Also closes #616.TODOs before merging:
Related PRs / Issues
Type of change:
Impact:
Contributor Checklist:
master
as the base branch?poetry.lock
file if you updated the requirements inpyproject.toml
?e2e/
if this feature depends on updated plugins?