It looks like you're new here. If you want to get involved, click one of these buttons!
Hi all,
I'm trying to run a DRC on polygon widths using the command width.
I found that by using this code: out = in.drc(width<value.um) all the edge pairs that are below value are correctly returned
but the way around: out = in.drc(width>value.um), instead, doesn't return any edge pairs above value. Am I doing something wrong?
Second question, is it possible to get separate returns for vertical edge pairs and horizontal edge pairs? Basically I'd like to run dr checks on polygons' lengths and widths separately. One rule that returns the width check (y-direction) and another rule that returns the length check (x-direction)
Thank you
Lorenzo
Comments
Hi sir,
https://www.klayout.de/forum/discussion/2428/how-to-read-drc-min-value#latest
Maybe you could check with this case for min. value of DRC
@mastrolorenzo The ">" operator does not return edge pairs as there is no consistent definition of "opposite edge". The details are explained here: https://www.klayout.de/doc-qt5/about/drc_ref_global.html#width
You can separate the edges after the check using "with_angle" (https://www.klayout.de/doc-qt5/about/drc_ref_layer.html#k_139).
If you're dealing with rectangles only, "with_bbox_width" and "with_bbox_height" (https://www.klayout.de/doc-qt5/about/drc_ref_layer.html#k_143) may be easier to use in general.
Matthias
thank you for your quick reply. I'll try the different solutions you proposed
Lorenzo
@Matthias I hadan idea for the max_width.
first I look for edge-pairs below max value, the result is converted in polygons and then removed from the collection of all polygons:
error =layer_1.not( layer_1.drc(value.micron>=width(*args)).with_angle(0).polygons)
@mastrolorenzo
for the max trace width ,
What the issue in process (photo/plating/etch) would be density in your view isn't?
What my idea is ....sized -max width (that vaule should be provided by your product team)
maybe that would be 50um.
such as...
trace=input(70,0)
trace.sized(-25.um).sized(25.um)
after this simply code , you will get what the trace width more than 50.um.
Or do you have another idea for that?
@jiunnweiyeh for me it's a design rule check, the design is given and I need to look for violations. The code I implemented seems to work. Another option is to look at layer_1.drc(VAL2.micron>=width(*args)>value.micron).with_angle(0), with VAL2 an arbitrary huge vale. this returns single edges though