/*
 * 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_mcu9t5v0__dlyb_4) {
    area : 53.625600 ;

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

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

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

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 1.307 ;
      max_transition : 8.4 ;
      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.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.01002, 0.04166, 0.1021, 0.1962, 0.3283, 0.5022, 0.7212, 0.9885, 1.307");
          values("0.3593, 0.3479, 0.3154, 0.2725, 0.2317, 0.2016, 0.1815, 0.1675, 0.1572, 0.1496",\
                 "0.3591, 0.3477, 0.3153, 0.2724, 0.2315, 0.2014, 0.1813, 0.1673, 0.1571, 0.1494",\
                 "0.359, 0.3476, 0.3152, 0.2722, 0.2314, 0.2013, 0.1812, 0.1672, 0.157, 0.1493",\
                 "0.3594, 0.348, 0.3156, 0.2726, 0.2318, 0.2017, 0.1816, 0.1676, 0.1574, 0.1497",\
                 "0.3606, 0.3492, 0.3168, 0.2738, 0.2329, 0.2029, 0.1829, 0.1688, 0.1586, 0.1508",\
                 "0.3625, 0.3511, 0.3186, 0.2757, 0.2349, 0.2048, 0.1847, 0.1707, 0.1605, 0.1528",\
                 "0.3653, 0.3538, 0.3215, 0.2785, 0.2376, 0.2076, 0.1875, 0.1735, 0.1632, 0.1556",\
                 "0.3689, 0.3576, 0.3251, 0.2822, 0.2414, 0.2113, 0.1913, 0.1773, 0.167, 0.1594",\
                 "0.3737, 0.3623, 0.3299, 0.2869, 0.2462, 0.2163, 0.1963, 0.1823, 0.1721, 0.1644",\
                 "0.3796, 0.3682, 0.3358, 0.2927, 0.2519, 0.222, 0.202, 0.1881, 0.1779, 0.1701");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.01002, 0.04166, 0.1021, 0.1962, 0.3283, 0.5022, 0.7212, 0.9885, 1.307");
          values("0.151, 0.1419, 0.1264, 0.1168, 0.1113, 0.108, 0.1067, 0.1061, 0.107, 0.117",\
                 "0.151, 0.1418, 0.1265, 0.1168, 0.111, 0.1081, 0.1065, 0.1065, 0.1072, 0.1174",\
                 "0.1509, 0.1419, 0.1263, 0.1166, 0.1111, 0.108, 0.1067, 0.1061, 0.1068, 0.1176",\
                 "0.151, 0.1418, 0.1266, 0.117, 0.111, 0.1082, 0.1069, 0.1067, 0.1078, 0.119",\
                 "0.1517, 0.1426, 0.127, 0.1173, 0.1119, 0.1089, 0.1077, 0.1078, 0.1084, 0.1222",\
                 "0.1531, 0.1439, 0.1285, 0.1189, 0.1134, 0.1101, 0.1089, 0.1087, 0.1107, 0.1263",\
                 "0.1553, 0.146, 0.1306, 0.1211, 0.1154, 0.1122, 0.1107, 0.1103, 0.1121, 0.131",\
                 "0.1583, 0.1491, 0.1338, 0.1243, 0.1187, 0.1161, 0.1144, 0.1143, 0.1161, 0.1401",\
                 "0.1623, 0.1531, 0.1377, 0.128, 0.1219, 0.1196, 0.1192, 0.1191, 0.121, 0.1532",\
                 "0.1673, 0.1582, 0.1427, 0.1332, 0.127, 0.1228, 0.1223, 0.124, 0.1298, 0.1758");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.01002, 0.04166, 0.1021, 0.1962, 0.3283, 0.5022, 0.7212, 0.9885, 1.307");
          values("3.933, 4.013, 4.236, 4.553, 4.937, 5.377, 5.867, 6.401, 6.979, 7.607",\
                 "3.946, 4.027, 4.25, 4.567, 4.952, 5.391, 5.881, 6.415, 6.993, 7.62",\
                 "4.011, 4.092, 4.314, 4.632, 5.016, 5.455, 5.945, 6.481, 7.058, 7.685",\
                 "4.154, 4.235, 4.458, 4.775, 5.159, 5.598, 6.089, 6.623, 7.202, 7.829",\
                 "4.378, 4.458, 4.68, 4.998, 5.382, 5.821, 6.312, 6.846, 7.424, 8.052",\
                 "4.658, 4.738, 4.961, 5.278, 5.663, 6.102, 6.591, 7.126, 7.704, 8.331",\
                 "4.986, 5.066, 5.289, 5.607, 5.991, 6.43, 6.921, 7.455, 8.033, 8.66",\
                 "5.37, 5.45, 5.673, 5.99, 6.374, 6.814, 7.303, 7.838, 8.416, 9.043",\
                 "5.811, 5.891, 6.113, 6.432, 6.816, 7.255, 7.745, 8.279, 8.857, 9.483",\
                 "6.313, 6.394, 6.616, 6.933, 7.317, 7.757, 8.247, 8.782, 9.359, 9.986");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.01002, 0.04166, 0.1021, 0.1962, 0.3283, 0.5022, 0.7212, 0.9885, 1.307");
          values("2.518, 2.584, 2.768, 3.054, 3.435, 3.921, 4.54, 5.311, 6.25, 7.372",\
                 "2.532, 2.597, 2.783, 3.069, 3.448, 3.936, 4.554, 5.325, 6.265, 7.386",\
                 "2.575, 2.641, 2.826, 3.112, 3.492, 3.979, 4.597, 5.369, 6.307, 7.429",\
                 "2.626, 2.692, 2.877, 3.163, 3.543, 4.03, 4.648, 5.42, 6.36, 7.48",\
                 "2.651, 2.717, 2.902, 3.188, 3.568, 4.055, 4.674, 5.445, 6.383, 7.505",\
                 "2.643, 2.709, 2.895, 3.181, 3.561, 4.048, 4.666, 5.437, 6.377, 7.498",\
                 "2.6, 2.665, 2.851, 3.137, 3.516, 4.003, 4.622, 5.393, 6.333, 7.452",\
                 "2.516, 2.582, 2.767, 3.053, 3.432, 3.92, 4.538, 5.309, 6.25, 7.37",\
                 "2.388, 2.454, 2.639, 2.924, 3.304, 3.791, 4.41, 5.18, 6.119, 7.238",\
                 "2.21, 2.276, 2.461, 2.748, 3.128, 3.614, 4.233, 5.004, 5.943, 7.062");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.01002, 0.04166, 0.1021, 0.1962, 0.3283, 0.5022, 0.7212, 0.9885, 1.307");
          values("0.9288, 0.9932, 1.195, 1.484, 1.837, 2.262, 2.761, 3.324, 3.982, 4.759",\
                 "0.9286, 0.9932, 1.195, 1.485, 1.837, 2.262, 2.76, 3.324, 3.982, 4.76",\
                 "0.9288, 0.9936, 1.195, 1.484, 1.836, 2.262, 2.762, 3.329, 3.988, 4.761",\
                 "0.9288, 0.9934, 1.195, 1.485, 1.836, 2.262, 2.76, 3.324, 3.982, 4.755",\
                 "0.9278, 0.9934, 1.195, 1.484, 1.839, 2.262, 2.761, 3.327, 3.981, 4.759",\
                 "0.9282, 0.9932, 1.195, 1.484, 1.835, 2.259, 2.758, 3.324, 3.982, 4.76",\
                 "0.928, 0.9934, 1.196, 1.484, 1.839, 2.262, 2.759, 3.323, 3.982, 4.759",\
                 "0.9274, 0.9928, 1.194, 1.484, 1.839, 2.262, 2.762, 3.327, 3.986, 4.762",\
                 "0.928, 0.993, 1.194, 1.487, 1.838, 2.262, 2.76, 3.332, 3.982, 4.764",\
                 "0.928, 0.992, 1.194, 1.482, 1.836, 2.262, 2.76, 3.326, 3.984, 4.758");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.01002, 0.04166, 0.1021, 0.1962, 0.3283, 0.5022, 0.7212, 0.9885, 1.307");
          values("0.3422, 0.409, 0.6238, 0.9934, 1.532, 2.301, 3.359, 4.715, 6.388, 8.406",\
                 "0.3422, 0.4104, 0.623, 0.9926, 1.531, 2.301, 3.361, 4.72, 6.397, 8.404",\
                 "0.3422, 0.4096, 0.6236, 0.9932, 1.531, 2.305, 3.358, 4.715, 6.389, 8.405",\
                 "0.3422, 0.4094, 0.623, 0.9924, 1.533, 2.306, 3.36, 4.721, 6.397, 8.406",\
                 "0.3424, 0.4094, 0.6236, 0.9928, 1.53, 2.302, 3.357, 4.715, 6.388, 8.395",\
                 "0.3426, 0.4088, 0.6234, 0.9918, 1.529, 2.306, 3.357, 4.719, 6.39, 8.395",\
                 "0.3422, 0.4094, 0.6234, 0.9932, 1.532, 2.302, 3.362, 4.723, 6.394, 8.401",\
                 "0.3424, 0.4082, 0.623, 0.9912, 1.529, 2.302, 3.361, 4.719, 6.387, 8.394",\
                 "0.3426, 0.408, 0.6236, 0.9906, 1.531, 2.303, 3.356, 4.716, 6.398, 8.397",\
                 "0.3426, 0.409, 0.6246, 0.9938, 1.532, 2.304, 3.357, 4.717, 6.39, 8.404");
        }
      }
    }
  }

