blob: 4eed4a6a7395416171457f2d646709ae30eb754b [file] [log] [blame]
mkk91ada922020-12-02 09:08:26 -08001#---------------------------------------------------------------------
2# 1) must set the variable PDK_ROOT
3#---------------------------------------------------------------------
4
5puts stdout "Sourcing design .magicrc for technology sky130A ..."
6
7#---------------------------------------------------------------------
8
9# Put grid on 0.005 pitch. This is important, as some commands don't
10# rescale the grid automatically (such as lef read?).
11
12set scalefac [tech lambda]
13if {[lindex $scalefac 1] < 2} {
14 scalegrid 1 2
15}
16#---------------------------------------------------------------------
17#
18# Allow override of DRC on/off from environment variable DRC
19#
20#---------------------------------------------------------------------
21if {[catch {set DRC $env(DRC)}]} {
22 # default value
23 drc off
24} else {
25 drc style drc(full)
26 drc euclidean on
27 sdrc $DRC
28}
29#
30#---------------------------------------------------------------------
31# Allow override of PDK path from environment variable PDKPATH
32#
33if {[catch {set PDKPATH $env(PDKPATH)}]} {
34 set PDKPATH "$::env(PDK_ROOT)/sky130A"
35}
36#---------------------------------------------------------------------
37# loading technology
38tech load $PDKPATH/libs.tech/magic/current/sky130A.tech
39
40#---------------------------------------------------------------------
41# load device generator
42source $PDKPATH/libs.tech/magic/current/sky130A.tcl
43
44#---------------------------------------------------------------------
45# load bind keys (optional)
46# source $PDKPATH/libs.tech/magic/current/sky130A-BindKeys
47
48#---------------------------------------------------------------------
49# set units to lambda grid
50snap lambda
51
52#---------------------------------------------------------------------
53
54# set sky130 standard power, ground, and substrate names
55set VDD VPWR
56set GND VGND
57set SUB VSUBS
58
59#---------------------------------------------------------------------
60
61# Allow override of type of magic library views used, "mag" or "maglef",
62# from environment variable MAGTYPE. Deafault value is MAGTYPE=maglef
63
64if {[catch {set MAGTYPE $env(MAGTYPE)}]} {
65 set MAGTYPE maglef
66}
67
68path search [concat "../$MAGTYPE" [path search]]
69
70#---------------------------------------------------------------------
71
72# add path to reference cells
73if {[file isdir ${PDKPATH}/libs.ref/${MAGTYPE}]} {
74 addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_pr
75 addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_io
76 addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hd
77 addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hdll
78 addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hs
79 addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hvl
80 addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_lp
81 addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_ls
82 addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_ms
83 addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_osu_sc
84} else {
85 addpath ${PDKPATH}/libs.ref/sky130_fd_pr/${MAGTYPE}
86 addpath ${PDKPATH}/libs.ref/sky130_fd_io/${MAGTYPE}
87 addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hd/${MAGTYPE}
88 addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hdll/${MAGTYPE}
89 addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hs/${MAGTYPE}
90 addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hvl/${MAGTYPE}
91 addpath ${PDKPATH}/libs.ref/sky130_fd_sc_lp/${MAGTYPE}
92 addpath ${PDKPATH}/libs.ref/sky130_fd_sc_ls/${MAGTYPE}
93 addpath ${PDKPATH}/libs.ref/sky130_fd_sc_ms/${MAGTYPE}
94 addpath ${PDKPATH}/libs.ref/sky130_osu_sc/${MAGTYPE}
95}
96
97# add path to GDS cells
98
99 addpath ../gds
100
101# add path to IP from catalog. This procedure defined in the PDK script.
102catch {magic::query_mylib_ip}
103# add path to local IP from user design space. Defined in the PDK script.
104catch {magic::query_my_projects}