The DRC rules require different spacings for two single contacts and an arrayed contacts. For example, when there are only two V1 vias, the spacing is 0.21. If the vias form an 4x4 array, the spacing should be 0.25 instead.
In the technology file, we can create symbolic contacts which can be called when you press "o" ( or use menu "create Contacts..."). But the spacings can't change if rows and columns are > 4. Although the user can change the pitch manually, it's a little tedious.
So we want to change the definition of the symbolic contacts to make spacing change automatically. In the spacingRules (one subclass of physicalRules class) we defined "viaSpacing "V1" list(4 0.25 0.25)". But it doesn't work. We can write skill codes to do this, but that seems overkill.
Dose anybody know a simple way to modify the technology file to make it?
Can you say which version of the tools you're using? It's quite important for this question. I'm guessing IC5141, but I don't want to spend a lot of time explaining it for one release only to find that actually you're using a different one...
In reply to Andrew Beckett:
You're quite right; we are using IC5141_usr6. Maybe too old, but we can only use this one.
In reply to Howel:
In reply to sPoK:
And for Howel's IC5141 question, you probably need to be using cdsVia vias rather than the simple symbolic contacts (I didn't have a chance to test this, I'm afraid).
In reply to dmay:
I remember experimenting with this constraint earlier, it has a limitation on number of adjacent via cuts, there's no point setting numcuts above 8 since every center via can be surrounded with max 8 vias so spacing is increased already at 3x3 via matrix which I don't want.