/*
 * 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__buf_1) {
    area : 13.171200 ;

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

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

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

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 0.2336 ;
      max_transition : 2.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.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.002606, 0.008242, 0.01901, 0.03577, 0.0593, 0.09026, 0.1293, 0.1769, 0.2336");
          values("0.2199, 0.2159, 0.2092, 0.2042, 0.2013, 0.199, 0.1975, 0.1964, 0.1958, 0.1953",\
                 "0.2202, 0.2165, 0.2097, 0.2045, 0.2012, 0.1991, 0.1979, 0.1966, 0.1959, 0.1955",\
                 "0.2284, 0.2246, 0.2174, 0.212, 0.2086, 0.2061, 0.2048, 0.2037, 0.2031, 0.2025",\
                 "0.2578, 0.2532, 0.244, 0.2365, 0.2316, 0.2286, 0.2265, 0.225, 0.2241, 0.2233",\
                 "0.3125, 0.3069, 0.2945, 0.2837, 0.2755, 0.2705, 0.2668, 0.2644, 0.2627, 0.2616",\
                 "0.3923, 0.3851, 0.3687, 0.3538, 0.342, 0.3338, 0.328, 0.3241, 0.3213, 0.3193",\
                 "0.4963, 0.4877, 0.4678, 0.4479, 0.4321, 0.4202, 0.412, 0.4058, 0.4017, 0.3982",\
                 "0.6256, 0.6163, 0.5928, 0.5674, 0.547, 0.5313, 0.5199, 0.5116, 0.5052, 0.5009",\
                 "0.7808, 0.7709, 0.7444, 0.714, 0.6883, 0.6682, 0.6527, 0.6419, 0.6334, 0.6273",\
                 "0.9635, 0.9527, 0.9234, 0.8882, 0.8574, 0.8325, 0.8134, 0.7987, 0.7875, 0.779");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.002606, 0.008242, 0.01901, 0.03577, 0.0593, 0.09026, 0.1293, 0.1769, 0.2336");
          values("0.128, 0.1262, 0.1233, 0.1216, 0.1207, 0.1209, 0.1206, 0.121, 0.1211, 0.1215",\
                 "0.1283, 0.1265, 0.1234, 0.1218, 0.1211, 0.1215, 0.1217, 0.1215, 0.1213, 0.1199",\
                 "0.1365, 0.1344, 0.1303, 0.1276, 0.1267, 0.1267, 0.126, 0.1257, 0.1248, 0.1259",\
                 "0.163, 0.16, 0.1533, 0.1481, 0.145, 0.1432, 0.1428, 0.1423, 0.1414, 0.1402",\
                 "0.2088, 0.2048, 0.1965, 0.1873, 0.1809, 0.1779, 0.1754, 0.174, 0.1729, 0.1721",\
                 "0.2754, 0.2704, 0.2601, 0.248, 0.2388, 0.2308, 0.2259, 0.2238, 0.2219, 0.2205",\
                 "0.3644, 0.3578, 0.3446, 0.3304, 0.3183, 0.3068, 0.2977, 0.2938, 0.2884, 0.2876",\
                 "0.476, 0.4679, 0.4515, 0.4346, 0.4182, 0.406, 0.3943, 0.385, 0.3781, 0.3745",\
                 "0.6108, 0.602, 0.5827, 0.5618, 0.5426, 0.5256, 0.5135, 0.5009, 0.4919, 0.4834",\
                 "0.7705, 0.7602, 0.7371, 0.714, 0.6909, 0.6708, 0.6535, 0.6405, 0.63, 0.6171");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.002606, 0.008242, 0.01901, 0.03577, 0.0593, 0.09026, 0.1293, 0.1769, 0.2336");
          values("0.1192, 0.1292, 0.1585, 0.2061, 0.2747, 0.3689, 0.4929, 0.6495, 0.8405, 1.068",\
                 "0.1232, 0.1332, 0.1624, 0.2101, 0.2786, 0.3728, 0.4968, 0.6531, 0.8441, 1.072",\
                 "0.142, 0.1519, 0.1811, 0.2287, 0.2972, 0.3915, 0.5152, 0.6718, 0.8628, 1.091",\
                 "0.1814, 0.1912, 0.2203, 0.2676, 0.3357, 0.4296, 0.5532, 0.7094, 0.9004, 1.128",\
                 "0.2363, 0.2467, 0.2766, 0.3243, 0.3924, 0.4856, 0.609, 0.7648, 0.9556, 1.183",\
                 "0.3027, 0.314, 0.3458, 0.3952, 0.4637, 0.5567, 0.6793, 0.8346, 1.025, 1.252",\
                 "0.3802, 0.3928, 0.427, 0.4783, 0.549, 0.6431, 0.7652, 0.92, 1.11, 1.337",\
                 "0.4687, 0.4821, 0.519, 0.5732, 0.6461, 0.7423, 0.8662, 1.021, 1.21, 1.436",\
                 "0.5691, 0.5835, 0.623, 0.6801, 0.7553, 0.8538, 0.9804, 1.138, 1.327, 1.553",\
                 "0.682, 0.6973, 0.7393, 0.7998, 0.8777, 0.9783, 1.107, 1.268, 1.461, 1.688");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.002606, 0.008242, 0.01901, 0.03577, 0.0593, 0.09026, 0.1293, 0.1769, 0.2336");
          values("0.1019, 0.1125, 0.148, 0.2157, 0.3217, 0.4708, 0.6668, 0.9134, 1.215, 1.575",\
                 "0.1046, 0.1152, 0.1508, 0.2185, 0.3246, 0.4734, 0.6697, 0.9166, 1.218, 1.578",\
                 "0.1165, 0.1269, 0.1621, 0.2294, 0.3351, 0.4839, 0.68, 0.9265, 1.228, 1.587",\
                 "0.1332, 0.1435, 0.1784, 0.2446, 0.3493, 0.4978, 0.6934, 0.9401, 1.241, 1.601",\
                 "0.1453, 0.156, 0.1907, 0.2559, 0.3597, 0.5069, 0.702, 0.948, 1.249, 1.608",\
                 "0.1499, 0.1613, 0.1966, 0.2613, 0.3644, 0.5106, 0.7045, 0.9502, 1.25, 1.609",\
                 "0.1451, 0.1574, 0.1936, 0.2587, 0.3619, 0.5076, 0.7007, 0.9453, 1.245, 1.603",\
                 "0.1299, 0.143, 0.1808, 0.2464, 0.3493, 0.496, 0.6893, 0.9331, 1.232, 1.59",\
                 "0.1038, 0.1177, 0.1575, 0.2237, 0.3266, 0.4736, 0.6684, 0.9129, 1.211, 1.568",\
                 "0.0658, 0.0807, 0.1222, 0.1895, 0.2924, 0.44, 0.6356, 0.882, 1.182, 1.538");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.002606, 0.008242, 0.01901, 0.03577, 0.0593, 0.09026, 0.1293, 0.1769, 0.2336");
          values("0.0504, 0.06128, 0.09538, 0.159, 0.2628, 0.4153, 0.6191, 0.877, 1.192, 1.569",\
                 "0.05052, 0.06142, 0.09538, 0.159, 0.2628, 0.4155, 0.6197, 0.8783, 1.193, 1.569",\
                 "0.05068, 0.06142, 0.09564, 0.1592, 0.2627, 0.4156, 0.6199, 0.8771, 1.193, 1.569",\
                 "0.05332, 0.06386, 0.09724, 0.1602, 0.2633, 0.4152, 0.6192, 0.8774, 1.193, 1.568",\
                 "0.06062, 0.07144, 0.1043, 0.1647, 0.2651, 0.4156, 0.6194, 0.8762, 1.193, 1.569",\
                 "0.0712, 0.08212, 0.1148, 0.1739, 0.2701, 0.4177, 0.6198, 0.877, 1.192, 1.569",\
                 "0.08266, 0.09442, 0.1276, 0.1868, 0.2816, 0.424, 0.6214, 0.8776, 1.192, 1.567",\
                 "0.0946, 0.1076, 0.1422, 0.2008, 0.2962, 0.4376, 0.631, 0.8816, 1.193, 1.567",\
                 "0.1068, 0.1208, 0.1578, 0.217, 0.3104, 0.4536, 0.648, 0.8946, 1.199, 1.569",\
                 "0.1202, 0.1352, 0.1744, 0.234, 0.3272, 0.4698, 0.667, 0.9174, 1.218, 1.58");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.001, 0.002606, 0.008242, 0.01901, 0.03577, 0.0593, 0.09026, 0.1293, 0.1769, 0.2336");
          values("0.05052, 0.0666, 0.1254, 0.2424, 0.4267, 0.6857, 1.025, 1.454, 1.976, 2.599",\
                 "0.05044, 0.0667, 0.1254, 0.2428, 0.427, 0.6858, 1.026, 1.453, 1.976, 2.6",\
                 "0.05052, 0.06684, 0.1252, 0.2424, 0.4275, 0.6857, 1.025, 1.454, 1.976, 2.598",\
                 "0.05326, 0.0691, 0.1266, 0.2426, 0.4265, 0.6859, 1.025, 1.454, 1.976, 2.6",\
                 "0.0587, 0.0736, 0.1291, 0.2432, 0.427, 0.685, 1.025, 1.454, 1.975, 2.597",\
                 "0.0653, 0.07956, 0.1341, 0.2468, 0.4276, 0.6848, 1.024, 1.452, 1.975, 2.597",\
                 "0.07326, 0.0871, 0.1398, 0.2513, 0.4333, 0.6871, 1.024, 1.451, 1.975, 2.597",\
                 "0.0816, 0.09608, 0.1468, 0.257, 0.4398, 0.6954, 1.029, 1.452, 1.974, 2.597",\
                 "0.0906, 0.1058, 0.1554, 0.2628, 0.4462, 0.7044, 1.04, 1.46, 1.976, 2.596",\
                 "0.1004, 0.1158, 0.164, 0.2696, 0.453, 0.7132, 1.052, 1.473, 1.986, 2.599");
        }
      }
    }
  }

