| 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} | 
 |  | 
 | # Turn off the scale option on ext2spice or else it conflicts with the | 
 | # scale in the model files. | 
 | ext2spice scale off | 
 |  | 
 | # Allow override of PDK path from environment variable PDK_ROOT | 
 | if {[catch {set PDK_ROOT $env(PDK_ROOT)}]} { | 
 |     set PDK_ROOT /usr/local/share/pdk | 
 | } | 
 |  | 
 | # loading technology | 
 | tech load $PDK_ROOT/sky130A/libs.tech/magic/sky130A.tech | 
 |  | 
 | # load device generator | 
 | source $PDK_ROOT/sky130A/libs.tech/magic/sky130A.tcl | 
 |  | 
 | # load bind keys (optional) | 
 | # source $PDK_ROOT/sky130A/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 ${PDK_ROOT}/sky130A/libs.ref/${MAGTYPE}]} { | 
 |     addpath ${PDK_ROOT}/sky130A/libs.ref/${MAGTYPE}/sky130_fd_pr | 
 |     addpath ${PDK_ROOT}/sky130A/libs.ref/${MAGTYPE}/sky130_fd_io | 
 |     addpath ${PDK_ROOT}/sky130A/libs.ref/${MAGTYPE}/sky130_fd_sc_hd | 
 |     addpath ${PDK_ROOT}/sky130A/libs.ref/${MAGTYPE}/sky130_fd_sc_hdll | 
 |     addpath ${PDK_ROOT}/sky130A/libs.ref/${MAGTYPE}/sky130_fd_sc_hs | 
 |     addpath ${PDK_ROOT}/sky130A/libs.ref/${MAGTYPE}/sky130_fd_sc_hvl | 
 |     addpath ${PDK_ROOT}/sky130A/libs.ref/${MAGTYPE}/sky130_fd_sc_lp | 
 |     addpath ${PDK_ROOT}/sky130A/libs.ref/${MAGTYPE}/sky130_fd_sc_ls | 
 |     addpath ${PDK_ROOT}/sky130A/libs.ref/${MAGTYPE}/sky130_fd_sc_ms | 
 |     addpath ${PDK_ROOT}/sky130A/libs.ref/${MAGTYPE}/sky130_osu_sc | 
 |     addpath ${PDK_ROOT}/sky130A/libs.ref/${MAGTYPE}/sky130_osu_sc_t18 | 
 |     addpath ${PDK_ROOT}/sky130A/libs.ref/${MAGTYPE}/sky130_ml_xx_hd | 
 |     addpath ${PDK_ROOT}/sky130A/libs.ref/${MAGTYPE}/sky130_sram_macros | 
 | } else { | 
 |     addpath ${PDK_ROOT}/sky130A/libs.ref/sky130_fd_pr/${MAGTYPE} | 
 |     addpath ${PDK_ROOT}/sky130A/libs.ref/sky130_fd_io/${MAGTYPE} | 
 |     addpath ${PDK_ROOT}/sky130A/libs.ref/sky130_fd_sc_hd/${MAGTYPE} | 
 |     addpath ${PDK_ROOT}/sky130A/libs.ref/sky130_fd_sc_hdll/${MAGTYPE} | 
 |     addpath ${PDK_ROOT}/sky130A/libs.ref/sky130_fd_sc_hs/${MAGTYPE} | 
 |     addpath ${PDK_ROOT}/sky130A/libs.ref/sky130_fd_sc_hvl/${MAGTYPE} | 
 |     addpath ${PDK_ROOT}/sky130A/libs.ref/sky130_fd_sc_lp/${MAGTYPE} | 
 |     addpath ${PDK_ROOT}/sky130A/libs.ref/sky130_fd_sc_ls/${MAGTYPE} | 
 |     addpath ${PDK_ROOT}/sky130A/libs.ref/sky130_fd_sc_ms/${MAGTYPE} | 
 |     addpath ${PDK_ROOT}/sky130A/libs.ref/sky130_osu_sc/${MAGTYPE} | 
 |     addpath ${PDK_ROOT}/sky130A/libs.ref/sky130_osu_sc_t18/${MAGTYPE} | 
 |     addpath ${PDK_ROOT}/sky130A/libs.ref/sky130_ml_xx_hd/${MAGTYPE} | 
 |     addpath ${PDK_ROOT}/sky130A/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} |