[Actions] Merged Caravel with Klayout

This commit is contained in:
Ganesh Gore 2020-12-08 13:32:26 -07:00
parent 2f2b301395
commit 3ecd96596f
2 changed files with 45 additions and 8 deletions

View File

@ -16,19 +16,29 @@ AddLine="use fpga_top fpga_top_uut\n"\
"transform 1 0 0 0 1 0\n"\
"box 0 0 2500 3000"
sed -i "s/<< properties >>/${AddLine}\n<< properties >>/" ./mag/user_project_wrapper.mag
# Running magic to merge fpga_top
echo "[Info] Merged with user_project_wrapper"
# = = = Running magic to merge fpga_top with user_project_wrapper = = = = = = =
MAGTYPE=mag \
magic -rcfile ${PDK_ROOT}/sky130A/libs.tech/magic/current/sky130A.magicrc \
-noconsole -dnull \
../SOFA-Chips/SCRIPT/merge_fpga_top.tcl </dev/null | tee magic_drc.log
echo "[Info] merge fpga-top"
# = = = = = = = = = = = = = Build Caravel = = = = = = = = = = = = = = = = = = =
for i in {1..30}; do sleep 1m; echo "Still shipping"; done & # 30 min timeout for merge GDS
make ship
kill %1
echo "[Info] Finished shiping chip"
rm -f gds/caravel.old.gds
# = = = = = = = = = = Build Caravel with Klayout = = = = = = = = = = = = = = =
klayout -r ../SOFA-Chips/SCRIPT/merge_caravel_klayout.py -zz
echo "[Info] Finished shiping chip with Klayout"
rm -rf ./gds/fpga_top*
rm -rf ./gds/user_project_wrapper_empty.gds
rm -rf ./gds/user_proj_example.gds
mv ./gds/caravel_merged.gds ./gds/caravel.gds
# = = = = = = = = = Build Caravel with Magic = = = = = = = = = = = = = = = = =
# for i in {1..30}; do sleep 1m; echo "Still shipping"; done & # 30 min timeout for merge GDS
# make ship
# kill %1
# echo "[Info] Finished shiping chip with Magic "
# rm -f gds/caravel.old.gds
# = = = = = = = = = = = = = Perform Open MPW Checks = = = = = = = = = = = = = =
python3 /usr/local/bin/open_mpw_prechecker.py \
@ -41,8 +51,8 @@ if test -f "./checks/caravel.magic.drc"; then
python3 ../SOFA-Chips/SCRIPT/magic_drc_to_rdb.py \
-magic_drc_in ./checks/caravel.magic.drc
-rdb_out ./checks/caravel.magic.rdb
echo "[Info] Converted errors in RDB format"
fi
echo "[Info] Converted errors in RDB format"
# = = = = = = = Clean up repo = = = = = = = = = = = = = = = = = = =
rm -rf user_project_wrapper.mag

View File

@ -0,0 +1,27 @@
import pya
import sys
CARAVEL_GDS_PATH = "./gds/caravel.gds"
USER_GDS_PATH = "./gds/user_project_wrapper.gds"
# ly = pya.CellView.active().cell.layout
ly = pya.Layout()
ly.read(CARAVEL_GDS_PATH)
TOP = ly.top_cell()
x, y = 326.38500, 1382.01000
uWrap = ly.cell_by_name("user_project_wrapper")
for each in ly.top_cell().each_inst():
if "user_project_wrapper" in (each.cell.name):
x, y = each.dtrans.disp.x, each.dtrans.disp.y
print("Placing module at (%f,%f)" % (x, y))
ly.delete_cell(uWrap)
ly.read(USER_GDS_PATH)
tiles = ly.cell('user_project_wrapper')
TOP.insert(pya.DCellInstArray(tiles.cell_index(),
pya.DTrans(pya.DTrans.R0, pya.DPoint(x, y))))
ly.write("./gds/caravel_merged.gds")