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

PCell update: Library#refresh should call coerce_parameters_impl #1079

Closed
klayoutmatthias opened this issue May 10, 2022 · 1 comment
Closed
Assignees
Labels
Milestone

Comments

@klayoutmatthias
Copy link
Collaborator

Rationale: the "refresh" function is used to update the PCell layouts to the "current version". When the PCell implementation has changed, coerce_parameters_impl needs to be called, because the parameters may no longer be valid or need to be re-evaluated.

Right now it appears that "refresh" does not invoke "coerce_parameters_impl".

@klayoutmatthias
Copy link
Collaborator Author

The solution is implemented through PR #1083.

Please note the following: coerce_parameters_impl now is called also prior to "produce" to ensure that produce will always receive consistent parameters. When coerce_parameters_impl raises an exception, the PCell will display the error text rather than producing layout. However, when coerce_parameters_impl changes a parameter during that phase, the new value is not persisted.

In addition, coerce_parameters_impl is also called during "Library#refresh" as the ticket requests. In this case, changing the parameter value in coerce_parameters_impl will change it persistently.

klayoutmatthias added a commit that referenced this issue May 23, 2022
* WIP: some convenience (self.param=() for Ruby PCell impl), a bug fix (crash on call of pcell_parameter on wrong cell), update of tests

* Implemented solution for #1079 (refresh calls coerce_parameters)

* Basic.CIRCLE modified such that coerce_parameters_impl also catches the case of a programmatic change of actual_radius and this function will update radius and the handle accordingly

* Modified Basic PCells such that they work with coerce_parameters also if generated programmatically

* Added tests
klayoutmatthias added a commit that referenced this issue May 23, 2022
* WIP: some convenience (self.param=() for Ruby PCell impl), a bug fix (crash on call of pcell_parameter on wrong cell), update of tests

* Implemented solution for #1079 (refresh calls coerce_parameters)

* Basic.CIRCLE modified such that coerce_parameters_impl also catches the case of a programmatic change of actual_radius and this function will update radius and the handle accordingly

* Modified Basic PCells such that they work with coerce_parameters also if generated programmatically

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

No branches or pull requests

1 participant