I'm trying to run LVS with klayout on a simple inverter from the library. I use the run_lvs.py scrip...
m
I'm trying to run LVS with klayout on a simple inverter from the library. I use the run_lvs.py script on this gds and schematic file (.sp), but it doesn't seem to match. The extracted netlist looks correct though! I also tried explicitly naming the well the same thing (VNB) but that didn't fix it either. For some reason nothing matches, not pins, devices, nothing.
🌍 1
ah hah, another sky130 scaling problem. The extracted dimensions were 1e6 off from the spice dimensions.
t
Are you sure? What you posted above had
w=1
from klayout and
w=1e+6u
from magic, which is the same thing (
u=1e-6
multipler in SPICE). (BTW, I recently rewrote magic's netlist output routine to avoid the fixed use of the
u
multiplier, but the old notation is stuck in the netlists that are in the PDK that were generated by magic.)
m
Yeah, I stared at it for a long time. They seemed to match. However, setting the scaling on in the scripts worked.
I'm wondering if it scaled after parsing the netlists or something...
If you want to try it, here's the entire setup:
Copy code
cd OpenLane
make mount
klayout -b -r /openlane/pdks/sky130A/libs.tech/klayout/lvs/sky130.lvs -rd input=sky130_fd_sc_hd__inv_1.gds -rd report=sky130_fd_sc_hd__inv_1.lvsdb -rd schematic=sky130_fd_sc_hd__inv_1.sp -rd target_netlist=extracted.sp -rd scale=true
🌍 1
(with the two files above)