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

Consistent treatment of flag variables #1935

Closed
povik opened this issue Apr 11, 2024 · 13 comments
Closed

Consistent treatment of flag variables #1935

povik opened this issue Apr 11, 2024 · 13 comments
Assignees
Labels
good first issue Good for newcomers

Comments

@povik
Copy link

povik commented Apr 11, 2024

Description

There are a number of variables to turn things on/off, as documented on the "flow variables" page: https://openroad-flow-scripts.readthedocs.io/en/latest/user/FlowVariables.html

As far as I can tell those variables don't have consistent interpretation, for some variables they must be set to 1 for the documented effect (e.g. SKIP_CTS_REPAIR_TIMING), for other variables the existence of the variable is all that matters, the value is ignored (e.g. EQUIVALENCE_CHECK).

Suggested Solution

The obvious suggestion is to have a helper to check flags which would be used throughout the Tcl code; I have no idea if there's a fitting place to define one.

Additional Context

No response

@maliberty
Copy link
Member

I agree things have gotten somewhat inconsistent.

I believe all steps start with load.tcl so that could be a place to put the utility (I see append_env_var is there which seems like a utility). You could also create a utility.tcl and source it from load.tcl to make a cleaner separation.

Are you interested in resolving this?

@povik
Copy link
Author

povik commented Apr 12, 2024

Are you interested in resolving this?

Yes! If I get to it I will make the change.

@maliberty maliberty added the good first issue Good for newcomers label Sep 16, 2024
@maliberty
Copy link
Member

@povik are you working on this? @socclosure will take it up if you are not.

@povik
Copy link
Author

povik commented Sep 17, 2024

@maliberty Not really, no

@socclosure
Copy link

socclosure commented Sep 17, 2024 via email

@socclosure
Copy link

@maliberty @povik
I am proposing to add a small makefile file target to print value and name of all user's configurable variables which can be used in all subsequent TCL code of any other targets.

For reference check "print_all_env_cfg" in Makefile in the "ISSUE_1935" branch of my local git Repo at
https://github.com/socclosure/OpenROAD-flow-scripts/blob/ISSUE_1935/flow/Makefile

Let me know your feedback,

@socclosure
Copy link

@maliberty @povik Any feedback on my proposal on code implementation of this task?

@maliberty
Copy link
Member

There is a lot of progress on this recently in
image

I'm not sure how printing the variables ensures consistent treatment of them.

@socclosure
Copy link

socclosure commented Oct 8, 2024 via email

@socclosure
Copy link

@maliberty @povik Any feedback on my question or proposal?

@maliberty
Copy link
Member

I don't see the relationship between your suggestion and the original request. The request is about the consistency about how a variable is set, not about printing anything out.

In the meantime @oharboe has made a lot of progress on this in a series of PRs. I'm not sure if there is much left to do here but he can comment.

@oharboe
Copy link
Collaborator

oharboe commented Oct 14, 2024

I would say this is solved, the first sweep is done.

Next up it would be valuable to have well thought out and tested PRs to address specific inconsistencies, one per PR.

For instance, I think it would be good to have a default value instead if negative names. SKIP_... values should be negated and a default of 1 should be added to variables.yaml. This is at the nitpicking level though.

@socclosure
Copy link

Thanks @maliberty and @oharboe for your feedback and closing this issue.

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

No branches or pull requests

4 participants