2022-10-11 10:39:03 -05:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
#-------------------------------------------------------------------
|
|
|
|
# chip_io_prep.sh --
|
|
|
|
#
|
|
|
|
# Prepare the GDS, LEF, and DEF views of chip_io and chip_io_alt
|
|
|
|
# (the caravel and caravan padframes)
|
|
|
|
#
|
|
|
|
# Run this from the caravel/mag/ directory after modifying the
|
|
|
|
# magic layout.
|
|
|
|
#
|
|
|
|
# Written by Tim Edwards for MPW-7 10/11/2022
|
|
|
|
#-------------------------------------------------------------------
|
|
|
|
|
|
|
|
echo ${PDK_ROOT:=/usr/share/pdk} > /dev/null
|
|
|
|
echo ${PDK:=sky130A} > /dev/null
|
|
|
|
|
|
|
|
# Generate DEF of chip_io
|
|
|
|
echo "Generating DEF view of chip_io"
|
|
|
|
magic -d OGL -rcfile ${PDK_ROOT}/${PDK}/libs.tech/magic/${PDK}.magicrc << EOF
|
|
|
|
load chip_io
|
|
|
|
property flatten true
|
|
|
|
flatten -doproperty chip_io_flat
|
|
|
|
load chip_io_flat
|
|
|
|
cellname delete chip_io
|
|
|
|
cellname rename chip_io_flat chip_io
|
|
|
|
select top cell
|
|
|
|
extract do local
|
|
|
|
extract no all
|
|
|
|
extract all
|
|
|
|
def write chip_io
|
|
|
|
quit -noprompt
|
|
|
|
EOF
|
|
|
|
|
|
|
|
rm *.ext
|
|
|
|
|
|
|
|
# Generate DEF of chip_io_alt
|
|
|
|
echo "Generating DEF view of chip_io_alt"
|
|
|
|
magic -d OGL -rcfile ${PDK_ROOT}/${PDK}/libs.tech/magic/${PDK}.magicrc << EOF
|
|
|
|
load chip_io_alt
|
|
|
|
property flatten true
|
|
|
|
flatten -doproperty chip_io_alt_flat
|
|
|
|
load chip_io_alt_flat
|
|
|
|
cellname delete chip_io_alt
|
|
|
|
cellname rename chip_io_alt_flat chip_io_alt
|
|
|
|
select top cell
|
|
|
|
extract do local
|
|
|
|
extract no all
|
|
|
|
extract all
|
|
|
|
def write chip_io_alt
|
|
|
|
quit -noprompt
|
|
|
|
EOF
|
|
|
|
|
|
|
|
rm *.ext
|
|
|
|
|
|
|
|
# Generate GDS of chip_io
|
|
|
|
echo "Generating GDS view of chip_io"
|
|
|
|
magic -d OGL -rcfile ${PDK_ROOT}/${PDK}/libs.tech/magic/${PDK}.magicrc << EOF
|
|
|
|
load chip_io -dereference
|
|
|
|
gds compress 9
|
|
|
|
cif *hier write disable
|
|
|
|
cif *array write disable
|
|
|
|
gds write chip_io
|
|
|
|
quit -noprompt
|
|
|
|
EOF
|
|
|
|
|
|
|
|
# Generate GDS of chip_io_alt
|
|
|
|
echo "Generating GDS view of chip_io_alt"
|
|
|
|
magic -d OGL -rcfile ${PDK_ROOT}/${PDK}/libs.tech/magic/${PDK}.magicrc << EOF
|
|
|
|
load chip_io_alt -dereference
|
|
|
|
gds compress 9
|
|
|
|
cif *hier write disable
|
|
|
|
cif *array write disable
|
|
|
|
gds write chip_io_alt
|
|
|
|
quit -noprompt
|
|
|
|
EOF
|
|
|
|
|
|
|
|
# Generate LEF of chip_io
|
|
|
|
echo "Generating LEF view of chip_io"
|
2022-10-15 09:31:35 -05:00
|
|
|
export MAGTYPE=maglef
|
2022-10-11 10:39:03 -05:00
|
|
|
magic -d OGL -rcfile ${PDK_ROOT}/${PDK}/libs.tech/magic/${PDK}.magicrc << EOF
|
2022-10-15 09:31:35 -05:00
|
|
|
# To do: Read abstract views of subcells
|
|
|
|
load chip_io -dereference
|
2022-10-11 10:39:03 -05:00
|
|
|
select top cell
|
|
|
|
lef write
|
|
|
|
quit -noprompt
|
|
|
|
EOF
|
|
|
|
|
|
|
|
# Generate LEF of chip_io_alt
|
|
|
|
echo "Generating LEF view of chip_io_alt"
|
2022-10-15 09:31:35 -05:00
|
|
|
export MAGTYPE=maglef
|
2022-10-11 10:39:03 -05:00
|
|
|
magic -d OGL -rcfile ${PDK_ROOT}/${PDK}/libs.tech/magic/${PDK}.magicrc << EOF
|
2022-10-15 09:31:35 -05:00
|
|
|
# To do: Read abstract views of subcells
|
|
|
|
load chip_io_alt -dereference
|
2022-10-11 10:39:03 -05:00
|
|
|
select top cell
|
|
|
|
lef write
|
|
|
|
quit -noprompt
|
|
|
|
EOF
|
|
|
|
|
|
|
|
# Move all generated files to their proper locations
|
|
|
|
|
|
|
|
echo "Moving generated files to destination directories"
|
|
|
|
mv chip_io.lef ../lef
|
|
|
|
mv chip_io.def ../def
|
|
|
|
mv chip_io.gds.gz ../gds
|
|
|
|
|
|
|
|
mv chip_io_alt.lef ../lef
|
|
|
|
mv chip_io_alt.def ../def
|
|
|
|
mv chip_io_alt.gds.gz ../gds
|
|
|
|
|
|
|
|
echo "Done!"
|