mirror of https://github.com/lnis-uofu/SOFA.git
[Actions] Merged Caravel with Klayout
This commit is contained in:
parent
2f2b301395
commit
3ecd96596f
|
@ -16,19 +16,29 @@ AddLine="use fpga_top fpga_top_uut\n"\
|
||||||
"transform 1 0 0 0 1 0\n"\
|
"transform 1 0 0 0 1 0\n"\
|
||||||
"box 0 0 2500 3000"
|
"box 0 0 2500 3000"
|
||||||
sed -i "s/<< properties >>/${AddLine}\n<< properties >>/" ./mag/user_project_wrapper.mag
|
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 \
|
MAGTYPE=mag \
|
||||||
magic -rcfile ${PDK_ROOT}/sky130A/libs.tech/magic/current/sky130A.magicrc \
|
magic -rcfile ${PDK_ROOT}/sky130A/libs.tech/magic/current/sky130A.magicrc \
|
||||||
-noconsole -dnull \
|
-noconsole -dnull \
|
||||||
../SOFA-Chips/SCRIPT/merge_fpga_top.tcl </dev/null | tee magic_drc.log
|
../SOFA-Chips/SCRIPT/merge_fpga_top.tcl </dev/null | tee magic_drc.log
|
||||||
echo "[Info] merge fpga-top"
|
echo "[Info] merge fpga-top"
|
||||||
|
|
||||||
# = = = = = = = = = = = = = Build Caravel = = = = = = = = = = = = = = = = = = =
|
# = = = = = = = = = = Build Caravel with Klayout = = = = = = = = = = = = = = =
|
||||||
for i in {1..30}; do sleep 1m; echo "Still shipping"; done & # 30 min timeout for merge GDS
|
klayout -r ../SOFA-Chips/SCRIPT/merge_caravel_klayout.py -zz
|
||||||
make ship
|
echo "[Info] Finished shiping chip with Klayout"
|
||||||
kill %1
|
rm -rf ./gds/fpga_top*
|
||||||
echo "[Info] Finished shiping chip"
|
rm -rf ./gds/user_project_wrapper_empty.gds
|
||||||
rm -f gds/caravel.old.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 = = = = = = = = = = = = = =
|
# = = = = = = = = = = = = = Perform Open MPW Checks = = = = = = = = = = = = = =
|
||||||
python3 /usr/local/bin/open_mpw_prechecker.py \
|
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 \
|
python3 ../SOFA-Chips/SCRIPT/magic_drc_to_rdb.py \
|
||||||
-magic_drc_in ./checks/caravel.magic.drc
|
-magic_drc_in ./checks/caravel.magic.drc
|
||||||
-rdb_out ./checks/caravel.magic.rdb
|
-rdb_out ./checks/caravel.magic.rdb
|
||||||
fi
|
|
||||||
echo "[Info] Converted errors in RDB format"
|
echo "[Info] Converted errors in RDB format"
|
||||||
|
fi
|
||||||
|
|
||||||
# = = = = = = = Clean up repo = = = = = = = = = = = = = = = = = = =
|
# = = = = = = = Clean up repo = = = = = = = = = = = = = = = = = = =
|
||||||
rm -rf user_project_wrapper.mag
|
rm -rf user_project_wrapper.mag
|
||||||
|
|
|
@ -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")
|
Loading…
Reference in New Issue