/*
 * Copyright 2022 GlobalFoundries 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
 *
 *      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.
 */

  cell(gf180mcu_fd_sc_mcu7t5v0__dlyb_4) {
    area : 48.294400 ;

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!I" ;
      value : "0.00054222" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "I" ;
      value : "0.00053748" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "0.00054222" ;
    }

    pg_pin(VDD) {
      voltage_name : VDD ;
      pg_type : primary_power ;
    }

    pg_pin(VSS) {
      voltage_name : VSS ;
      pg_type : primary_ground ;
    }

    pin(I) {
      capacitance : 0.002738 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 15.6 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;
    }

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 1.414 ;
      max_transition : 15.6 ;
      min_capacitance : 0.001 ;
      output_voltage : default ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        related_pin : "I" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.01075, 0.04497, 0.1103, 0.2121, 0.355, 0.543, 0.7798, 1.069, 1.414");
          values("0.493, 0.4688, 0.4117, 0.3529, 0.314, 0.2897, 0.2735, 0.262, 0.2536, 0.2472",\
                 "0.4926, 0.4685, 0.4111, 0.3525, 0.3138, 0.2894, 0.273, 0.2616, 0.2532, 0.2467",\
                 "0.4925, 0.4684, 0.4112, 0.3524, 0.3137, 0.2895, 0.2729, 0.2615, 0.2531, 0.2467",\
                 "0.4941, 0.47, 0.4126, 0.3542, 0.3153, 0.291, 0.2745, 0.263, 0.2546, 0.2482",\
                 "0.4978, 0.4736, 0.4163, 0.3579, 0.319, 0.2949, 0.2784, 0.2666, 0.2583, 0.2517",\
                 "0.5038, 0.4797, 0.4223, 0.3636, 0.3248, 0.3005, 0.2842, 0.2725, 0.264, 0.2571",\
                 "0.5121, 0.488, 0.4305, 0.3722, 0.3332, 0.3089, 0.2925, 0.2809, 0.2721, 0.2643",\
                 "0.5231, 0.499, 0.4417, 0.3831, 0.3441, 0.3201, 0.3038, 0.292, 0.2822, 0.2726",\
                 "0.5366, 0.5126, 0.4554, 0.3968, 0.3578, 0.3335, 0.3167, 0.3036, 0.2913, 0.2792",\
                 "0.5512, 0.5272, 0.4697, 0.411, 0.3717, 0.3465, 0.3272, 0.3097, 0.2945, 0.2831");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.01075, 0.04497, 0.1103, 0.2121, 0.355, 0.543, 0.7798, 1.069, 1.414");
          values("0.2467, 0.2327, 0.2155, 0.205, 0.1995, 0.1979, 0.1984, 0.2195, 0.3957, 1.074",\
                 "0.2466, 0.2326, 0.2157, 0.2052, 0.1993, 0.1979, 0.1981, 0.2194, 0.4004, 1.088",\
                 "0.2465, 0.2322, 0.2154, 0.2054, 0.1993, 0.1979, 0.1988, 0.2226, 0.4162, 1.135",\
                 "0.2473, 0.2332, 0.2161, 0.2058, 0.2, 0.1985, 0.1991, 0.2282, 0.4469, 1.218",\
                 "0.2495, 0.2354, 0.2186, 0.2078, 0.2024, 0.2009, 0.2022, 0.2381, 0.4956, 1.345",\
                 "0.254, 0.24, 0.223, 0.2121, 0.2067, 0.2053, 0.2065, 0.2564, 0.5716, 1.515",\
                 "0.2606, 0.2463, 0.229, 0.2192, 0.2144, 0.2119, 0.2155, 0.2862, 0.6905, 1.76",\
                 "0.2696, 0.2555, 0.2381, 0.2276, 0.2212, 0.2223, 0.2294, 0.3396, 0.8743, 2.084",\
                 "0.2813, 0.2671, 0.25, 0.2389, 0.2332, 0.2305, 0.2508, 0.4385, 1.16, 2.487",\
                 "0.2957, 0.2816, 0.2645, 0.2535, 0.2466, 0.2444, 0.2891, 0.6277, 1.581, 2.94");
        }
      }

      timing() {
        related_pin : "I" ;
        timing_sense : positive_unate ;
        timing_type : combinational ;

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.01075, 0.04497, 0.1103, 0.2121, 0.355, 0.543, 0.7798, 1.069, 1.414");
          values("4.679, 4.838, 5.234, 5.766, 6.401, 7.126, 7.934, 8.841, 9.87, 11.04",\
                 "4.709, 4.868, 5.264, 5.796, 6.431, 7.154, 7.964, 8.871, 9.9, 11.07",\
                 "4.838, 4.997, 5.393, 5.925, 6.56, 7.285, 8.093, 9.001, 10.03, 11.2",\
                 "5.114, 5.272, 5.669, 6.201, 6.835, 7.56, 8.369, 9.277, 10.3, 11.48",\
                 "5.524, 5.683, 6.08, 6.611, 7.245, 7.971, 8.78, 9.687, 10.72, 11.89",\
                 "6.026, 6.185, 6.582, 7.114, 7.748, 8.473, 9.28, 10.19, 11.22, 12.39",\
                 "6.618, 6.778, 7.173, 7.705, 8.339, 9.065, 9.874, 10.78, 11.81, 12.98",\
                 "7.313, 7.472, 7.868, 8.4, 9.034, 9.759, 10.57, 11.47, 12.5, 13.67",\
                 "8.115, 8.274, 8.67, 9.202, 9.837, 10.56, 11.37, 12.28, 13.31, 14.48",\
                 "9.026, 9.186, 9.582, 10.12, 10.75, 11.47, 12.28, 13.19, 14.22, 15.39");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.01075, 0.04497, 0.1103, 0.2121, 0.355, 0.543, 0.7798, 1.069, 1.414");
          values("3.311, 3.43, 3.75, 4.235, 4.897, 5.789, 6.952, 8.417, 10.21, 12.34",\
                 "3.338, 3.458, 3.778, 4.262, 4.924, 5.816, 6.979, 8.445, 10.23, 12.37",\
                 "3.423, 3.542, 3.863, 4.347, 5.009, 5.901, 7.064, 8.53, 10.32, 12.45",\
                 "3.514, 3.633, 3.953, 4.438, 5.1, 5.991, 7.155, 8.619, 10.41, 12.54",\
                 "3.554, 3.674, 3.994, 4.478, 5.14, 6.032, 7.196, 8.662, 10.45, 12.58",\
                 "3.535, 3.654, 3.974, 4.458, 5.12, 6.012, 7.176, 8.641, 10.43, 12.56",\
                 "3.447, 3.567, 3.887, 4.371, 5.034, 5.925, 7.089, 8.553, 10.34, 12.48",\
                 "3.286, 3.406, 3.726, 4.211, 4.873, 5.765, 6.927, 8.391, 10.18, 12.32",\
                 "3.042, 3.161, 3.481, 3.965, 4.628, 5.52, 6.683, 8.147, 9.934, 12.06",\
                 "2.706, 2.826, 3.146, 3.63, 4.293, 5.184, 6.348, 7.814, 9.599, 11.73");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.01075, 0.04497, 0.1103, 0.2121, 0.355, 0.543, 0.7798, 1.069, 1.414");
          values("0.8514, 0.9998, 1.368, 1.857, 2.478, 3.225, 4.134, 5.273, 6.701, 8.459",\
                 "0.8516, 1, 1.369, 1.856, 2.475, 3.222, 4.133, 5.279, 6.708, 8.453",\
                 "0.8514, 0.9994, 1.368, 1.856, 2.473, 3.222, 4.131, 5.284, 6.707, 8.461",\
                 "0.851, 1.001, 1.369, 1.859, 2.476, 3.229, 4.136, 5.277, 6.708, 8.46",\
                 "0.8518, 1.001, 1.368, 1.857, 2.477, 3.227, 4.13, 5.275, 6.704, 8.46",\
                 "0.8512, 1.001, 1.366, 1.857, 2.476, 3.227, 4.13, 5.274, 6.702, 8.456",\
                 "0.852, 1, 1.368, 1.854, 2.478, 3.226, 4.134, 5.28, 6.708, 8.458",\
                 "0.852, 1, 1.366, 1.854, 2.474, 3.226, 4.136, 5.28, 6.706, 8.452",\
                 "0.85, 1.002, 1.368, 1.858, 2.474, 3.222, 4.134, 5.284, 6.708, 8.454",\
                 "0.852, 1, 1.366, 1.854, 2.474, 3.222, 4.134, 5.276, 6.698, 8.452");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.01075, 0.04497, 0.1103, 0.2121, 0.355, 0.543, 0.7798, 1.069, 1.414");
          values("0.368, 0.495, 0.883, 1.536, 2.564, 4.075, 6.109, 8.694, 11.84, 15.61",\
                 "0.3692, 0.494, 0.8842, 1.536, 2.56, 4.075, 6.109, 8.694, 11.85, 15.61",\
                 "0.3678, 0.4954, 0.885, 1.537, 2.561, 4.075, 6.104, 8.689, 11.85, 15.6",\
                 "0.368, 0.4958, 0.8832, 1.536, 2.561, 4.073, 6.109, 8.701, 11.84, 15.6",\
                 "0.3682, 0.4954, 0.8856, 1.537, 2.563, 4.075, 6.112, 8.69, 11.85, 15.6",\
                 "0.368, 0.495, 0.8862, 1.535, 2.564, 4.075, 6.113, 8.694, 11.85, 15.61",\
                 "0.3682, 0.4946, 0.8836, 1.534, 2.561, 4.076, 6.114, 8.698, 11.85, 15.6",\
                 "0.3684, 0.495, 0.8844, 1.535, 2.567, 4.07, 6.102, 8.684, 11.84, 15.61",\
                 "0.37, 0.496, 0.888, 1.538, 2.562, 4.072, 6.104, 8.688, 11.84, 15.6",\
                 "0.368, 0.496, 0.884, 1.534, 2.56, 4.07, 6.106, 8.68, 11.84, 15.59");
        }
      }
    }
  }

