caravel/xschem/run_simple_por_lvs.sh

47 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
#---------------------------------------------------------------------------
#
# Run LVS on the simple_por.
#
#---------------------------------------------------------------------------
echo ${PDK_ROOT:=/usr/share/pdk} > /dev/null
echo ${PDK:=sky130A} > /dev/null
# Extract full layout netlist
cd ../mag
if [ ! -f simple_por.spice ]; then
magic -dnull -noconsole -rcfile $PDK_ROOT/$PDK/libs.tech/magic/$PDK.magicrc << EOF
drc off
crashbackups stop
load simple_por
extract do local
extract all
ext2spice lvs
ext2spice
EOF
rm -f *.ext
fi
cd ../xschem
# Generate script for netgen
cat > netgen.tcl << EOF
# Load top level netlist
puts stdout "Reading layout netlist simple_por.spice"
set circuit1 [readnet spice ../mag/simple_por.spice]
puts stdout "Reading schematic netlist simple_por.spice"
set circuit2 [readnet spice simple_por.spice]
# Read additional subcircuits into the netlist of circuit2
puts stdout "Reading standard cell netlists"
readnet spice $PDK_ROOT/$PDK/libs.ref/sky130_fd_sc_hvl/spice/sky130_fd_sc_hvl.spice \$circuit2
# Run LVS
lvs "\$circuit1 simple_por" "\$circuit2 simple_por" $PDK_ROOT/$PDK/libs.tech/netgen/${PDK}_setup.tcl simple_por_comp.out
EOF
export NETGEN_COLUMNS=60
netgen -batch source netgen.tcl
rm netgen.tcl
# mv simple_por_comp.out ../signoff/
exit 0