### ### Source file sky130.magicrc ### Process this file with the m4 processor ### if {[info exists ::env(PDK_ROOT)]} { set PDK_ROOT $::env(PDK_ROOT) } else { shell echo "PDK_ROOT must be set!" quit } set TECH_ROOT ${PDK_ROOT}/sky130B/libs.tech/magic/*.magicrc set rc [glob -nocomplain $TECH_ROOT] if {[llength $rc] != 1} { shell echo "Expected one .magicrc file in $TECH_ROOT. Found:" shell echo $rc quit } puts "Sourcing $rc..." source $rc # MUST CHANGE THIS TO REPOSITORIES TOP LEVEL DIRECTORY #set PDK_ROOT /path/to/osu-toy-sram #puts stdout "Sourcing design .magicrc for technology sky130 ..." # 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 # Set this to the folder that holds the technology files #set TECH_ROOT ${PDK_ROOT}/magic/.magic_tech # loading technology #tech load ${TECH_ROOT}/sky130A.tech # load device generator #source $TECH_ROOT/sky130.tcl # load bind keys (optional) #source ${TECH_ROOT}/sky130.BindKeys # set units to lambda grid #snap internal # set sky130 standard power, ground, and substrate names #set VDD VPWR #set GND VGND #set SUB VSUBS # 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} # Custom macros #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"