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

Adopt the pattern in detail_route.tcl to collect parameters instead of using global variables like in global_place.tcl #6569

Open
oharboe opened this issue Jan 22, 2025 · 1 comment
Assignees

Comments

@oharboe
Copy link
Collaborator

oharboe commented Jan 22, 2025

Description

In detail_route.tcl, arguments are collected into an array and passed to detailed_route. This way it is clear what is happening and how the information flows and it is all contained to detail_route.tcl

However in global_place, global state is modified by e.g gpl::set_routability_target_rc_metric_cmd and it is not clear who uses this information later on or whether this information can leak outside of replace.tcl.

Suggested Solution

Adopt the pattern of detail_route.tcl and avoid using global state throughout OpenROAD .tcl files like global_place.tcl.

Additional Context

No response

@gudeh gudeh self-assigned this Jan 22, 2025
@oharboe
Copy link
Collaborator Author

oharboe commented Jan 22, 2025

Another advantage of the detail_route.tcl approach is that it makes it easier to implement logging.

Consider detailed_placement, if all the arguments were on the detailed_placement command, then adding log_cmd would tell the whole story.

The user now has to piece together by careful examination of the logs + variables + reading the .tcl code what is going on. set_placement_padding is another example of global state.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants