I am trying to write a SKILL routine that increase and descrease number of vias with bindkeys. I got the routine to work with stdVia but I am running into some problems with customVias. In stdVia, you can retrieve cutspacing by using the following command:
which outputs ("cutSpacing" (0.07 0.07)) along with other via information
However, when I use the same command on a 2x2 customVia, there is no cutSpacing information. I noticed this only happens on a 2x2 via, when a via is 3x3 or bigger the cutSpacing information does appear under overrideParams.
I am wondering if anyone knows why this is the case and if there are other ways I can retrieve the spacing information.
PS I am using IC6.1.5-64b.500.12
With a custom via, the exact parameter is dependent upon the implementation of the custom via. In the one I tried, the parameters are called yCutSpacing and xCutSpacing - and are only set in overrideParams if they've explicitly been altered (i.e. increasing the rows and columns doesn't alter them - I don't really see why it would know; that intelligence would normally be built into the pcell, I'd have thought).
So you might be able to work it out from other technology constraints - but it is likely to be very dependent upon the implementation of the custom via.
In reply to Andrew Beckett:
Thanks again for your
explanations. As you have mentioned, the
customVia pcell has a lot of intelligence built in already, for example, the
justification is already built in whereas std via the justification is done
with originOffset so I didn't need to do much to get my code working besides
viaSpacing, which I managed to pull off the tech file.
If I want to learn more about customVia, can you point me to
the documentation on how to impletment it?
I tried to search Cadence documentation with "customVia"
without much of the luck. I have also
went over the tech file and again all the implementation is pretty standard
like viaSpacing, overlap, etc. I am
curious on how thing like justification is implemented on customVia.