Mitch Bailey
10/18/2021, 5:06 PMchip_io
LVS. I don't get the segfault on the same data when I use the native netgen (with a few unrelated changes). I'm thinking that the problem may be in the spice libraries. This is the script that I'm running.
readnet spice $::env(PDK_ROOT)/sky130A/libs.ref/sky130_fd_sc_hd/spice/sky130_fd_sc_hd.spice 1
readnet spice $::env(PDK_ROOT)/sky130A/libs.ref/sky130_fd_io/spice/sky130_ef_io.spice 1
readnet spice $::env(PDK_ROOT)/sky130A/libs.ref/sky130_fd_io/spice/sky130_fd_io.spice 1
lvs {chip_io/runs/cvc/results/magic/chip_io.gds.spice chip_io} {../verilog/gl/chip_io.v chip_io} $::env(PDK_ROOT)/sky130A/libs.tech/netgen/sky130A_setup.tcl chip_io/runs/cvc/results/lvs/chip_io.lvs.gds.log -json
From previous discussions, I know that this is not the canonical way to combine netlists, but it appears to work. One problem that I'm noticing, is that the readnet
command outputs are not logged anywhere. Is there a way to combine those with the LVS log output?
Reading the sky130_fd_io.spice
file, gives the following error message.
Parameter list mismatch in sky130_fd_io__signal_5_sym_hv_local_5termclamp_q0: Not enough parameters in call!
line number 1824 = 'Xclamp_q0 VSSD VDDIO VSSD VDDIO PAD sky130_fd_io__signal_5_sym_hv_local_5term'
However, this does not cause a fatal error, and LVS begins. Is there anyway to have netgen refuse to process files with errors? This may be what's causing the segfault in the initial FlattenUnmatched
. I'll fix the cdl and report what happens.
You can create the extracted netlist by running flow.tcl -design chip_io -lvs -tag cvc -gds ../gds/chip_io.gds -net /dev/null
in the caravel/openlane
directory in docker.