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

Step Substitution works in a very surprising manner #646

Open
donn opened this issue Jan 22, 2025 · 0 comments
Open

Step Substitution works in a very surprising manner #646

donn opened this issue Jan 22, 2025 · 0 comments
Labels
⛓️‍💥 breaking change This issue may require a change to OpenLane's API ✨ enhancement New feature or request
Milestone

Comments

@donn
Copy link
Member

donn commented Jan 22, 2025

Description

Substitution can now currently and confusingly be consumed at either the class level, i.e. the subclass's step list itself is transformed by initialization with Substitute, or substitutions can also be applied at the instance level, where the instance's step list only is changed.

Among other things, this complicates chaining multiple substitutions by subclassing a flow that itself has substitutions.

Another issue is that step substitutions do not consider the state of the step list after applying previous step substitutions, so for example, if you have three instances of a step in the flow and remove the second, the normalized step ID for the remaining second step is -2 instead of -1.

Additionally, substitutions in configuration files are applied to all flows, not just the one declared in the config file, making them useless for designs that may be subjected for multiple flows.

Proposal

The way substitution works should be streamlined and documented.

@donn donn added ⛓️‍💥 breaking change This issue may require a change to OpenLane's API ✨ enhancement New feature or request labels Jan 22, 2025
@donn donn added this to the 3.0.0 milestone Jan 22, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
⛓️‍💥 breaking change This issue may require a change to OpenLane's API ✨ enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant