mirror of https://github.com/efabless/caravel.git
108 lines
2.5 KiB
Bash
108 lines
2.5 KiB
Bash
|
#!/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"
|
||
|
magic -d OGL -rcfile ${PDK_ROOT}/${PDK}/libs.tech/magic/${PDK}.magicrc << EOF
|
||
|
load chip_io
|
||
|
select top cell
|
||
|
lef write
|
||
|
quit -noprompt
|
||
|
EOF
|
||
|
|
||
|
# Generate LEF of chip_io_alt
|
||
|
echo "Generating LEF view of chip_io_alt"
|
||
|
magic -d OGL -rcfile ${PDK_ROOT}/${PDK}/libs.tech/magic/${PDK}.magicrc << EOF
|
||
|
load chip_io_alt
|
||
|
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!"
|