blob: 6249e403ff4da73aa66bc841c1bf5bffc39516f1 [file] [log] [blame]
puts stdout "Sourcing design .magicrc for technology EFS8A ..."
# Put grid on 0.005 pitch. This is important, as some commands don't
# rescale the grid automatically (such as lef read?).
set scalefac [tech lambda]
if {[lindex $scalefac 1] < 2} {
scalegrid 1 2
}
# drc off
drc euclidean on
#set PDKPATH "~/projects/efabless/tech/SkyWater/EFS8A"
# loading technology
#tech load $PDKPATH/libs.tech/magic/EFS8A.tech
tech load ../../char/techfiles/sky130A.tech
# load device generator
#source $PDKPATH/libs.tech/magic/EFS8A.tcl
# load bind keys (optional)
# source $PDKPATH/libs.tech/magic/EFS8A-BindKeys
# set units to lambda grid
snap internal
# add path to reference cells
#set MAGPATH "${PDKPATH}/libs.ref/mag"
#addpath ${MAGPATH}/primdev
#addpath ${MAGPATH}/s8fmlt
#addpath ${MAGPATH}/s8iom0
#addpath ${MAGPATH}/scs8hd
#addpath ${MAGPATH}/scs8hdll
#addpath ${MAGPATH}/scs8hvl
#addpath ${MAGPATH}/scs8hs
#addpath ${MAGPATH}/scs8ms
#addpath ${MAGPATH}/scs8ls
#addpath ${MAGPATH}/scs8lp
# add path to GDS cells
# add path to IP from catalog. This procedure defined in the PDK script.
catch {magic::query_mylib_ip}
# add path to local IP from user design space. Defined in the PDK script.
catch {magic::query_my_projects}
macro Shift_G "grid 74"
macro XK_Left "scroll l .1 w"
macro Shift_XK_Left "scroll l 1 w"
macro Control_XK_Left "box grow w 1"
macro Control_Shift_XK_Left "box shrink e 1"
macro XK_Right "scroll r .1 w"
macro Shift_XK_Right "scroll r 1 w"
macro Control_XK_Right "box grow e 1"
macro Control_Shift_XK_Right "box shrink w 1"
macro XK_Up "scroll u .1 w"
macro Shift_XK_Up "scroll u 1 w"
macro Control_XK_Up "box grow n 1"
macro Control_Shift_XK_Up "box shrink s 1"
macro XK_Down "scroll d .1 w"
macro Shift_XK_Down "scroll d 1 w"
macro Control_XK_Down "box grow s 1"
macro Control_Shift_XK_Down "box shrink n 1"
macro XK_Pointer_Button4 "scroll u .05 w"
macro XK_Pointer_Button5 "scroll d .05 w"
macro . "history redo -1"
macro XK_L "select less area {ndif pdif nwell poly}"
macro XK_K "select less area nwell"
macro XK_J "select less area {m1 lic}"
macro XK_H "select less area li1"
macro Control_Shift_XK_X "rotate"
macro Shift_XK_Pointer_Button4 "stretch N 74"
macro Shift_XK_Pointer_Button5 "stretch S 74"
macro Control_XK_Pointer_Button4 "stretch N 34"
macro Control_XK_Pointer_Button5 "stretch S 34"
macro Control_Shift_XK_Q "stretch W 88"
macro Control_Shift_XK_R "stretch E 88"
macro Control_Shift_XK_W "stretch N 28"
macro Control_Shift_XK_E "stretch N 4"
#macro Control_Shift_XK_W "stretch S 6"
#macro Control_Shift_XK_E "stretch S 8"
macro Control_Shift_XK_Pointer_Button4 "stretch N 17"
macro Control_Shift_XK_Pointer_Button5 "stretch S 17"
macro Control_Shift_XK_G "select area {m1 lic}"
macro Control_Shift_XK_F "select area {poly polycont}"
macro Control_Shift_XK_D "select area {ndc li1}"
macro Control_Shift_XK_S "select area ntrans"
macro Shift_D "select clear; move S 10; paint m1c"
macro Shift_F "select clear; move N 10; paint m1c"
macro Shift_B "box height 1.0um; move S 1.655um; select area; erase; select clear; move N 1um; select area; move S 1um; select clear; box height 0.26um; move S 4.35um; select area; erase; select clear; move S 0.655um; box height 0.655um; select area; move N 0.26um; select clear; box height 20um; select area; move S 0.26um"
macro Shift_N "box height 1.74um; move S 2.395um; select area; erase; select clear; move N 1.74um; select area; move S 1.74um; select clear; box height 0.48um; move S 3.61um; select area; erase; select clear; move S 0.655um; box height 0.655um; select area; move N 0.48um; select clear; box height 20um; select area; move S 0.48um"