How to check the minimum period?

Hi everyone,

I have a DRC question about polygon period.
I want to check if the period is greater than 5 um.
An error should be reported by the bottom two polygons.

But the period check does not seem to be a typical check of the DRC function.
I'm wondering if there's a way to solve this with the DRC function or Ruby script.

Thanks for your help.
JSS

Comments

  • Hi JSS,

    No, a period check is not a typical DRC check.

    However, there is a solution maybe. As a period check is basically a check between two outer edges, it can be implemented by the "enclosed" check. There is a problem though: this check needs two inputs. Usually they come from different layers.

    Intuitively you could use the same layer twice:

    layer = ... # some layer
    errors = layer.enclosed(layer, 5.um)
    

    This does not render the expected results, because every shape on the layer will only see itself as the closest neighbor and "enclosed" will just report zero enclosure always.

    There is a solution using the generic DRC feature: it allows specifying all "other" shapes as second input using the "foreign" keyword. You also need to turn off shielding using "transparent", because otherwise the measurement will not be performed through the opposite shape. I also recommend "projection" metrics, so you measure pitch perpendicular to the edges only:

    layer = ... # some layer
    errors = layer.drc(enclosed(foreign, transparent, projection) < 5.um)
    

    I think this is what you look for:

    Every situation renders two errors, because pitch is measure to the left once and to the right again.

    Matthias

  • Hi @Matthias,

    Thank you so much. This is exactly what I was looking for.

    JSS

Sign In or Register to comment.