/*
 * 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__dlya_1) {
    area : 24.147200 ;

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

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

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

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 0.1926 ;
      max_transition : 25 ;
      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.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.002322, 0.006965, 0.01583, 0.02964, 0.04902, 0.07452, 0.1066, 0.1459, 0.1926");
          values("0.02543, 0.02549, 0.02565, 0.02582, 0.02595, 0.02604, 0.02609, 0.02612, 0.02614, 0.02614",\
                 "0.02531, 0.02537, 0.02553, 0.02571, 0.02584, 0.02592, 0.02597, 0.02601, 0.02603, 0.02602",\
                 "0.02514, 0.0252, 0.02536, 0.02553, 0.02566, 0.02575, 0.0258, 0.02583, 0.02585, 0.02584",\
                 "0.02504, 0.02511, 0.02527, 0.02544, 0.02557, 0.02566, 0.02571, 0.02574, 0.02576, 0.02573",\
                 "0.02501, 0.02507, 0.02524, 0.02541, 0.02554, 0.02562, 0.02568, 0.02571, 0.02572, 0.02565",\
                 "0.02503, 0.02509, 0.02526, 0.02543, 0.02556, 0.02564, 0.0257, 0.02573, 0.0257, 0.02551",\
                 "0.02511, 0.02516, 0.02532, 0.0255, 0.02563, 0.02571, 0.02576, 0.02575, 0.02556, 0.02507",\
                 "0.02522, 0.02529, 0.02545, 0.02562, 0.02575, 0.02582, 0.02578, 0.02539, 0.02471, 0.02411",\
                 "0.02518, 0.02524, 0.02539, 0.02549, 0.02525, 0.02442, 0.02369, 0.0232, 0.02286, 0.02263",\
                 "0.008054, 0.008055, 0.008054, 0.008051, 0.008047, 0.008043, 0.008041, 0.008039, 0.008038, 0.008037");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.002322, 0.006965, 0.01583, 0.02964, 0.04902, 0.07452, 0.1066, 0.1459, 0.1926");
          values("0.01912, 0.01919, 0.01935, 0.01957, 0.01976, 0.01988, 0.02058, 0.02768, 0.05991, 0.118",\
                 "0.0191, 0.01917, 0.01933, 0.01955, 0.01974, 0.01986, 0.02061, 0.02812, 0.06084, 0.119",\
                 "0.01899, 0.01906, 0.01924, 0.01944, 0.01963, 0.01975, 0.02054, 0.02912, 0.0642, 0.1223",\
                 "0.0189, 0.01895, 0.01913, 0.01935, 0.01956, 0.0197, 0.02076, 0.03162, 0.07023, 0.1278",\
                 "0.01883, 0.01889, 0.01906, 0.01927, 0.01947, 0.01964, 0.02129, 0.03605, 0.07909, 0.1339",\
                 "0.01881, 0.01887, 0.01906, 0.01927, 0.01943, 0.01971, 0.02258, 0.04329, 0.09036, 0.1398",\
                 "0.01885, 0.01892, 0.01907, 0.01924, 0.01952, 0.01994, 0.02596, 0.05541, 0.1025, 0.1429",\
                 "0.01895, 0.019, 0.01916, 0.01937, 0.01953, 0.02087, 0.03445, 0.07188, 0.1113, 0.1404",\
                 "0.01911, 0.01916, 0.01935, 0.01951, 0.01987, 0.02556, 0.0518, 0.08557, 0.1104, 0.1278",\
                 "0.0194, 0.01946, 0.01962, 0.01987, 0.02324, 0.0428, 0.06601, 0.08188, 0.09251, 0.09984");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.002322, 0.006965, 0.01583, 0.02964, 0.04902, 0.07452, 0.1066, 0.1459, 0.1926");
          values("4.311, 4.41, 4.688, 5.088, 5.596, 6.221, 6.991, 7.933, 9.07, 10.42",\
                 "4.369, 4.469, 4.746, 5.148, 5.654, 6.28, 7.05, 7.992, 9.128, 10.48",\
                 "4.622, 4.721, 4.999, 5.4, 5.907, 6.533, 7.302, 8.244, 9.382, 10.73",\
                 "5.153, 5.253, 5.531, 5.932, 6.439, 7.064, 7.834, 8.776, 9.914, 11.27",\
                 "5.989, 6.089, 6.368, 6.769, 7.275, 7.901, 8.67, 9.612, 10.75, 12.1",\
                 "7.051, 7.149, 7.428, 7.829, 8.336, 8.961, 9.731, 10.67, 11.81, 13.16",\
                 "8.234, 8.334, 8.612, 9.013, 9.52, 10.15, 10.91, 11.85, 12.99, 14.34",\
                 "9.528, 9.629, 9.906, 10.31, 10.81, 11.44, 12.21, 13.15, 14.29, 15.64",\
                 "10.94, 11.04, 11.32, 11.72, 12.22, 12.85, 13.62, 14.56, 15.7, 17.05",\
                 "12.47, 12.57, 12.85, 13.25, 13.76, 14.38, 15.15, 16.09, 17.23, 18.58");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.002322, 0.006965, 0.01583, 0.02964, 0.04902, 0.07452, 0.1066, 0.1459, 0.1926");
          values("2.963, 3.073, 3.44, 4.123, 5.176, 6.647, 8.579, 11.01, 13.98, 17.51",\
                 "3.027, 3.137, 3.504, 4.187, 5.24, 6.711, 8.643, 11.07, 14.04, 17.58",\
                 "3.237, 3.347, 3.714, 4.397, 5.45, 6.921, 8.855, 11.29, 14.25, 17.79",\
                 "3.532, 3.642, 4.01, 4.693, 5.746, 7.218, 9.151, 11.59, 14.56, 18.09",\
                 "3.802, 3.912, 4.28, 4.962, 6.017, 7.488, 9.421, 11.85, 14.83, 18.35",\
                 "4.022, 4.132, 4.5, 5.183, 6.235, 7.707, 9.64, 12.07, 15.05, 18.59",\
                 "4.178, 4.288, 4.656, 5.339, 6.392, 7.862, 9.794, 12.23, 15.2, 18.73",\
                 "4.257, 4.366, 4.734, 5.417, 6.47, 7.941, 9.873, 12.3, 15.27, 18.81",\
                 "4.244, 4.354, 4.722, 5.404, 6.458, 7.928, 9.861, 12.29, 15.26, 18.79",\
                 "4.127, 4.238, 4.605, 5.287, 6.341, 7.812, 9.744, 12.17, 15.14, 18.68");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.002322, 0.006965, 0.01583, 0.02964, 0.04902, 0.07452, 0.1066, 0.1459, 0.1926");
          values("0.6662, 0.7478, 0.997, 1.416, 2.035, 2.901, 4.076, 5.607, 7.527, 9.832",\
                 "0.6668, 0.7478, 0.9972, 1.416, 2.036, 2.897, 4.076, 5.607, 7.527, 9.832",\
                 "0.6666, 0.7478, 0.9974, 1.416, 2.035, 2.898, 4.079, 5.613, 7.529, 9.832",\
                 "0.667, 0.7474, 0.9972, 1.416, 2.032, 2.899, 4.08, 5.609, 7.525, 9.832",\
                 "0.666, 0.7474, 0.9956, 1.416, 2.027, 2.903, 4.081, 5.608, 7.528, 9.832",\
                 "0.666, 0.748, 0.996, 1.414, 2.028, 2.894, 4.08, 5.612, 7.524, 9.824",\
                 "0.668, 0.748, 0.996, 1.412, 2.028, 2.902, 4.082, 5.616, 7.52, 9.83",\
                 "0.666, 0.748, 0.998, 1.416, 2.03, 2.9, 4.082, 5.606, 7.526, 9.81",\
                 "0.668, 0.748, 0.998, 1.416, 2.032, 2.9, 4.074, 5.61, 7.514, 9.824",\
                 "0.668, 0.748, 0.998, 1.414, 2.034, 2.896, 4.08, 5.608, 7.518, 9.816");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.002322, 0.006965, 0.01583, 0.02964, 0.04902, 0.07452, 0.1066, 0.1459, 0.1926");
          values("0.6048, 0.763, 1.333, 2.458, 4.222, 6.692, 9.966, 14.05, 19.06, 25.01",\
                 "0.6048, 0.763, 1.333, 2.458, 4.221, 6.692, 9.966, 14.06, 19.06, 25.01",\
                 "0.6042, 0.7602, 1.333, 2.458, 4.221, 6.695, 9.942, 14.04, 19.06, 25",\
                 "0.6044, 0.7606, 1.333, 2.457, 4.22, 6.7, 9.943, 14.09, 19.06, 25.04",\
                 "0.6038, 0.7616, 1.333, 2.456, 4.221, 6.699, 9.942, 14.09, 19.06, 25",\
                 "0.6032, 0.7612, 1.333, 2.453, 4.217, 6.7, 9.942, 14.06, 19.06, 25.01",\
                 "0.6042, 0.7604, 1.332, 2.452, 4.214, 6.684, 9.944, 14.07, 19.04, 25.03",\
                 "0.604, 0.76, 1.332, 2.456, 4.222, 6.692, 9.934, 14.03, 19.06, 25.05",\
                 "0.604, 0.762, 1.334, 2.456, 4.222, 6.692, 9.948, 14.03, 19.04, 25.04",\
                 "0.604, 0.762, 1.332, 2.458, 4.216, 6.698, 9.938, 14.04, 19.03, 25.01");
        }
      }
    }
  }

