Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 1 | ### |
| 2 | ### Source file sky130.magicrc |
| 3 | ### Process this file with the m4 processor |
| 4 | ### |
| 5 | puts 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 | |
| 10 | set scalefac [tech lambda] |
| 11 | if {[lindex $scalefac 1] < 2} { |
| 12 | scalegrid 1 2 |
| 13 | } |
| 14 | |
| 15 | # drc off |
| 16 | drc euclidean on |
Tim Edwards | ec43817 | 2021-01-22 11:19:24 -0500 | [diff] [blame] | 17 | # Change this to a fixed number for repeatable behavior with GDS writes |
| 18 | # e.g., "random seed 12345" |
| 19 | catch {random seed} |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 20 | |
Tim Edwards | 67a3c47 | 2021-06-11 20:19:17 -0400 | [diff] [blame] | 21 | # Turn off the scale option on ext2spice or else it conflicts with the |
| 22 | # scale in the model files. |
| 23 | ext2spice scale off |
| 24 | |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 25 | # Allow override of PDK path from environment variable PDKPATH |
Tim Edwards | 022c39a | 2020-07-27 17:02:05 -0400 | [diff] [blame] | 26 | if {[catch {set PDKPATH $env(PDKPATH)}]} { |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 27 | set PDKPATH "STAGING_PATH/TECHNAME" |
| 28 | } |
| 29 | |
| 30 | # loading technology |
| 31 | #ifdef FULLTECH |
| 32 | tech load $PDKPATH/MAGIC_CURRENT/TECHNAME-F.tech |
| 33 | #else |
| 34 | tech load $PDKPATH/MAGIC_CURRENT/TECHNAME.tech |
| 35 | #endif |
| 36 | |
| 37 | # load device generator |
| 38 | source $PDKPATH/MAGIC_CURRENT/TECHNAME.tcl |
| 39 | |
| 40 | # load bind keys (optional) |
| 41 | # source $PDKPATH/MAGIC_CURRENT/TECHNAME-BindKeys |
| 42 | |
| 43 | # set units to lambda grid |
| 44 | snap lambda |
| 45 | |
| 46 | # set sky130 standard power, ground, and substrate names |
| 47 | set VDD VPWR |
| 48 | set GND VGND |
| 49 | set SUB VSUBS |
| 50 | |
| 51 | # Allow override of type of magic library views used, "mag" or "maglef", |
| 52 | # from environment variable MAGTYPE |
| 53 | |
Tim Edwards | 022c39a | 2020-07-27 17:02:05 -0400 | [diff] [blame] | 54 | if {[catch {set MAGTYPE $env(MAGTYPE)}]} { |
Tim Edwards | 94513d4 | 2020-11-15 22:07:34 -0500 | [diff] [blame] | 55 | set MAGTYPE mag |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 56 | } |
| 57 | |
| 58 | # add path to reference cells |
| 59 | if {[file isdir ${PDKPATH}/libs.ref/${MAGTYPE}]} { |
Tim Edwards | d7289eb | 2020-09-10 21:48:31 -0400 | [diff] [blame] | 60 | addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_pr |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 61 | addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_io |
| 62 | addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hd |
| 63 | addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hdll |
| 64 | addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hs |
| 65 | addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hvl |
| 66 | addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_lp |
| 67 | addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_ls |
| 68 | addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_ms |
Tim Edwards | d7289eb | 2020-09-10 21:48:31 -0400 | [diff] [blame] | 69 | addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_osu_sc |
Tristan Gingold | a585431 | 2020-10-15 18:28:16 +0200 | [diff] [blame] | 70 | addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_osu_sc_t18 |
Tim Edwards | bcf59aa | 2020-12-17 16:55:13 -0500 | [diff] [blame] | 71 | addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_ml_xx_hd |
Tim Edwards | cfe970c | 2021-02-26 14:35:51 -0500 | [diff] [blame] | 72 | addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_sram_macros |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 73 | } else { |
Tim Edwards | d7289eb | 2020-09-10 21:48:31 -0400 | [diff] [blame] | 74 | addpath ${PDKPATH}/libs.ref/sky130_fd_pr/${MAGTYPE} |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 75 | addpath ${PDKPATH}/libs.ref/sky130_fd_io/${MAGTYPE} |
| 76 | addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hd/${MAGTYPE} |
| 77 | addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hdll/${MAGTYPE} |
| 78 | addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hs/${MAGTYPE} |
| 79 | addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hvl/${MAGTYPE} |
| 80 | addpath ${PDKPATH}/libs.ref/sky130_fd_sc_lp/${MAGTYPE} |
| 81 | addpath ${PDKPATH}/libs.ref/sky130_fd_sc_ls/${MAGTYPE} |
| 82 | addpath ${PDKPATH}/libs.ref/sky130_fd_sc_ms/${MAGTYPE} |
Tim Edwards | d7289eb | 2020-09-10 21:48:31 -0400 | [diff] [blame] | 83 | addpath ${PDKPATH}/libs.ref/sky130_osu_sc/${MAGTYPE} |
Tristan Gingold | a585431 | 2020-10-15 18:28:16 +0200 | [diff] [blame] | 84 | addpath ${PDKPATH}/libs.ref/sky130_osu_sc_t18/${MAGTYPE} |
Tim Edwards | bcf59aa | 2020-12-17 16:55:13 -0500 | [diff] [blame] | 85 | addpath ${PDKPATH}/libs.ref/sky130_ml_xx_hd/${MAGTYPE} |
Tim Edwards | cfe970c | 2021-02-26 14:35:51 -0500 | [diff] [blame] | 86 | addpath ${PDKPATH}/libs.ref/sky130_sram_macros/${MAGTYPE} |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 87 | } |
| 88 | |
| 89 | # add path to GDS cells |
| 90 | #ifdef FULLTECH |
Ahmed Ghazy | 32982b7 | 2020-07-27 14:46:07 +0200 | [diff] [blame] | 91 | if {[file isdir ${PDKPATH}/libs.ref/gds]} { |
Tim Edwards | d7289eb | 2020-09-10 21:48:31 -0400 | [diff] [blame] | 92 | path cell ${PDKPATH}/libs.ref/gds/sky130_fd_pr |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 93 | path cell +${PDKPATH}/libs.ref/gds/sky130_fd_io |
| 94 | path cell +${PDKPATH}/libs.ref/gds/sky130_fd_sc_hd |
| 95 | path cell +${PDKPATH}/libs.ref/gds/sky130_fd_sc_hdll |
| 96 | path cell +${PDKPATH}/libs.ref/gds/sky130_fd_sc_hs |
| 97 | path cell +${PDKPATH}/libs.ref/gds/sky130_fd_sc_hvl |
| 98 | path cell +${PDKPATH}/libs.ref/gds/sky130_fd_sc_lp |
| 99 | path cell +${PDKPATH}/libs.ref/gds/sky130_fd_sc_ls |
| 100 | path cell +${PDKPATH}/libs.ref/gds/sky130_fd_sc_ms |
| 101 | path cell +${PDKPATH}/libs.ref/gds/sky130_osu130 |
Tristan Gingold | a585431 | 2020-10-15 18:28:16 +0200 | [diff] [blame] | 102 | path cell +${PDKPATH}/libs.ref/gds/sky130_osu130_t18 |
Tim Edwards | bcf59aa | 2020-12-17 16:55:13 -0500 | [diff] [blame] | 103 | path cell +${PDKPATH}/libs.ref/gds/sky130_ml_xx_hd |
Tim Edwards | cfe970c | 2021-02-26 14:35:51 -0500 | [diff] [blame] | 104 | path cell +${PDKPATH}/libs.ref/gds/sky130_sram_macros |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 105 | } else { |
Tim Edwards | d7289eb | 2020-09-10 21:48:31 -0400 | [diff] [blame] | 106 | path cell ${PDKPATH}/libs.ref/sky130_fd_pr/gds |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 107 | path cell +${PDKPATH}/libs.ref/sky130_fd_io/gds |
| 108 | path cell +${PDKPATH}/libs.ref/sky130_fd_sc_hd/gds |
| 109 | path cell +${PDKPATH}/libs.ref/sky130_fd_sc_hdll/gds |
| 110 | path cell +${PDKPATH}/libs.ref/sky130_fd_sc_hs/gds |
| 111 | path cell +${PDKPATH}/libs.ref/sky130_fd_sc_hvl/gds |
| 112 | path cell +${PDKPATH}/libs.ref/sky130_fd_sc_lp/gds |
| 113 | path cell +${PDKPATH}/libs.ref/sky130_fd_sc_ls/gds |
| 114 | path cell +${PDKPATH}/libs.ref/sky130_fd_sc_ms/gds |
| 115 | path cell +${PDKPATH}/libs.ref/sky130_osu130/gds |
Tristan Gingold | a585431 | 2020-10-15 18:28:16 +0200 | [diff] [blame] | 116 | path cell +${PDKPATH}/libs.ref/sky130_osu130_t18/gds |
Tim Edwards | bcf59aa | 2020-12-17 16:55:13 -0500 | [diff] [blame] | 117 | path cell +${PDKPATH}/libs.ref/sky130_ml_xx_hd/gds |
Tim Edwards | cfe970c | 2021-02-26 14:35:51 -0500 | [diff] [blame] | 118 | path cell +${PDKPATH}/libs.ref/sky130_sram_macros/gds |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 119 | } |
| 120 | #endif (FULLTECH) |
| 121 | |
| 122 | # add path to IP from catalog. This procedure defined in the PDK script. |
| 123 | catch {magic::query_mylib_ip} |
| 124 | # add path to local IP from user design space. Defined in the PDK script. |
| 125 | catch {magic::query_my_projects} |