blob: a500a735a5290265a8d0e206631771785b5aafd4 [file] [log] [blame]
Tim Edwards55f4d0e2020-07-05 15:41:02 -04001###
2### Source file sky130.magicrc
3### Process this file with the m4 processor
4###
5puts stdout "Sourcing design .magicrc for technology TECHNAME ..."
6
7# Put grid on 0.005 pitch. This is important, as some commands don't
8# rescale the grid automatically (such as lef read?).
9
10set scalefac [tech lambda]
11if {[lindex $scalefac 1] < 2} {
12 scalegrid 1 2
13}
14
15# drc off
16drc euclidean on
Tim Edwardsec438172021-01-22 11:19:24 -050017# Change this to a fixed number for repeatable behavior with GDS writes
18# e.g., "random seed 12345"
19catch {random seed}
Tim Edwards55f4d0e2020-07-05 15:41:02 -040020
Tim Edwards67a3c472021-06-11 20:19:17 -040021# Turn off the scale option on ext2spice or else it conflicts with the
22# scale in the model files.
23ext2spice scale off
24
Tim Edwards1eb391f2022-02-11 11:28:06 -050025# Allow override of PDK path from environment variable PDK_ROOT
26if {[catch {set PDK_ROOT $env(PDK_ROOT)}]} {
Tim Edwardsd2e91442022-02-11 11:33:37 -050027 set PDK_ROOT STAGING_PATH
Tim Edwards55f4d0e2020-07-05 15:41:02 -040028}
29
30# loading technology
31#ifdef FULLTECH
Tim Edwards1eb391f2022-02-11 11:28:06 -050032tech load $PDK_ROOT/TECHNAME/MAGIC_CURRENT/TECHNAME-F.tech
Tim Edwards55f4d0e2020-07-05 15:41:02 -040033#else
Tim Edwards1eb391f2022-02-11 11:28:06 -050034tech load $PDK_ROOT/TECHNAME/MAGIC_CURRENT/TECHNAME.tech
Tim Edwards55f4d0e2020-07-05 15:41:02 -040035#endif
36
37# load device generator
Tim Edwards1eb391f2022-02-11 11:28:06 -050038source $PDK_ROOT/TECHNAME/MAGIC_CURRENT/TECHNAME.tcl
Tim Edwards55f4d0e2020-07-05 15:41:02 -040039
40# load bind keys (optional)
Tim Edwards1eb391f2022-02-11 11:28:06 -050041# source $PDK_ROOT/TECHNAME/MAGIC_CURRENT/TECHNAME-BindKeys
Tim Edwards55f4d0e2020-07-05 15:41:02 -040042
43# set units to lambda grid
44snap lambda
45
46# set sky130 standard power, ground, and substrate names
47set VDD VPWR
48set GND VGND
49set SUB VSUBS
50
51# Allow override of type of magic library views used, "mag" or "maglef",
52# from environment variable MAGTYPE
53
Tim Edwards022c39a2020-07-27 17:02:05 -040054if {[catch {set MAGTYPE $env(MAGTYPE)}]} {
Tim Edwards94513d42020-11-15 22:07:34 -050055 set MAGTYPE mag
Tim Edwards55f4d0e2020-07-05 15:41:02 -040056}
57
58# add path to reference cells
Tim Edwards1eb391f2022-02-11 11:28:06 -050059if {[file isdir ${PDK_ROOT}/TECHNAME/libs.ref/${MAGTYPE}]} {
60 addpath ${PDK_ROOT}/TECHNAME/libs.ref/${MAGTYPE}/sky130_fd_pr
61 addpath ${PDK_ROOT}/TECHNAME/libs.ref/${MAGTYPE}/sky130_fd_io
62 addpath ${PDK_ROOT}/TECHNAME/libs.ref/${MAGTYPE}/sky130_fd_sc_hd
63 addpath ${PDK_ROOT}/TECHNAME/libs.ref/${MAGTYPE}/sky130_fd_sc_hdll
64 addpath ${PDK_ROOT}/TECHNAME/libs.ref/${MAGTYPE}/sky130_fd_sc_hs
65 addpath ${PDK_ROOT}/TECHNAME/libs.ref/${MAGTYPE}/sky130_fd_sc_hvl
66 addpath ${PDK_ROOT}/TECHNAME/libs.ref/${MAGTYPE}/sky130_fd_sc_lp
67 addpath ${PDK_ROOT}/TECHNAME/libs.ref/${MAGTYPE}/sky130_fd_sc_ls
68 addpath ${PDK_ROOT}/TECHNAME/libs.ref/${MAGTYPE}/sky130_fd_sc_ms
69 addpath ${PDK_ROOT}/TECHNAME/libs.ref/${MAGTYPE}/sky130_osu_sc
70 addpath ${PDK_ROOT}/TECHNAME/libs.ref/${MAGTYPE}/sky130_osu_sc_t18
71 addpath ${PDK_ROOT}/TECHNAME/libs.ref/${MAGTYPE}/sky130_ml_xx_hd
72 addpath ${PDK_ROOT}/TECHNAME/libs.ref/${MAGTYPE}/sky130_sram_macros
Tim Edwards55f4d0e2020-07-05 15:41:02 -040073} else {
Tim Edwards1eb391f2022-02-11 11:28:06 -050074 addpath ${PDK_ROOT}/TECHNAME/libs.ref/sky130_fd_pr/${MAGTYPE}
75 addpath ${PDK_ROOT}/TECHNAME/libs.ref/sky130_fd_io/${MAGTYPE}
76 addpath ${PDK_ROOT}/TECHNAME/libs.ref/sky130_fd_sc_hd/${MAGTYPE}
77 addpath ${PDK_ROOT}/TECHNAME/libs.ref/sky130_fd_sc_hdll/${MAGTYPE}
78 addpath ${PDK_ROOT}/TECHNAME/libs.ref/sky130_fd_sc_hs/${MAGTYPE}
79 addpath ${PDK_ROOT}/TECHNAME/libs.ref/sky130_fd_sc_hvl/${MAGTYPE}
80 addpath ${PDK_ROOT}/TECHNAME/libs.ref/sky130_fd_sc_lp/${MAGTYPE}
81 addpath ${PDK_ROOT}/TECHNAME/libs.ref/sky130_fd_sc_ls/${MAGTYPE}
82 addpath ${PDK_ROOT}/TECHNAME/libs.ref/sky130_fd_sc_ms/${MAGTYPE}
83 addpath ${PDK_ROOT}/TECHNAME/libs.ref/sky130_osu_sc/${MAGTYPE}
84 addpath ${PDK_ROOT}/TECHNAME/libs.ref/sky130_osu_sc_t18/${MAGTYPE}
85 addpath ${PDK_ROOT}/TECHNAME/libs.ref/sky130_ml_xx_hd/${MAGTYPE}
86 addpath ${PDK_ROOT}/TECHNAME/libs.ref/sky130_sram_macros/${MAGTYPE}
Tim Edwards55f4d0e2020-07-05 15:41:02 -040087}
88
89# add path to GDS cells
90#ifdef FULLTECH
Tim Edwards1eb391f2022-02-11 11:28:06 -050091if {[file isdir ${PDK_ROOT}/TECHNAME/libs.ref/gds]} {
92 path cell ${PDK_ROOT}/TECHNAME/libs.ref/gds/sky130_fd_pr
93 path cell +${PDK_ROOT}/TECHNAME/libs.ref/gds/sky130_fd_io
94 path cell +${PDK_ROOT}/TECHNAME/libs.ref/gds/sky130_fd_sc_hd
95 path cell +${PDK_ROOT}/TECHNAME/libs.ref/gds/sky130_fd_sc_hdll
96 path cell +${PDK_ROOT}/TECHNAME/libs.ref/gds/sky130_fd_sc_hs
97 path cell +${PDK_ROOT}/TECHNAME/libs.ref/gds/sky130_fd_sc_hvl
98 path cell +${PDK_ROOT}/TECHNAME/libs.ref/gds/sky130_fd_sc_lp
99 path cell +${PDK_ROOT}/TECHNAME/libs.ref/gds/sky130_fd_sc_ls
100 path cell +${PDK_ROOT}/TECHNAME/libs.ref/gds/sky130_fd_sc_ms
101 path cell +${PDK_ROOT}/TECHNAME/libs.ref/gds/sky130_osu130
102 path cell +${PDK_ROOT}/TECHNAME/libs.ref/gds/sky130_osu130_t18
103 path cell +${PDK_ROOT}/TECHNAME/libs.ref/gds/sky130_ml_xx_hd
104 path cell +${PDK_ROOT}/TECHNAME/libs.ref/gds/sky130_sram_macros
Tim Edwards55f4d0e2020-07-05 15:41:02 -0400105} else {
Tim Edwards1eb391f2022-02-11 11:28:06 -0500106 path cell ${PDK_ROOT}/TECHNAME/libs.ref/sky130_fd_pr/gds
107 path cell +${PDK_ROOT}/TECHNAME/libs.ref/sky130_fd_io/gds
108 path cell +${PDK_ROOT}/TECHNAME/libs.ref/sky130_fd_sc_hd/gds
109 path cell +${PDK_ROOT}/TECHNAME/libs.ref/sky130_fd_sc_hdll/gds
110 path cell +${PDK_ROOT}/TECHNAME/libs.ref/sky130_fd_sc_hs/gds
111 path cell +${PDK_ROOT}/TECHNAME/libs.ref/sky130_fd_sc_hvl/gds
112 path cell +${PDK_ROOT}/TECHNAME/libs.ref/sky130_fd_sc_lp/gds
113 path cell +${PDK_ROOT}/TECHNAME/libs.ref/sky130_fd_sc_ls/gds
114 path cell +${PDK_ROOT}/TECHNAME/libs.ref/sky130_fd_sc_ms/gds
115 path cell +${PDK_ROOT}/TECHNAME/libs.ref/sky130_osu130/gds
116 path cell +${PDK_ROOT}/TECHNAME/libs.ref/sky130_osu130_t18/gds
117 path cell +${PDK_ROOT}/TECHNAME/libs.ref/sky130_ml_xx_hd/gds
118 path cell +${PDK_ROOT}/TECHNAME/libs.ref/sky130_sram_macros/gds
Tim Edwards55f4d0e2020-07-05 15:41:02 -0400119}
120#endif (FULLTECH)
121
122# add path to IP from catalog. This procedure defined in the PDK script.
123catch {magic::query_mylib_ip}
124# add path to local IP from user design space. Defined in the PDK script.
125catch {magic::query_my_projects}