mirror of https://github.com/efabless/caravel.git
47 lines
1.3 KiB
Bash
47 lines
1.3 KiB
Bash
|
#!/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
|