magic
magic copied to clipboard
How to blackbox a specific cell in a gds for drc?
I couldn't figure out how to replace a cell in a gds by its lef/maglef view - even then I am not sure if that's sufficient . This happens with sram cells in sky130. I was intending to open this a long time ago but I keep forgetting so I am opening this now in the hopes that there is a known method. If needed, I can provide an example.
@kareefardi : There are multiple ways to do this.
(1) Pre-load the maglef view of the SRAM, then read GDS with the gds noduplicates true option set.
(2) Read GDS normally, then do cellname filepath <sram_cellname> <path_to_maglef_view> and flush <sram_cellname>
(edit: following suggestion probably doesn't work for DRC but can be used for LVS).
@kareefardi After gds read, you can also use
load $cell -dereference
property LEFview true
where $cell is the name of the cell that you want to abstract. You can use this with the SRAM macros and also with cells that normally aren't extracted because they don't contain devices. For example, inductors, fill cells, and tap cells.
With this, you don't have to worry about whether or not the maglef view is available or where it is located.
@d-m-bailey : It's important to make sure that if you're doing this for the purpose of avoiding running DRC on a specific problematic cell, that the cell you replace it with is DRC clean. "property LEFview true" will force any cell to be considered abstract, which is good for the purpose of black-boxing it for LVS, but it isn't necessarily going to do anything for DRC. There is no concept in magic of a "black box" for DRC. DRC will be run on everything. The trick for working around cells like SRAM which violate all sorts of standard rules and have their own special rules for the same layers is to have an abstract layout that is DRC clean. Generally speaking, if you have a LEF view that has all the contents of the cell (except the pins) ripped out and replaced by large areas of obstruction, that works well for getting a cell to show as DRC clean.
@RTimothyEdwards Thanks for the clarification. Accordingly, my suggestion works for LVS but not for DRC. With property LEFview true, it appears that connectivity extraction in preformed on all layers (but maybe not hierarchically), but devices and subcells are not recognized.