Derek Hines-Mohrman
02/26/2022, 10:20 PMsky130_fd_sc_hd__clkbuf_8
in the first circuit, and extr_sky130_fd_sc_hd__clkbuf_8
in the second circuit. These should be equivalent, but netgen treats extr_sky130_fd_sc_hd__clkbuf_8
as an "unmatched subcell" and flattens it. I believe this is why lvs fails in this case.Tim Edwards
02/27/2022, 1:27 AMequate
command that forces a pairing. I have dealt with the problem you mention above, for the case where magic pulls an entire GDS file and then prefixes all of its contents. I have a good example of how to do this, if I could find where I put it. The idea is to add something like this to the LVS setup file:
set cells1 [cells list -all -circuit1]
set cells2 [cells list -all -circuit2]
foreach cell $cells1 {
if {[lsearch $cells2 extr_$cell] >= 0} {
equate classes "-circuit1 $cell" "-circuit2 extr_$cell"
}
}
foreach cell $cells2 {
if {[lsearch $cells1 extr_$cell] >= 0} {
equate classes "-circuit1 extr_$cell" "-circuit2 $cell"
}
}
Doing it in both directions means that you don't need to worry about whether it was the first or the second netlist that adds the prefix to the names.
Now, note that if you have circuits that have mismatched names, the matching algorithm will simply say that it couldn't find a matching cell in the opposing netlist, and then it will flatten the cells with unmatched names on both sides. So having unmatched cell names will not, in and of itself, cause an LVS failure. But it will make the output messy if there is an actual LVS error, because you'll get an output with lots of transistor connection errors, instead of standard cell connection errors.Derek Hines-Mohrman
02/27/2022, 2:07 AMsky130_fd_sc_hd__clkbuf_8
are black boxes. Since the black boxes cannot be flattened, that helps explain the original issue I think.
But even with the names matching, lvs still fails. I think this is because with the std cells as black boxes, there is no way for it to figure out the different port order.
Should those std cells (in my original spice netlist) be black boxes, or do I also need to add definitions for those down the transistor level? Maybe I need to set some Xschem setting before generating the original netlist?Tim Edwards
02/27/2022, 2:59 PMsky130_fd_sc_hd.spice
library from the PDK. That way, both the layout and the schematic will represent the circuit down to the transistor level. The port order of the xschem symbols from the digital library match the port order of the SPICE library in the PDK.Mitch Bailey
02/27/2022, 3:23 PMDerek Hines-Mohrman
02/27/2022, 5:13 PMsky130_fd_sc_hd.spice
library to my original netlist and that fixed it! LVS now appears to work.Linen is a search-engine friendly community platform. We offer integrations with existing Slack/Discord communities and make those conversations Google-searchable.
Powered by