|  | puts stdout "Sourcing design .magicrc for technology sky130A ..." | 
|  |  | 
|  | # 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 | 
|  | # Change this to a fixed number for repeatable behavior with GDS writes | 
|  | # e.g., "random seed 12345" | 
|  | catch {random seed} | 
|  |  | 
|  | # Allow override of PDK path from environment variable PDKPATH | 
|  | if {[catch {set PDKPATH $env(PDKPATH)}]} { | 
|  | set PDKPATH "~/skywater/pdk/skywater130/sky130A" | 
|  | } | 
|  |  | 
|  | # loading technology | 
|  | tech load $PDKPATH/libs.tech/magic/sky130A.tech | 
|  |  | 
|  | # load device generator | 
|  | source $PDKPATH/libs.tech/magic/sky130A.tcl | 
|  |  | 
|  | # load bind keys (optional) | 
|  | # source $PDKPATH/libs.tech/magic/sky130A-BindKeys | 
|  |  | 
|  | # set units to lambda grid | 
|  | snap lambda | 
|  |  | 
|  | # set sky130 standard power, ground, and substrate names | 
|  | set VDD VPWR | 
|  | set GND VGND | 
|  | set SUB VSUBS | 
|  |  | 
|  | # Allow override of type of magic library views used, "mag" or "maglef", | 
|  | # from environment variable MAGTYPE | 
|  |  | 
|  | if {[catch {set MAGTYPE $env(MAGTYPE)}]} { | 
|  | set MAGTYPE mag | 
|  | } | 
|  |  | 
|  | # add path to reference cells | 
|  | if {[file isdir ${PDKPATH}/libs.ref/${MAGTYPE}]} { | 
|  | addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_pr | 
|  | addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_io | 
|  | addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hd | 
|  | addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hdll | 
|  | addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hs | 
|  | addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hvl | 
|  | addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_lp | 
|  | addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_ls | 
|  | addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_ms | 
|  | addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_osu_sc | 
|  | addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_osu_sc_t18 | 
|  | addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_ml_xx_hd | 
|  | addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_sram_macros | 
|  | } else { | 
|  | addpath ${PDKPATH}/libs.ref/sky130_fd_pr/${MAGTYPE} | 
|  | addpath ${PDKPATH}/libs.ref/sky130_fd_io/${MAGTYPE} | 
|  | addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hd/${MAGTYPE} | 
|  | addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hdll/${MAGTYPE} | 
|  | addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hs/${MAGTYPE} | 
|  | addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hvl/${MAGTYPE} | 
|  | addpath ${PDKPATH}/libs.ref/sky130_fd_sc_lp/${MAGTYPE} | 
|  | addpath ${PDKPATH}/libs.ref/sky130_fd_sc_ls/${MAGTYPE} | 
|  | addpath ${PDKPATH}/libs.ref/sky130_fd_sc_ms/${MAGTYPE} | 
|  | addpath ${PDKPATH}/libs.ref/sky130_osu_sc/${MAGTYPE} | 
|  | addpath ${PDKPATH}/libs.ref/sky130_osu_sc_t18/${MAGTYPE} | 
|  | addpath ${PDKPATH}/libs.ref/sky130_ml_xx_hd/${MAGTYPE} | 
|  | addpath ${PDKPATH}/libs.ref/sky130_sram_macros/${MAGTYPE} | 
|  | } | 
|  |  | 
|  | # 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} |