mirror of https://github.com/efabless/caravel.git
98 lines
3.3 KiB
Plaintext
98 lines
3.3 KiB
Plaintext
|
# 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/sky130A.tech
|
||
|
|
||
|
# load device generator
|
||
|
source $PDKPATH/libs.tech/magic/sky130A.tcl
|
||
|
|
||
|
# load bind keys (optional)
|
||
|
# source $PDKPATH/libs.tech/magic/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
|
||
|
addpath ${PDKPATH}/libs.ref/mag/sky130_ml_xx_hd
|
||
|
} 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}
|
||
|
addpath ${PDKPATH}/libs.ref/sky130_ml_xx_hd/mag
|
||
|
}
|
||
|
|
||
|
addpath hexdigits
|
||
|
addpath ../subcells/simple_por/mag
|
||
|
|
||
|
# 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}
|