# DRC isolated single vias

I am trying to write a design rule check for isolated single vias.
Here I catch all the single vias between m1 and m2:

When I look for those single vias that are isolated, I get the vias that are NOT isolated:

How do I correctly catch the single vias that does not have any nearby vias?

## Comments

• You might have to go at it backwards, like make a
derived layer that is "not(grow(via, lonelinessCriterion))"
(excuse the lack of syntax-clue) and then do a dimension
check on all those "holes" looking for anything that's
minimum-area (not minimum dimension as one axis
could be that, and still pass).

That's my initial thought anyhow.

• edited May 2021

I have found a solution to this based upon your feedback.
Actually it was a much simpler solution.

To find the isolated vias, I size up all vias so non isolated vias overlap, and then only select those that do not overlap.
Lastly I select the single vias from the set of isolated vias.

``````report("Output reported")

metal1 = input(16)    #The metal layer below vias
via12 = input(17)     #The vias
metal2 = input(18)  #The metal layer above the vias

m12 =metal1 & metal2  #I get the area of overlap between m1 and m2

singleV12 = m12.covering(via12, 1..1) & via12 #Find all single vias covered by m1 and also m2

isoDistance = 25.0.um #The isolation distance
iso12 = via12.sized(isoDistance/2) #All vias are sized up by half of the isolation distance. Now all vias closer to eachother than 25 um will have an overlapping iso layer

singleIsoV12 = iso12.covering(via12, 1..1) & singleV12 #All the isolated vias will not create overlapping layers, and will therefore be alone. Then only the single vias are selected from this

singleIsoV12.output(100, "Isolated single via warning! Single via distance to other vias should be less than 25 um.")
``````
• @MartinKP You discovered a new feature of 0.27

Until 0.26, there was no covering and no count selector. I have added this just to make single-via discovery easier

Matthias

• @Matthias the covering feature is really useful! Thanks for adding it

Sign In or Register to comment.