This may have been discussed before, but it looks ...
# magic
a
This may have been discussed before, but it looks like
ext2spice
doesn’t extract the fillers or cells without device. They exist in .ext but not in the resultant spice. Is there a solution for this or is it a known issue?
t
They are optimized out. In some cases, like the tap cell, the presence of the cell causes nets to get merged across pins (e.g., VPWR to VPB), which cannot be represented in SPICE without adding a device like a zero-ohm resistor (a feature which was added to magic recently, so in theory it could be done, but I haven't looked into it). There is a mode that would probably do what you want (ext2spice hierarchy off ; ext2spice subcircuit on) but I got a post yesterday about how that is broken, and now that's on my to-do list, too. As it stands, the sky130 setup for netgen tells netgen to ignore fill and tap cells, so that LVS works correctly.
a
I see, so currently with hierarchy off and subcircuit on, the spice written out is at the cell level, but the subckt definitions are missing so I cannot perform LVS. I can see the fillers and taps in spice. Do you mean this shouldn’t be the expected behavior?
I haven’t looked into the netgen setup. Right now with calibre LVS, I had to exclude welltap and filler cells when writing out the lvs netlist.
m
@User There are (at least) 2 ways to run LVS in openlane. One is the abstract level based on the maglef views. In this case, it is possible to compare fill cells and cells without devices (none of the lef based cells have devices). The other way is based on mag views (including gds import). In this case, as Tim mentioned, the cells are optimized out. netgen's setup file ignores the tap and fill cells based on the extraction type. If you are using calibre, you should be able to add
LVS FILTER sky130_fd_sc_hd__fill_1 SOURCE OPEN
without having to modify the netlists manually.
a
Thanks! That’s a cleaner way to go