/*
 * 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__clkbuf_4) {
    area : 30.732800 ;

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

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

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

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 0.9639 ;
      max_transition : 7 ;
      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.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.007646, 0.03098, 0.07553, 0.1449, 0.2423, 0.3705, 0.5319, 0.729, 0.9639");
          values("0.3657, 0.3595, 0.3531, 0.3508, 0.3501, 0.3497, 0.3493, 0.3493, 0.3493, 0.3493",\
                 "0.3648, 0.3586, 0.3522, 0.35, 0.3493, 0.3491, 0.3487, 0.3488, 0.3488, 0.3487",\
                 "0.3673, 0.3603, 0.3537, 0.3514, 0.351, 0.3506, 0.3505, 0.3504, 0.3505, 0.3505",\
                 "0.3911, 0.382, 0.3711, 0.3657, 0.3636, 0.363, 0.3627, 0.3625, 0.3625, 0.3623",\
                 "0.4421, 0.4294, 0.411, 0.3992, 0.394, 0.3911, 0.3896, 0.3888, 0.3883, 0.388",\
                 "0.5173, 0.5003, 0.4739, 0.4552, 0.4444, 0.4382, 0.4352, 0.4331, 0.4317, 0.4309",\
                 "0.6168, 0.5959, 0.5609, 0.5337, 0.5171, 0.5067, 0.5007, 0.4966, 0.4941, 0.4925",\
                 "0.7402, 0.7163, 0.6719, 0.6362, 0.6125, 0.5963, 0.5867, 0.5808, 0.5766, 0.5739",\
                 "0.888, 0.8616, 0.8081, 0.7638, 0.7313, 0.7101, 0.6957, 0.6868, 0.6806, 0.6763",\
                 "1.062, 1.032, 0.9703, 0.9169, 0.8764, 0.8472, 0.8287, 0.8161, 0.8073, 0.8011");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.007646, 0.03098, 0.07553, 0.1449, 0.2423, 0.3705, 0.5319, 0.729, 0.9639");
          values("0.2786, 0.2676, 0.2542, 0.2492, 0.2469, 0.247, 0.2489, 0.2524, 0.2557, 0.2617",\
                 "0.2771, 0.2659, 0.2535, 0.2479, 0.2461, 0.2461, 0.2484, 0.2506, 0.2552, 0.2604",\
                 "0.2777, 0.2663, 0.2536, 0.2471, 0.245, 0.2457, 0.2484, 0.2524, 0.2539, 0.2612",\
                 "0.2988, 0.2858, 0.2687, 0.2595, 0.2558, 0.2565, 0.257, 0.26, 0.262, 0.2702",\
                 "0.3474, 0.3313, 0.3075, 0.2927, 0.285, 0.2826, 0.2835, 0.2834, 0.2876, 0.2949",\
                 "0.4178, 0.3977, 0.367, 0.346, 0.3327, 0.3267, 0.3254, 0.3266, 0.3259, 0.3344",\
                 "0.5117, 0.4878, 0.4481, 0.4171, 0.4023, 0.3946, 0.3902, 0.3878, 0.3846, 0.391",\
                 "0.6291, 0.6023, 0.5543, 0.5155, 0.4911, 0.4774, 0.4757, 0.4684, 0.4651, 0.47",\
                 "0.7693, 0.7402, 0.6819, 0.6361, 0.6041, 0.5832, 0.5706, 0.5728, 0.5693, 0.5754",\
                 "0.9336, 0.9023, 0.8353, 0.7803, 0.7397, 0.7128, 0.6953, 0.6893, 0.6914, 0.7115");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.007646, 0.03098, 0.07553, 0.1449, 0.2423, 0.3705, 0.5319, 0.729, 0.9639");
          values("0.3154, 0.359, 0.4825, 0.6827, 0.9787, 1.391, 1.933, 2.616, 3.449, 4.443",\
                 "0.3285, 0.372, 0.4956, 0.6958, 0.9918, 1.404, 1.946, 2.628, 3.464, 4.458",\
                 "0.3789, 0.4224, 0.5456, 0.7457, 1.042, 1.454, 1.996, 2.678, 3.514, 4.508",\
                 "0.4771, 0.5204, 0.6427, 0.8416, 1.137, 1.549, 2.091, 2.773, 3.608, 4.602",\
                 "0.5973, 0.6425, 0.7677, 0.968, 1.262, 1.673, 2.214, 2.896, 3.731, 4.725",\
                 "0.7284, 0.7764, 0.905, 1.109, 1.403, 1.812, 2.352, 3.035, 3.867, 4.862",\
                 "0.8671, 0.9187, 1.053, 1.262, 1.557, 1.966, 2.505, 3.185, 4.018, 5.012",\
                 "1.013, 1.069, 1.21, 1.425, 1.726, 2.136, 2.673, 3.353, 4.184, 5.175",\
                 "1.166, 1.224, 1.375, 1.596, 1.903, 2.318, 2.858, 3.536, 4.367, 5.357",\
                 "1.324, 1.387, 1.545, 1.774, 2.088, 2.51, 3.056, 3.737, 4.566, 5.557");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.007646, 0.03098, 0.07553, 0.1449, 0.2423, 0.3705, 0.5319, 0.729, 0.9639");
          values("0.339, 0.379, 0.4889, 0.6697, 0.9405, 1.32, 1.82, 2.449, 3.219, 4.137",\
                 "0.3479, 0.388, 0.4984, 0.6788, 0.9495, 1.329, 1.829, 2.458, 3.228, 4.146",\
                 "0.3856, 0.4253, 0.5356, 0.7157, 0.9865, 1.365, 1.866, 2.495, 3.266, 4.182",\
                 "0.4633, 0.5032, 0.6123, 0.7919, 1.062, 1.441, 1.941, 2.571, 3.339, 4.258",\
                 "0.5513, 0.5939, 0.7066, 0.887, 1.156, 1.534, 2.034, 2.663, 3.43, 4.346",\
                 "0.6377, 0.6834, 0.802, 0.9847, 1.252, 1.629, 2.127, 2.756, 3.524, 4.442",\
                 "0.7202, 0.77, 0.8952, 1.082, 1.351, 1.726, 2.223, 2.85, 3.617, 4.533",\
                 "0.7968, 0.851, 0.9845, 1.177, 1.449, 1.825, 2.32, 2.946, 3.712, 4.626",\
                 "0.8668, 0.9246, 1.067, 1.267, 1.544, 1.923, 2.419, 3.044, 3.809, 4.722",\
                 "0.9296, 0.991, 1.142, 1.351, 1.633, 2.016, 2.516, 3.143, 3.907, 4.82");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.007646, 0.03098, 0.07553, 0.1449, 0.2423, 0.3705, 0.5319, 0.729, 0.9639");
          values("0.1179, 0.1686, 0.3261, 0.6244, 1.11, 1.806, 2.73, 3.892, 5.315, 7.008",\
                 "0.1176, 0.1686, 0.3266, 0.6232, 1.11, 1.806, 2.73, 3.891, 5.308, 7.002",\
                 "0.1179, 0.1687, 0.3273, 0.6233, 1.109, 1.807, 2.73, 3.894, 5.307, 7.002",\
                 "0.1226, 0.1728, 0.3299, 0.6246, 1.109, 1.808, 2.728, 3.894, 5.313, 7.009",\
                 "0.14, 0.1904, 0.3442, 0.6314, 1.112, 1.808, 2.729, 3.893, 5.312, 7.008",\
                 "0.1622, 0.2124, 0.3648, 0.6462, 1.117, 1.809, 2.729, 3.893, 5.311, 6.997",\
                 "0.1886, 0.2394, 0.391, 0.6696, 1.128, 1.811, 2.727, 3.888, 5.307, 7.003",\
                 "0.2154, 0.2694, 0.4226, 0.6998, 1.151, 1.822, 2.731, 3.89, 5.304, 6.993",\
                 "0.2446, 0.303, 0.4558, 0.7344, 1.184, 1.851, 2.746, 3.892, 5.305, 6.994",\
                 "0.2726, 0.3368, 0.494, 0.7704, 1.222, 1.888, 2.779, 3.911, 5.309, 6.988");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.007646, 0.03098, 0.07553, 0.1449, 0.2423, 0.3705, 0.5319, 0.729, 0.9639");
          values("0.1254, 0.1698, 0.3172, 0.6076, 1.085, 1.766, 2.665, 3.799, 5.185, 6.835",\
                 "0.1261, 0.1706, 0.3164, 0.6074, 1.086, 1.768, 2.663, 3.799, 5.182, 6.835",\
                 "0.1253, 0.1702, 0.3166, 0.6067, 1.084, 1.768, 2.667, 3.796, 5.184, 6.834",\
                 "0.13, 0.1731, 0.3191, 0.6075, 1.085, 1.768, 2.664, 3.799, 5.177, 6.834",\
                 "0.149, 0.1926, 0.3324, 0.6146, 1.086, 1.766, 2.667, 3.797, 5.174, 6.827",\
                 "0.1696, 0.2156, 0.351, 0.6242, 1.091, 1.769, 2.667, 3.792, 5.176, 6.833",\
                 "0.193, 0.243, 0.3756, 0.641, 1.098, 1.77, 2.666, 3.792, 5.171, 6.818",\
                 "0.2202, 0.2706, 0.4066, 0.6662, 1.112, 1.775, 2.668, 3.796, 5.184, 6.829",\
                 "0.2462, 0.301, 0.44, 0.6958, 1.136, 1.793, 2.676, 3.801, 5.176, 6.821",\
                 "0.274, 0.332, 0.4756, 0.728, 1.166, 1.823, 2.701, 3.814, 5.183, 6.823");
        }
      }
    }
  }

