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

# Allow override of PDK path from environment variable PDKPATH
if {[catch {set PDKPATH $env(PDKPATH)}]} {
    set PDKPATH "/ef/tech/SW/EFS8A"
}

# loading technology
tech load $PDKPATH/libs.tech/magic/current/EFS8A.tech

# load device generator
source $PDKPATH/libs.tech/magic/current/EFS8A.tcl

# load bind keys (optional)
# source $PDKPATH/libs.tech/magic/current/EFS8A-BindKeys

# set units to lambda grid 
snap lambda

# Allow override of type of magic library views used, "mag" or "maglef",
# from environment variable MAGTYPE

if {[catch {set MAGTYPE $env(MAGTYPE)}]} {
   set MAGTYPE maglef
}

# add path to reference cells
if {[file isdir ${PDKPATH}/libs.ref/${MAGTYPE}]} {
    addpath ${PDKPATH}/libs.ref/${MAGTYPE}/primdev
    addpath ${PDKPATH}/libs.ref/${MAGTYPE}/s8iom0s8
    addpath ${PDKPATH}/libs.ref/${MAGTYPE}/scs8hd
    addpath ${PDKPATH}/libs.ref/${MAGTYPE}/scs8hs
    addpath ${PDKPATH}/libs.ref/${MAGTYPE}/efs8_pads
    addpath ${PDKPATH}/libs.ref/${MAGTYPE}/s8_osu130
} else {
    addpath ${PDKPATH}/libs.ref/primdev/${MAGTYPE}
    addpath ${PDKPATH}/libs.ref/s8iom0s8/${MAGTYPE}
    addpath ${PDKPATH}/libs.ref/scs8hd/${MAGTYPE}
    addpath ${PDKPATH}/libs.ref/scs8hs/${MAGTYPE}
    addpath ${PDKPATH}/libs.ref/efs8_pads/${MAGTYPE}
    addpath ${PDKPATH}/libs.ref/s8_osu130/${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}
