| # SPDX-FileCopyrightText: 2020 Efabless Corporation | |
| # | |
| # Licensed under the Apache License, Version 2.0 (the "License"); | |
| # you may not use this file except in compliance with the License. | |
| # You may obtain a copy of the License at | |
| # | |
| # http://www.apache.org/licenses/LICENSE-2.0 | |
| # | |
| # Unless required by applicable law or agreed to in writing, software | |
| # distributed under the License is distributed on an "AS IS" BASIS, | |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| # See the License for the specific language governing permissions and | |
| # limitations under the License. | |
| # | |
| # SPDX-License-Identifier: Apache-2.0 | |
| puts stdout "Sourcing design .magicrc for technology sky130A ..." | |
| # Put grid on 0.005 pitch. This is important, as some commands don't | |
| # rescale the grid automatically (such as lef read?). | |
| set scalefac [tech lambda] | |
| if {[lindex $scalefac 1] < 2} { | |
| scalegrid 1 2 | |
| } | |
| drc off | |
| drc euclidean on | |
| # Allow override of PDK path from environment variable PDKPATH | |
| if {[catch {set PDKPATH $env(PDKPATH)}]} { | |
| set PDKPATH "$::env(PDK_ROOT)/sky130A" | |
| } | |
| # loading technology | |
| tech load $PDKPATH/libs.tech/magic/current/sky130A.tech | |
| # load device generator | |
| source $PDKPATH/libs.tech/magic/current/sky130A.tcl | |
| # load bind keys (optional) | |
| # source $PDKPATH/libs.tech/magic/current/sky130A-BindKeys | |
| # set units to lambda grid | |
| snap lambda | |
| # set sky130 standard power, ground, and substrate names | |
| set VDD VPWR | |
| set GND VGND | |
| set SUB VSUBS | |
| # Allow override of type of magic library views used, "mag" or "maglef", | |
| # from environment variable MAGTYPE | |
| if {[catch {set MAGTYPE $env(MAGTYPE)}]} { | |
| set MAGTYPE maglef | |
| } | |
| path search [concat "../$MAGTYPE" [path search]] | |
| # add path to reference cells | |
| if {[file isdir ${PDKPATH}/libs.ref/${MAGTYPE}]} { | |
| addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_pr | |
| addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_io | |
| addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hd | |
| addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hdll | |
| addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hs | |
| addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hvl | |
| addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_lp | |
| addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_ls | |
| addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_ms | |
| addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_osu_sc | |
| } else { | |
| addpath ${PDKPATH}/libs.ref/sky130_fd_pr/${MAGTYPE} | |
| addpath ${PDKPATH}/libs.ref/sky130_fd_io/${MAGTYPE} | |
| addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hd/${MAGTYPE} | |
| addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hdll/${MAGTYPE} | |
| addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hs/${MAGTYPE} | |
| addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hvl/${MAGTYPE} | |
| addpath ${PDKPATH}/libs.ref/sky130_fd_sc_lp/${MAGTYPE} | |
| addpath ${PDKPATH}/libs.ref/sky130_fd_sc_ls/${MAGTYPE} | |
| addpath ${PDKPATH}/libs.ref/sky130_fd_sc_ms/${MAGTYPE} | |
| addpath ${PDKPATH}/libs.ref/sky130_osu_sc/${MAGTYPE} | |
| } | |
| # add path to GDS cells | |
| # add path to IP from catalog. This procedure defined in the PDK script. | |
| catch {magic::query_mylib_ip} | |
| # add path to local IP from user design space. Defined in the PDK script. | |
| catch {magic::query_my_projects} |