# Copyright 2019-2021 SkyWater PDK Authors
#
# 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
#
#     https://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.
#
# This code is *alternatively* available under a BSD-3-Clause license, see
# details in the README.md at the top level and the license text at
# https://github.com/google/skywater-pdk-libs-sky130_bag3_pr/blob/master/LICENSE.alternative
#
# SPDX-License-Identifier: BSD-3-Clause OR Apache 2.0

# the Technology class.
class: "templates_skywater130.tech.TechInfoSkywater130"

# default EM spec calculation settings
em:
  # DC current temperature
  dc_temp: 70
  # RMS current allowable temperature increase
  rms_dt: 10

# transistor technology parameters
mos:
  # the transistor width minimum resolution.
  width_resolution: 1.0e-9
  # the transistor length minimum resolution.
  length_resolution: 1.0e-9

# routing grid parameters
routing_grid:
  1: [y, 52,  34]
  2: [x, 56,  70]
  3: [y, 66,  106]
  4: [x, 66,  60]
  5: [y, 284, 232]

# MOM cap parameters
mom_cap:
  standard:
    bot_dir: x
    info:
      # w, sp, margin, num_ports, port_tr_w
      1: !!python/tuple [64, 64, 120, 2, 1]
      2: !!python/tuple [64, 64, 120, 2, 1]
      3: !!python/tuple [64, 64, 120, 2, 1]
      4: !!python/tuple [64, 96, 96, 1, 1]
      5: !!python/tuple [116, 136, 136, 1, 1]
      6: !!python/tuple [116, 136, 136, 1, 1]
      7: !!python/tuple [138, 180, 180, 1, 1]
      8: !!python/tuple [440, 400, 400, 1, 1]

# fill parameters
fill:
  # sp_x, sp_y, margin_x, margin_y, density
  1: !!python/tuple [2000, 2000, 1000, 1000, 0.2]
  2: !!python/tuple [2000, 2000, 1000, 1000, 0.2]
  3: !!python/tuple [2000, 2000, 1000, 1000, 0.2]
  4: !!python/tuple [2000, 2000, 1000, 1000, 0.2]
  5: !!python/tuple [2000, 2000, 1000, 1000, 0.2]
  6: !!python/tuple [2000, 2000, 1000, 1000, 0.2]
  7: !!python/tuple [2000, 2000, 1000, 1000, 0.2]
  8: !!python/tuple [2000, 2000, 1000, 1000, 0.2]
