-
Notifications
You must be signed in to change notification settings - Fork 181
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
DRC enforcement in PDKs #1389
Comments
most PDKs have a fixed via size and spacing (or gap), so they could be added as constants in having a good way to capture DRC rules in a PDK would be useful, at the moment we only do that for klayout DRC generation |
The idea was not only about vias, just as an example where the DRC fixes only one dimension and the other one is within certain limits. |
That's what we do at Princeton we put rules like VIA1_MIN_SPACING and you can call it in scripts |
See #1391 for a way to dynamically size vias given some rules (which could be set to DRC) |
This only works if your foundry has minimum sizing, and not fixed sizing of course |
Yeah, I'm mostly thinking of components which we restrict in the PDK to certain sizes - if we want to generate a vía which is too small or to large we directly get an error while designing. I mean, if we know that there's certain limits (for visa, metal widths, ...) Why not enforce them already at the PDK level? We don't need to be able to generate a vía which is larger than possible? |
I think this could get to be a rat's nest though... I also like the idea of using DRC values defined as constants in the process of creating a component. We sometimes do things like this too... Then I think it is useful to have a quick way to run DRC, that can be run as a part of your PDK's tests, but I think it is better to have separation of concerns here... e.g. Verification runs separate from Layout. That said, I think it's perfectly valid if you want to add warnings or validation like this within your PDK's implementation of its components. Components wrapped with the |
I'll mark this as close, one can define values through PDK constants |
Would there be a way to declare minimum and maximum values in PDKs?
For example for the vias gdsfactory/components/via.py it would be nice to define in the PDK minimum and maximum widths to enforce at least some DRC rules already at the design stage.
Also it would be nice to have a way to fix certain parameters, e.g. fix the width for a certain class of vias but not the length.
Could we do this function definition in the PDK which offers a reduced set of parameters, checks the remaining parameters and returns an initialized version of the Component? Or is there a better way?
@joamatab
The text was updated successfully, but these errors were encountered: