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 |
| 17 | |
| 18 | # Allow override of PDK path from environment variable PDKPATH |
Tim Edwards | 022c39a | 2020-07-27 17:02:05 -0400 | [diff] [blame^] | 19 | if {[catch {set PDKPATH $env(PDKPATH)}]} { |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 20 | set PDKPATH "STAGING_PATH/TECHNAME" |
| 21 | } |
| 22 | |
| 23 | # loading technology |
| 24 | #ifdef FULLTECH |
| 25 | tech load $PDKPATH/MAGIC_CURRENT/TECHNAME-F.tech |
| 26 | #else |
| 27 | tech load $PDKPATH/MAGIC_CURRENT/TECHNAME.tech |
| 28 | #endif |
| 29 | |
| 30 | # load device generator |
| 31 | source $PDKPATH/MAGIC_CURRENT/TECHNAME.tcl |
| 32 | |
| 33 | # load bind keys (optional) |
| 34 | # source $PDKPATH/MAGIC_CURRENT/TECHNAME-BindKeys |
| 35 | |
| 36 | # set units to lambda grid |
| 37 | snap lambda |
| 38 | |
| 39 | # set sky130 standard power, ground, and substrate names |
| 40 | set VDD VPWR |
| 41 | set GND VGND |
| 42 | set SUB VSUBS |
| 43 | |
| 44 | # Allow override of type of magic library views used, "mag" or "maglef", |
| 45 | # from environment variable MAGTYPE |
| 46 | |
Tim Edwards | 022c39a | 2020-07-27 17:02:05 -0400 | [diff] [blame^] | 47 | if {[catch {set MAGTYPE $env(MAGTYPE)}]} { |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 48 | set MAGTYPE maglef |
| 49 | } |
| 50 | |
| 51 | # add path to reference cells |
| 52 | if {[file isdir ${PDKPATH}/libs.ref/${MAGTYPE}]} { |
| 53 | addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_pr_base |
| 54 | addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_pr_rf |
| 55 | addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_pr_rf2 |
| 56 | addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_io |
| 57 | addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hd |
| 58 | addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hdll |
| 59 | addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hs |
| 60 | addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hvl |
| 61 | addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_lp |
| 62 | addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_ls |
| 63 | addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_ms |
| 64 | addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_osu130 |
| 65 | } else { |
| 66 | addpath ${PDKPATH}/libs.ref/sky130_fd_pr_base/${MAGTYPE} |
| 67 | addpath ${PDKPATH}/libs.ref/sky130_fd_pr_rf/${MAGTYPE} |
| 68 | addpath ${PDKPATH}/libs.ref/sky130_fd_pr_rf2/${MAGTYPE} |
| 69 | addpath ${PDKPATH}/libs.ref/sky130_fd_io/${MAGTYPE} |
| 70 | addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hd/${MAGTYPE} |
| 71 | addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hdll/${MAGTYPE} |
| 72 | addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hs/${MAGTYPE} |
| 73 | addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hvl/${MAGTYPE} |
| 74 | addpath ${PDKPATH}/libs.ref/sky130_fd_sc_lp/${MAGTYPE} |
| 75 | addpath ${PDKPATH}/libs.ref/sky130_fd_sc_ls/${MAGTYPE} |
| 76 | addpath ${PDKPATH}/libs.ref/sky130_fd_sc_ms/${MAGTYPE} |
| 77 | addpath ${PDKPATH}/libs.ref/sky130_osu130/${MAGTYPE} |
| 78 | } |
| 79 | |
| 80 | # add path to GDS cells |
| 81 | #ifdef FULLTECH |
Ahmed Ghazy | 32982b7 | 2020-07-27 14:46:07 +0200 | [diff] [blame] | 82 | if {[file isdir ${PDKPATH}/libs.ref/gds]} { |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 83 | path cell ${PDKPATH}/libs.ref/gds/sky130_fd_pr_base |
| 84 | path cell ${PDKPATH}/libs.ref/gds/sky130_fd_pr_rf |
| 85 | path cell ${PDKPATH}/libs.ref/gds/sky130_fd_pr_rf2 |
| 86 | path cell +${PDKPATH}/libs.ref/gds/sky130_fd_io |
| 87 | path cell +${PDKPATH}/libs.ref/gds/sky130_fd_sc_hd |
| 88 | path cell +${PDKPATH}/libs.ref/gds/sky130_fd_sc_hdll |
| 89 | path cell +${PDKPATH}/libs.ref/gds/sky130_fd_sc_hs |
| 90 | path cell +${PDKPATH}/libs.ref/gds/sky130_fd_sc_hvl |
| 91 | path cell +${PDKPATH}/libs.ref/gds/sky130_fd_sc_lp |
| 92 | path cell +${PDKPATH}/libs.ref/gds/sky130_fd_sc_ls |
| 93 | path cell +${PDKPATH}/libs.ref/gds/sky130_fd_sc_ms |
| 94 | path cell +${PDKPATH}/libs.ref/gds/sky130_osu130 |
| 95 | } else { |
| 96 | path cell ${PDKPATH}/libs.ref/sky130_fd_pr_base/gds |
| 97 | path cell ${PDKPATH}/libs.ref/sky130_fd_pr_rf/gds |
| 98 | path cell ${PDKPATH}/libs.ref/sky130_fd_pr_rf2/gds |
| 99 | path cell +${PDKPATH}/libs.ref/sky130_fd_io/gds |
| 100 | path cell +${PDKPATH}/libs.ref/sky130_fd_sc_hd/gds |
| 101 | path cell +${PDKPATH}/libs.ref/sky130_fd_sc_hdll/gds |
| 102 | path cell +${PDKPATH}/libs.ref/sky130_fd_sc_hs/gds |
| 103 | path cell +${PDKPATH}/libs.ref/sky130_fd_sc_hvl/gds |
| 104 | path cell +${PDKPATH}/libs.ref/sky130_fd_sc_lp/gds |
| 105 | path cell +${PDKPATH}/libs.ref/sky130_fd_sc_ls/gds |
| 106 | path cell +${PDKPATH}/libs.ref/sky130_fd_sc_ms/gds |
| 107 | path cell +${PDKPATH}/libs.ref/sky130_osu130/gds |
| 108 | } |
| 109 | #endif (FULLTECH) |
| 110 | |
| 111 | # add path to IP from catalog. This procedure defined in the PDK script. |
| 112 | catch {magic::query_mylib_ip} |
| 113 | # add path to local IP from user design space. Defined in the PDK script. |
| 114 | catch {magic::query_my_projects} |