/*
 * 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_8) {
    area : 57.075200 ;

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

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

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

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 2.865 ;
      max_transition : 11 ;
      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.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.02077, 0.09017, 0.2227, 0.4292, 0.7189, 1.1, 1.58, 2.167, 2.865");
          values("0.3706, 0.3728, 0.3796, 0.3838, 0.3859, 0.3871, 0.3879, 0.3883, 0.3883, 0.3887",\
                 "0.3652, 0.368, 0.3748, 0.3787, 0.381, 0.382, 0.3826, 0.383, 0.3831, 0.3833",\
                 "0.3621, 0.3638, 0.3692, 0.3741, 0.3771, 0.3786, 0.3793, 0.3802, 0.3804, 0.3805",\
                 "0.3741, 0.3733, 0.3759, 0.3799, 0.383, 0.3847, 0.3859, 0.3865, 0.3869, 0.3871",\
                 "0.3994, 0.3952, 0.3955, 0.3973, 0.4001, 0.4019, 0.403, 0.404, 0.4044, 0.4047",\
                 "0.4372, 0.4303, 0.4259, 0.427, 0.4287, 0.4304, 0.4314, 0.4325, 0.4331, 0.4334",\
                 "0.4878, 0.4781, 0.4702, 0.4689, 0.4698, 0.4712, 0.4722, 0.4729, 0.4736, 0.4741",\
                 "0.5546, 0.5408, 0.5285, 0.5249, 0.5244, 0.525, 0.5258, 0.5265, 0.5269, 0.5274",\
                 "0.6363, 0.6197, 0.6032, 0.5965, 0.5942, 0.5941, 0.5941, 0.5949, 0.595, 0.5953",\
                 "0.7352, 0.715, 0.6945, 0.684, 0.6796, 0.6783, 0.6784, 0.6784, 0.6784, 0.679");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.02077, 0.09017, 0.2227, 0.4292, 0.7189, 1.1, 1.58, 2.167, 2.865");
          values("0.2114, 0.2147, 0.2238, 0.231, 0.2364, 0.2416, 0.2454, 0.255, 0.2631, 0.3453",\
                 "0.2087, 0.2125, 0.221, 0.228, 0.2337, 0.2392, 0.243, 0.2499, 0.2625, 0.3419",\
                 "0.207, 0.209, 0.215, 0.2218, 0.2289, 0.2347, 0.2409, 0.246, 0.2605, 0.3447",\
                 "0.2146, 0.2138, 0.218, 0.2227, 0.2298, 0.2359, 0.2409, 0.2496, 0.2643, 0.3632",\
                 "0.234, 0.2318, 0.2305, 0.2372, 0.2415, 0.2476, 0.2541, 0.2589, 0.2717, 0.39",\
                 "0.265, 0.2612, 0.2573, 0.2599, 0.2664, 0.2722, 0.2766, 0.2814, 0.2953, 0.4363",\
                 "0.3091, 0.3034, 0.2975, 0.2978, 0.2985, 0.3097, 0.3132, 0.318, 0.3327, 0.5219",\
                 "0.3679, 0.3608, 0.3521, 0.3485, 0.3483, 0.352, 0.3639, 0.373, 0.3912, 0.6357",\
                 "0.4404, 0.4307, 0.4193, 0.4141, 0.4116, 0.412, 0.4188, 0.4337, 0.4802, 0.8367",\
                 "0.5283, 0.5166, 0.5021, 0.4928, 0.4902, 0.4891, 0.492, 0.5035, 0.6007, 1.175");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.02077, 0.09017, 0.2227, 0.4292, 0.7189, 1.1, 1.58, 2.167, 2.865");
          values("0.2777, 0.3236, 0.4361, 0.6112, 0.8705, 1.232, 1.707, 2.305, 3.035, 3.907",\
                 "0.3011, 0.3468, 0.4594, 0.6344, 0.8937, 1.255, 1.73, 2.329, 3.058, 3.93",\
                 "0.3965, 0.4421, 0.5545, 0.7298, 0.9891, 1.35, 1.825, 2.424, 3.155, 4.025",\
                 "0.5588, 0.6088, 0.7264, 0.903, 1.163, 1.524, 1.999, 2.597, 3.327, 4.199",\
                 "0.7409, 0.7981, 0.9256, 1.108, 1.37, 1.731, 2.206, 2.804, 3.534, 4.403",\
                 "0.9472, 1.01, 1.149, 1.337, 1.6, 1.962, 2.437, 3.035, 3.765, 4.635",\
                 "1.185, 1.253, 1.404, 1.598, 1.863, 2.225, 2.7, 3.298, 4.028, 4.897",\
                 "1.459, 1.531, 1.694, 1.897, 2.163, 2.526, 3, 3.598, 4.329, 5.199",\
                 "1.766, 1.845, 2.02, 2.234, 2.506, 2.868, 3.342, 3.94, 4.67, 5.54",\
                 "2.11, 2.194, 2.383, 2.611, 2.889, 3.253, 3.728, 4.325, 5.055, 5.925");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.02077, 0.09017, 0.2227, 0.4292, 0.7189, 1.1, 1.58, 2.167, 2.865");
          values("0.217, 0.2677, 0.4285, 0.7278, 1.191, 1.838, 2.691, 3.762, 5.074, 6.637",\
                 "0.2387, 0.2895, 0.4501, 0.7494, 1.213, 1.861, 2.712, 3.787, 5.096, 6.653",\
                 "0.3142, 0.3648, 0.5241, 0.8233, 1.287, 1.934, 2.788, 3.861, 5.17, 6.731",\
                 "0.3953, 0.4499, 0.6099, 0.908, 1.371, 2.02, 2.872, 3.946, 5.254, 6.811",\
                 "0.4527, 0.5123, 0.6744, 0.9719, 1.435, 2.082, 2.934, 4.009, 5.32, 6.878",\
                 "0.4855, 0.5511, 0.7179, 1.014, 1.476, 2.124, 2.975, 4.048, 5.359, 6.921",\
                 "0.4924, 0.5646, 0.7383, 1.033, 1.494, 2.141, 2.993, 4.065, 5.373, 6.936",\
                 "0.4693, 0.5477, 0.7313, 1.027, 1.487, 2.133, 2.984, 4.056, 5.364, 6.923",\
                 "0.4145, 0.4981, 0.6932, 0.9925, 1.453, 2.098, 2.95, 4.02, 5.329, 6.889",\
                 "0.3263, 0.4147, 0.6228, 0.9257, 1.388, 2.035, 2.886, 3.957, 5.265, 6.824");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.02077, 0.09017, 0.2227, 0.4292, 0.7189, 1.1, 1.58, 2.167, 2.865");
          values("0.08872, 0.1314, 0.2615, 0.5145, 0.9301, 1.524, 2.307, 3.296, 4.493, 5.936",\
                 "0.08876, 0.1317, 0.2614, 0.5141, 0.9308, 1.524, 2.308, 3.299, 4.493, 5.928",\
                 "0.0892, 0.1323, 0.2616, 0.5141, 0.9303, 1.525, 2.307, 3.297, 4.494, 5.928",\
                 "0.1062, 0.1482, 0.2712, 0.5178, 0.9312, 1.525, 2.308, 3.294, 4.505, 5.928",\
                 "0.129, 0.1756, 0.2942, 0.531, 0.9354, 1.525, 2.307, 3.292, 4.495, 5.942",\
                 "0.1492, 0.2014, 0.3176, 0.5446, 0.9418, 1.529, 2.308, 3.291, 4.502, 5.939",\
                 "0.1688, 0.225, 0.3436, 0.5608, 0.9496, 1.532, 2.311, 3.293, 4.497, 5.934",\
                 "0.1904, 0.2496, 0.3748, 0.5806, 0.9578, 1.535, 2.312, 3.296, 4.496, 5.929",\
                 "0.2134, 0.2762, 0.4108, 0.6068, 0.9712, 1.541, 2.315, 3.298, 4.498, 5.93",\
                 "0.2376, 0.3042, 0.4506, 0.6418, 0.9926, 1.551, 2.321, 3.302, 4.5, 5.934");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.02077, 0.09017, 0.2227, 0.4292, 0.7189, 1.1, 1.58, 2.167, 2.865");
          values("0.08796, 0.1564, 0.4149, 0.922, 1.711, 2.817, 4.279, 6.124, 8.36, 11.05",\
                 "0.08816, 0.1563, 0.4151, 0.9227, 1.711, 2.821, 4.277, 6.126, 8.371, 11.04",\
                 "0.0907, 0.1577, 0.4151, 0.9228, 1.713, 2.823, 4.282, 6.123, 8.372, 11.03",\
                 "0.1077, 0.1699, 0.418, 0.921, 1.712, 2.819, 4.273, 6.119, 8.365, 11.04",\
                 "0.1252, 0.1864, 0.4224, 0.9236, 1.712, 2.818, 4.278, 6.113, 8.364, 11.04",\
                 "0.1428, 0.2062, 0.428, 0.9244, 1.711, 2.815, 4.274, 6.113, 8.355, 11.02",\
                 "0.1614, 0.2302, 0.4388, 0.927, 1.712, 2.817, 4.269, 6.109, 8.35, 11.02",\
                 "0.1798, 0.2548, 0.4558, 0.9324, 1.716, 2.819, 4.27, 6.101, 8.347, 11.02",\
                 "0.1996, 0.2792, 0.4788, 0.94, 1.719, 2.819, 4.273, 6.102, 8.336, 11.01",\
                 "0.2182, 0.3038, 0.506, 0.9524, 1.732, 2.83, 4.276, 6.106, 8.339, 11");
        }
      }
    }
  }

