Hi, the foundry's DRC deck includes a minimum-area rule for all the metal layers. I would like to modify it to ignore this rule if the metal polygon has text on it (text indicates that the metal is a point to which higher levels of the hierarchy might connect). This way I can run DRC on subcells that export less-than-min-area metal as ports. At the moment running DRC on these subcells produces a huge pile of spurious errors which obfuscate any important violations.
Does anybody know how to do this?
Of course I will be sure to run DRC with the unmodified deck before tapeout.
Copy the DRC deck to a different directory and modify the minimum-area rules to a smaller minimum-area value.
For the DRC run, modify the DRC deck path.
No, that will reduce the min-area requirement for all polygons, not just for polygons with text on them.
If a piece of metal has no text on it and is below the foundry's min-area requirement, I want to get an error since that piece of metal isn't going to be extended by polygons in any parent cell (my LVS tool enforces this). So I want to know about that and get a single error when I run DRC on the cell, rather than wait until I run DRC at the top-level and get a billion violations, one for every instance of the cell and with the hierarchy flattened.
I don't know what DRC you use, but I've made use of the
get_texted() function in Diva, back in the day, for personal
"ignore" rules logic. I haven't had the "pleasure" of hacking
Assura decks or using other engines.
The alternative, I suppose, is to create some hierarchy which
superimposes adequate connected metal, and then remove
the instance leaving the polygons as-checked. If you have
the discipline yourself, and aren't being disciplined externally.
Unfortunately looking on that layer isn't enough. Nets cross layers. For example, if you have a VIA polygon then the polygons on the metal layer above and below it are part of the same net.
This might sound perverse, but it happens a lot with supply rails -- they span many layers of metal but often the text is only on one of those layers.