blob: 52d0ed8e3637382d0eb9808f7cda016c79773e17 [file] [log] [blame]
DaveX133427d5d46a2022-09-11 19:17:47 +00001puts stdout "Sourcing design .magicrc for technology sky130A ..."
2
3# Put grid on 0.005 pitch. This is important, as some commands don't
4# rescale the grid automatically (such as lef read?).
5
6set scalefac [tech lambda]
7if {[lindex $scalefac 1] < 2} {
8 scalegrid 1 2
9}
10
11# drc off
12drc euclidean on
13# Change this to a fixed number for repeatable behavior with GDS writes
14# e.g., "random seed 12345"
15catch {random seed}
16
17# Turn off the scale option on ext2spice or else it conflicts with the
18# scale in the model files.
19ext2spice scale off
20
21# Allow override of PDK path from environment variable PDK_ROOT
22# "file nativename" guards against a local PDK_ROOT with "~" in the name
23if {[catch {set PDK_ROOT [file nativename $env(PDK_ROOT)]}]} {
24 set PDK_ROOT /foss/pdk
25}
26
27# loading technology
28tech load $PDK_ROOT/sky130A/libs.tech/magic/sky130A.tech
29
30# load device generator
31source $PDK_ROOT/sky130A/libs.tech/magic/sky130A.tcl
32
33# load bind keys (optional)
34# source $PDK_ROOT/sky130A/libs.tech/magic/sky130A-BindKeys
35
36# set units to lambda grid
37snap lambda
38
39# set sky130 standard power, ground, and substrate names
40set VDD VPWR
41set GND VGND
42set SUB VSUBS
43
44# Allow override of type of magic library views used, "mag" or "maglef",
45# from environment variable MAGTYPE
46
47if {[catch {set MAGTYPE $env(MAGTYPE)}]} {
48 set MAGTYPE mag
49}
50
51# add path to reference cells
52if {[file isdir ${PDK_ROOT}/sky130A/libs.ref/${MAGTYPE}]} {
53 addpath ${PDK_ROOT}/sky130A/libs.ref/${MAGTYPE}/sky130_fd_pr
54 addpath ${PDK_ROOT}/sky130A/libs.ref/${MAGTYPE}/sky130_fd_io
55 addpath ${PDK_ROOT}/sky130A/libs.ref/${MAGTYPE}/sky130_fd_sc_hd
56 addpath ${PDK_ROOT}/sky130A/libs.ref/${MAGTYPE}/sky130_fd_sc_hdll
57 addpath ${PDK_ROOT}/sky130A/libs.ref/${MAGTYPE}/sky130_fd_sc_hs
58 addpath ${PDK_ROOT}/sky130A/libs.ref/${MAGTYPE}/sky130_fd_sc_hvl
59 addpath ${PDK_ROOT}/sky130A/libs.ref/${MAGTYPE}/sky130_fd_sc_lp
60 addpath ${PDK_ROOT}/sky130A/libs.ref/${MAGTYPE}/sky130_fd_sc_ls
61 addpath ${PDK_ROOT}/sky130A/libs.ref/${MAGTYPE}/sky130_fd_sc_ms
62 addpath ${PDK_ROOT}/sky130A/libs.ref/${MAGTYPE}/sky130_osu_sc
63 addpath ${PDK_ROOT}/sky130A/libs.ref/${MAGTYPE}/sky130_osu_sc_t18
64 addpath ${PDK_ROOT}/sky130A/libs.ref/${MAGTYPE}/sky130_ml_xx_hd
65 addpath ${PDK_ROOT}/sky130A/libs.ref/${MAGTYPE}/sky130_sram_macros
66} else {
67 addpath ${PDK_ROOT}/sky130A/libs.ref/sky130_fd_pr/${MAGTYPE}
68 addpath ${PDK_ROOT}/sky130A/libs.ref/sky130_fd_io/${MAGTYPE}
69 addpath ${PDK_ROOT}/sky130A/libs.ref/sky130_fd_sc_hd/${MAGTYPE}
70 addpath ${PDK_ROOT}/sky130A/libs.ref/sky130_fd_sc_hdll/${MAGTYPE}
71 addpath ${PDK_ROOT}/sky130A/libs.ref/sky130_fd_sc_hs/${MAGTYPE}
72 addpath ${PDK_ROOT}/sky130A/libs.ref/sky130_fd_sc_hvl/${MAGTYPE}
73 addpath ${PDK_ROOT}/sky130A/libs.ref/sky130_fd_sc_lp/${MAGTYPE}
74 addpath ${PDK_ROOT}/sky130A/libs.ref/sky130_fd_sc_ls/${MAGTYPE}
75 addpath ${PDK_ROOT}/sky130A/libs.ref/sky130_fd_sc_ms/${MAGTYPE}
76 addpath ${PDK_ROOT}/sky130A/libs.ref/sky130_osu_sc/${MAGTYPE}
77 addpath ${PDK_ROOT}/sky130A/libs.ref/sky130_osu_sc_t18/${MAGTYPE}
78 addpath ${PDK_ROOT}/sky130A/libs.ref/sky130_ml_xx_hd/${MAGTYPE}
79 addpath ${PDK_ROOT}/sky130A/libs.ref/sky130_sram_macros/${MAGTYPE}
80}
81
82# add path to GDS cells
83
84# add path to IP from catalog. This procedure defined in the PDK script.
85catch {magic::query_mylib_ip}
86# add path to local IP from user design space. Defined in the PDK script.
87catch {magic::query_my_projects}