/*
 * 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 : "2.04174e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "I" ;
      value : "2.007e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "2.04174e-05" ;
    }

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

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

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

    pin(Z) {
      direction : output ;
      function : "I" ;
      max_capacitance : 0.207 ;
      max_transition : 12 ;
      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.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.001, 0.002422, 0.007413, 0.01694, 0.03179, 0.05263, 0.08005, 0.1146, 0.1568, 0.207");
          values("0.03072, 0.0308, 0.031, 0.03121, 0.03137, 0.03147, 0.03153, 0.03158, 0.0316, 0.03162",\
                 "0.03056, 0.03063, 0.03083, 0.03104, 0.03121, 0.03131, 0.03137, 0.03141, 0.03144, 0.03146",\
                 "0.03033, 0.0304, 0.03061, 0.03082, 0.03098, 0.03109, 0.03114, 0.03118, 0.03122, 0.03123",\
                 "0.03024, 0.03032, 0.03052, 0.03073, 0.03089, 0.03099, 0.03105, 0.03109, 0.03112, 0.03113",\
                 "0.03027, 0.03035, 0.03055, 0.03077, 0.03092, 0.03103, 0.03109, 0.03113, 0.03116, 0.03117",\
                 "0.03043, 0.03049, 0.03069, 0.03092, 0.03108, 0.03118, 0.03125, 0.03128, 0.03131, 0.03133",\
                 "0.03071, 0.03078, 0.03098, 0.03119, 0.03135, 0.03145, 0.03152, 0.03156, 0.03158, 0.0316",\
                 "0.0311, 0.03117, 0.03136, 0.03159, 0.03175, 0.03185, 0.03192, 0.03195, 0.03198, 0.032",\
                 "0.03163, 0.03171, 0.0319, 0.03211, 0.03227, 0.03238, 0.03245, 0.03249, 0.03251, 0.03251",\
                 "0.03231, 0.03237, 0.03257, 0.03278, 0.03294, 0.03305, 0.03312, 0.03316, 0.03319, 0.0332");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.001, 0.002422, 0.007413, 0.01694, 0.03179, 0.05263, 0.08005, 0.1146, 0.1568, 0.207");
          values("0.02382, 0.02391, 0.02414, 0.02441, 0.02465, 0.02485, 0.02506, 0.02524, 0.0256, 0.03013",\
                 "0.02379, 0.02388, 0.02411, 0.02439, 0.02462, 0.02483, 0.02503, 0.02524, 0.02584, 0.03068",\
                 "0.02363, 0.02372, 0.02396, 0.02423, 0.02447, 0.02474, 0.02485, 0.02501, 0.02561, 0.03065",\
                 "0.0235, 0.02361, 0.02383, 0.02408, 0.02433, 0.02454, 0.02467, 0.02492, 0.02574, 0.03144",\
                 "0.02348, 0.02355, 0.02379, 0.02407, 0.02433, 0.02451, 0.02472, 0.02503, 0.02587, 0.03215",\
                 "0.02356, 0.02363, 0.02386, 0.02417, 0.0244, 0.02467, 0.02474, 0.02511, 0.02617, 0.03461",\
                 "0.02375, 0.02384, 0.02408, 0.02433, 0.02461, 0.0249, 0.02494, 0.02517, 0.02657, 0.03747",\
                 "0.0241, 0.02418, 0.02441, 0.02466, 0.02486, 0.02512, 0.02539, 0.0255, 0.02775, 0.04229",\
                 "0.02455, 0.02461, 0.02484, 0.0251, 0.02527, 0.02541, 0.02579, 0.02633, 0.02985, 0.05072",\
                 "0.02513, 0.02522, 0.02545, 0.0257, 0.02594, 0.02598, 0.02615, 0.027, 0.03354, 0.0652");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.001, 0.002422, 0.007413, 0.01694, 0.03179, 0.05263, 0.08005, 0.1146, 0.1568, 0.207");
          values("1.728, 1.777, 1.913, 2.107, 2.355, 2.666, 3.055, 3.537, 4.121, 4.818",\
                 "1.753, 1.802, 1.938, 2.132, 2.38, 2.691, 3.08, 3.562, 4.146, 4.843",\
                 "1.865, 1.914, 2.05, 2.244, 2.492, 2.803, 3.193, 3.674, 4.259, 4.956",\
                 "2.102, 2.151, 2.287, 2.481, 2.729, 3.04, 3.429, 3.911, 4.496, 5.192",\
                 "2.457, 2.507, 2.642, 2.837, 3.084, 3.395, 3.784, 4.266, 4.851, 5.547",\
                 "2.871, 2.92, 3.056, 3.25, 3.498, 3.809, 4.199, 4.68, 5.265, 5.96",\
                 "3.323, 3.372, 3.508, 3.703, 3.951, 4.262, 4.651, 5.132, 5.717, 6.413",\
                 "3.818, 3.867, 4.003, 4.198, 4.445, 4.757, 5.146, 5.627, 6.212, 6.908",\
                 "4.361, 4.41, 4.545, 4.739, 4.988, 5.298, 5.688, 6.17, 6.755, 7.449",\
                 "4.958, 5.008, 5.143, 5.338, 5.586, 5.896, 6.286, 6.768, 7.353, 8.049");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.001, 0.002422, 0.007413, 0.01694, 0.03179, 0.05263, 0.08005, 0.1146, 0.1568, 0.207");
          values("1.248, 1.301, 1.475, 1.798, 2.297, 2.994, 3.91, 5.066, 6.475, 8.156",\
                 "1.275, 1.328, 1.502, 1.826, 2.325, 3.023, 3.939, 5.094, 6.505, 8.183",\
                 "1.365, 1.418, 1.592, 1.916, 2.415, 3.112, 4.029, 5.185, 6.595, 8.275",\
                 "1.477, 1.53, 1.704, 2.027, 2.526, 3.224, 4.14, 5.296, 6.705, 8.383",\
                 "1.563, 1.616, 1.791, 2.115, 2.613, 3.311, 4.228, 5.38, 6.787, 8.465",\
                 "1.616, 1.669, 1.843, 2.167, 2.666, 3.363, 4.28, 5.432, 6.845, 8.515",\
                 "1.629, 1.682, 1.856, 2.18, 2.679, 3.376, 4.292, 5.444, 6.853, 8.535",\
                 "1.597, 1.65, 1.824, 2.147, 2.647, 3.344, 4.259, 5.412, 6.818, 8.498",\
                 "1.515, 1.568, 1.742, 2.066, 2.565, 3.263, 4.178, 5.331, 6.738, 8.414",\
                 "1.382, 1.435, 1.609, 1.933, 2.432, 3.13, 4.045, 5.198, 6.605, 8.28");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.001, 0.002422, 0.007413, 0.01694, 0.03179, 0.05263, 0.08005, 0.1146, 0.1568, 0.207");
          values("0.2934, 0.334, 0.4568, 0.6642, 0.9776, 1.428, 2.045, 2.844, 3.835, 5.024",\
                 "0.2942, 0.3344, 0.4564, 0.6644, 0.977, 1.427, 2.044, 2.841, 3.835, 5.022",\
                 "0.294, 0.334, 0.4574, 0.666, 0.9768, 1.428, 2.043, 2.844, 3.835, 5.024",\
                 "0.2942, 0.3346, 0.4574, 0.6662, 0.978, 1.427, 2.044, 2.84, 3.831, 5.016",\
                 "0.2954, 0.334, 0.457, 0.6642, 0.977, 1.427, 2.044, 2.841, 3.836, 5.017",\
                 "0.2934, 0.3346, 0.4566, 0.6644, 0.976, 1.427, 2.044, 2.844, 3.832, 5.02",\
                 "0.2942, 0.3338, 0.4562, 0.6646, 0.9758, 1.428, 2.044, 2.841, 3.834, 5.022",\
                 "0.2938, 0.334, 0.4578, 0.6648, 0.9756, 1.426, 2.044, 2.84, 3.834, 5.023",\
                 "0.2938, 0.3344, 0.4576, 0.664, 0.978, 1.428, 2.042, 2.842, 3.83, 5.016",\
                 "0.294, 0.334, 0.456, 0.664, 0.976, 1.426, 2.042, 2.844, 3.832, 5.014");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.001, 0.002422, 0.007413, 0.01694, 0.03179, 0.05263, 0.08005, 0.1146, 0.1568, 0.207");
          values("0.2626, 0.3362, 0.6112, 1.152, 1.998, 3.191, 4.766, 6.744, 9.142, 12.02",\
                 "0.2622, 0.3358, 0.6104, 1.152, 2, 3.19, 4.763, 6.748, 9.171, 12.05",\
                 "0.2626, 0.336, 0.6106, 1.152, 2.001, 3.192, 4.76, 6.749, 9.172, 12.06",\
                 "0.2618, 0.3362, 0.611, 1.152, 2, 3.191, 4.762, 6.746, 9.17, 12.05",\
                 "0.2614, 0.3354, 0.6098, 1.152, 1.998, 3.194, 4.762, 6.746, 9.158, 12.02",\
                 "0.2616, 0.3358, 0.6112, 1.15, 1.999, 3.193, 4.761, 6.745, 9.168, 12.03",\
                 "0.263, 0.336, 0.6104, 1.15, 1.997, 3.186, 4.755, 6.733, 9.158, 12.04",\
                 "0.2618, 0.3362, 0.6094, 1.151, 1.997, 3.188, 4.751, 6.733, 9.148, 12.02",\
                 "0.2616, 0.3366, 0.61, 1.152, 2, 3.186, 4.754, 6.724, 9.132, 12.02",\
                 "0.2616, 0.336, 0.6106, 1.15, 2, 3.192, 4.754, 6.724, 9.134, 12");
        }
      }
    }
  }

