Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hier constraints from different files #853

Merged
merged 7 commits into from
Apr 30, 2024
Merged

Conversation

harrisonliew
Copy link
Contributor

@harrisonliew harrisonliew commented Mar 20, 2024

It appears that #675 commented out #626, which was one step towards getting vlsi.inputs.hierarchical.constraints to support meta directives.

Now, module-level constraints can come from different files, as long as vlsi.inputs.hierarchical.constraints_meta: append is set. Each file can contain part of the constraints for a given module. This addresses most of #401 I believe.

Ran thru a quick e2e mock test:

hammer-vlsi -p configs-design/pass/mock_hier.yml -p configs-design/pass/mock_hier_addl.yml syn-SubModC

Reviewing syn-SubModC/module_config.json files shows the correct module-specific config and syn-SubModC/syn-output-full.json shows SubModC's specific vlsi.inputs.hierchical.constraints not making it through.

TODO:

  • Remove vlsi.inputs.hierarchical.manual_placement_constraints. This should be legacy and completely replaceable by using vlsi.inputs.placement_constraints inside the submodule's constraint dict.
  • Fix upward propagation of constraints. Essentially need to remove module-specific constraints from the global output config dict from every action.
  • Investigate if/why bumps still buggy after these fixes @kevindna

Related PRs / Issues

Closes #401

Type of change:

  • Bug fix
  • New feature
  • Other enhancement

Impact:

  • Change to core Hammer
  • Change to a Hammer plugin
  • Other

Contributor Checklist:

  • Did you set master as the base branch?
  • Did you state the type-of-change/impact?
  • Did you delete any extraneous prints/debugging code?
  • (If applicable) Did you add documentation for the feature?
  • (If applicable) Did you update the poetry.lock file if you updated the requirements in pyproject.toml?
  • (If applicable) Did you add a unit test demonstrating the PR?
  • (If applicable) Did you run this through the e2e integration tests?
  • (If applicable) Did you update the submodules in e2e/ if this feature depends on updated plugins?

… come from different files for different modules
@harrisonliew harrisonliew added bug high priority No workaround exists, many people blocked, chip-breaking issues hierarchical CurrentTapeout This issue is needed for an ongoing tapeout at UCB labels Mar 20, 2024
…ke in flat flow. Meta directives inside now work. Legacy list structure still supported.
@harrisonliew harrisonliew marked this pull request as ready for review March 21, 2024 23:12
Copy link
Contributor

@dpgrubb13 dpgrubb13 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@harrisonliew harrisonliew added this pull request to the merge queue Apr 30, 2024
Merged via the queue into master with commit 5e3cfb3 Apr 30, 2024
4 checks passed
@harrisonliew harrisonliew deleted the fix_hier_constraints branch April 30, 2024 05:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug CurrentTapeout This issue is needed for an ongoing tapeout at UCB hierarchical high priority No workaround exists, many people blocked, chip-breaking issues
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Hierarchical constraints not propagated correctly in certain circumstances
2 participants