/*
 * 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_mcu9t5v0__dffnq_2) {
    area : 87.494400 ;

    ff(IQ1,IQN1) {
      clocked_on : "(!CLKN)" ;
      next_state : "D" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!CLKN&!D" ;
      value : "0.000271548" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!CLKN&D" ;
      value : "0.000288558" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "CLKN&!D" ;
      value : "0.0002270376" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "CLKN&D" ;
      value : "0.0002242512" ;
    }

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

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

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

    pin(CLKN) {
      capacitance : 0.004944 ;
      clock : true ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 4.4 ;
      min_period : 0.653 ;
      min_pulse_width_high : 0.268 ;
      min_pulse_width_low : 0.32 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!D" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.2027, 0.2023, 0.2052, 0.2201, 0.2487, 0.2927, 0.3532, 0.4307, \
                  0.5264, 0.6408");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.1284, 0.128, 0.1305, 0.1428, 0.167, 0.2054, 0.2586, 0.3276, \
                  0.4123, 0.5142");
        }
      }

      internal_power() {
        when : "D" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.203, 0.2024, 0.2054, 0.2205, 0.2489, 0.2929, 0.3532, 0.4308, \
                  0.5267, 0.6411");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.1284, 0.1278, 0.1303, 0.1426, 0.1668, 0.2051, 0.2584, 0.3272, \
                  0.4122, 0.514");
        }
      }

      timing() {
        related_pin : "CLKN" ;
        sdf_cond : "ENABLE_NOT_D === 1'b1" ;
        timing_type : min_pulse_width ;
        when : "!D" ;

        fall_constraint(scalar) {
          values("0.304");
        }

        rise_constraint(scalar) {
          values("0.268");
        }
      }

      timing() {
        related_pin : "CLKN" ;
        sdf_cond : "ENABLE_D === 1'b1" ;
        timing_type : min_pulse_width ;
        when : "D" ;

        fall_constraint(scalar) {
          values("0.32");
        }

        rise_constraint(scalar) {
          values("0.254");
        }
      }

      timing() {
        related_pin : "CLKN" ;
        sdf_cond : "ENABLE_NOT_D === 1'b1" ;
        timing_type : minimum_period ;
        when : "!D" ;

        fall_constraint(scalar) {
          values("0.617");
        }
      }

      timing() {
        related_pin : "CLKN" ;
        sdf_cond : "ENABLE_D === 1'b1" ;
        timing_type : minimum_period ;
        when : "D" ;

        fall_constraint(scalar) {
          values("0.653");
        }
      }
    }

    pin(D) {
      capacitance : 0.003849 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 4.4 ;
      nextstate_type : data ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!CLKN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.04555, 0.04535, 0.05, 0.0628, 0.08495, 0.1172, 0.1603, 0.2152, \
                  0.2825, 0.363");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.003524, 0.003245, 0.006171, 0.01649, 0.03541, 0.06371, 0.1018, \
                  0.1505, 0.2104, 0.2821");
        }
      }

      internal_power() {
        when : "CLKN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.1538, 0.1536, 0.1566, 0.168, 0.1899, 0.2235, 0.2697, 0.329, \
                  0.4022, 0.4896");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.1069, 0.1067, 0.1092, 0.1184, 0.1362, 0.1645, 0.2039, 0.255, \
                  0.3186, 0.3948");
        }
      }

      timing() {
        related_pin : "CLKN" ;
        timing_type : hold_falling ;

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.011, 0.013, 0.045, 0.087, 0.142, 0.198, 0.275, 0.366, 0.481, 0.598",\
                 "0.006, 0.007, 0.038, 0.084, 0.136, 0.194, 0.268, 0.363, 0.467, 0.59",\
                 "-0.028, -0.02, 0.005, 0.049, 0.1, 0.161, 0.238, 0.325, 0.44, 0.558",\
                 "-0.081, -0.077, -0.049, -0, 0.044, 0.108, 0.181, 0.267, 0.38, 0.495",\
                 "-0.142, -0.136, -0.116, -0.068, -0.023, 0.04, 0.106, 0.194, 0.297, 0.412",\
                 "-0.231, -0.221, -0.197, -0.149, -0.108, -0.053, 0.022, 0.104, 0.199, 0.319",\
                 "-0.321, -0.315, -0.288, -0.251, -0.205, -0.152, -0.077, -0.002, 0.09, 0.202",\
                 "-0.43, -0.427, -0.405, -0.36, -0.321, -0.266, -0.199, -0.127, -0.027, 0.082",\
                 "-0.558, -0.552, -0.528, -0.482, -0.447, -0.398, -0.332, -0.256, -0.163, -0.058",\
                 "-0.692, -0.689, -0.666, -0.631, -0.588, -0.544, -0.485, -0.407, -0.318, -0.218");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.092, 0.102, 0.136, 0.19, 0.268, 0.356, 0.461, 0.577, 0.71, 0.851",\
                 "0.087, 0.096, 0.126, 0.185, 0.266, 0.349, 0.457, 0.575, 0.706, 0.849",\
                 "0.071, 0.077, 0.108, 0.166, 0.244, 0.334, 0.437, 0.559, 0.686, 0.829",\
                 "0.058, 0.062, 0.097, 0.157, 0.227, 0.321, 0.421, 0.539, 0.677, 0.819",\
                 "0.047, 0.059, 0.084, 0.145, 0.227, 0.31, 0.416, 0.534, 0.667, 0.813",\
                 "0.051, 0.054, 0.091, 0.145, 0.23, 0.316, 0.42, 0.543, 0.668, 0.814",\
                 "0.07, 0.072, 0.11, 0.163, 0.24, 0.325, 0.43, 0.549, 0.686, 0.828",\
                 "0.105, 0.108, 0.144, 0.192, 0.272, 0.351, 0.456, 0.578, 0.708, 0.856",\
                 "0.163, 0.166, 0.202, 0.25, 0.314, 0.397, 0.499, 0.613, 0.747, 0.889",\
                 "0.242, 0.245, 0.272, 0.317, 0.382, 0.459, 0.559, 0.674, 0.807, 0.94");
        }
      }

      timing() {
        related_pin : "CLKN" ;
        timing_type : setup_falling ;

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.189, 0.182, 0.154, 0.094, 0.038, -0.041, -0.126, -0.226, -0.337, -0.467",\
                 "0.196, 0.192, 0.157, 0.106, 0.04, -0.033, -0.117, -0.221, -0.33, -0.463",\
                 "0.235, 0.224, 0.19, 0.134, 0.074, -0.003, -0.089, -0.191, -0.3, -0.429",\
                 "0.293, 0.286, 0.254, 0.203, 0.133, 0.063, -0.028, -0.131, -0.241, -0.366",\
                 "0.385, 0.368, 0.337, 0.288, 0.219, 0.143, 0.055, -0.044, -0.162, -0.288",\
                 "0.481, 0.476, 0.442, 0.386, 0.319, 0.24, 0.151, 0.056, -0.061, -0.184",\
                 "0.61, 0.599, 0.576, 0.513, 0.447, 0.369, 0.275, 0.173, 0.065, -0.06",\
                 "0.755, 0.743, 0.713, 0.654, 0.59, 0.507, 0.41, 0.313, 0.204, 0.075",\
                 "0.922, 0.911, 0.88, 0.816, 0.742, 0.663, 0.568, 0.467, 0.357, 0.235",\
                 "1.098, 1.087, 1.055, 0.99, 0.919, 0.834, 0.739, 0.64, 0.523, 0.398");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.126, 0.119, 0.088, 0.04, -0.016, -0.08, -0.135, -0.22, -0.278, -0.373",\
                 "0.127, 0.124, 0.095, 0.043, -0.006, -0.067, -0.126, -0.201, -0.27, -0.374",\
                 "0.152, 0.144, 0.114, 0.061, 0.012, -0.06, -0.128, -0.198, -0.256, -0.355",\
                 "0.184, 0.173, 0.145, 0.092, 0.029, -0.035, -0.12, -0.181, -0.25, -0.348",\
                 "0.214, 0.201, 0.172, 0.117, 0.053, -0.021, -0.113, -0.187, -0.267, -0.356",\
                 "0.231, 0.221, 0.197, 0.133, 0.069, -0.018, -0.116, -0.212, -0.288, -0.394",\
                 "0.247, 0.24, 0.208, 0.148, 0.075, -0.014, -0.111, -0.219, -0.326, -0.44",\
                 "0.245, 0.234, 0.204, 0.145, 0.076, -0.021, -0.121, -0.229, -0.348, -0.482",\
                 "0.227, 0.219, 0.194, 0.13, 0.056, -0.033, -0.133, -0.254, -0.374, -0.514",\
                 "0.197, 0.192, 0.163, 0.101, 0.024, -0.067, -0.171, -0.284, -0.414, -0.558");
        }
      }
    }

    pin(Q) {
      direction : output ;
      function : "IQ1" ;
      max_capacitance : 0.9071 ;
      max_transition : 4.4 ;
      min_capacitance : 0.001 ;
      output_voltage : default ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        related_pin : "CLKN" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.007254, 0.02921, 0.07113, 0.1364, 0.2281, 0.3487, 0.5006, 0.6861, 0.9071");
          values("0.3662, 0.3568, 0.3447, 0.3393, 0.3366, 0.3351, 0.3341, 0.3335, 0.3331, 0.3329",\
                 "0.3659, 0.3565, 0.3446, 0.339, 0.3364, 0.3349, 0.3339, 0.3333, 0.333, 0.3327",\
                 "0.366, 0.3565, 0.3445, 0.339, 0.3364, 0.3349, 0.3339, 0.3333, 0.333, 0.3327",\
                 "0.3669, 0.3574, 0.3455, 0.3399, 0.3373, 0.3358, 0.3349, 0.3342, 0.3339, 0.3336",\
                 "0.3698, 0.3608, 0.3486, 0.3429, 0.3403, 0.3388, 0.3378, 0.3373, 0.3369, 0.3366",\
                 "0.3739, 0.3643, 0.3525, 0.3468, 0.344, 0.3427, 0.3417, 0.3411, 0.3407, 0.3405",\
                 "0.3795, 0.3703, 0.3579, 0.3521, 0.3495, 0.348, 0.347, 0.3464, 0.346, 0.3458",\
                 "0.3867, 0.3775, 0.3651, 0.3594, 0.3567, 0.355, 0.3541, 0.3535, 0.3531, 0.3528",\
                 "0.3952, 0.3859, 0.3733, 0.3674, 0.3647, 0.3632, 0.3622, 0.3616, 0.3612, 0.3608",\
                 "0.4047, 0.3952, 0.3824, 0.3765, 0.3736, 0.3721, 0.3711, 0.3705, 0.3701, 0.3698");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.007254, 0.02921, 0.07113, 0.1364, 0.2281, 0.3487, 0.5006, 0.6861, 0.9071");
          values("0.3968, 0.3911, 0.3838, 0.3804, 0.3798, 0.3804, 0.3814, 0.3849, 0.3865, 0.3886",\
                 "0.3967, 0.3911, 0.3838, 0.3804, 0.3795, 0.381, 0.3827, 0.3844, 0.3878, 0.3903",\
                 "0.3973, 0.3914, 0.3841, 0.3809, 0.3803, 0.3809, 0.3818, 0.3846, 0.387, 0.3894",\
                 "0.3988, 0.3925, 0.3852, 0.382, 0.3818, 0.3822, 0.3833, 0.3861, 0.3884, 0.3905",\
                 "0.4016, 0.396, 0.3885, 0.3852, 0.3846, 0.3854, 0.3873, 0.3893, 0.3927, 0.3945",\
                 "0.4044, 0.3987, 0.3919, 0.3887, 0.3873, 0.3877, 0.3897, 0.3929, 0.3952, 0.3988",\
                 "0.4091, 0.4034, 0.3956, 0.3934, 0.3939, 0.3929, 0.3953, 0.397, 0.3993, 0.4011",\
                 "0.4138, 0.4077, 0.4012, 0.3975, 0.3974, 0.4006, 0.4008, 0.4029, 0.4042, 0.4066",\
                 "0.419, 0.4136, 0.4064, 0.4036, 0.4018, 0.4037, 0.4101, 0.4118, 0.412, 0.4134",\
                 "0.4242, 0.4182, 0.411, 0.4077, 0.4085, 0.4071, 0.4102, 0.4177, 0.4178, 0.4192");
        }
      }

      timing() {
        related_pin : "CLKN" ;
        timing_type : falling_edge ;

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.007254, 0.02921, 0.07113, 0.1364, 0.2281, 0.3487, 0.5006, 0.6861, 0.9071");
          values("0.4425, 0.4635, 0.5166, 0.5932, 0.6975, 0.8393, 1.025, 1.26, 1.546, 1.887",\
                 "0.4498, 0.4709, 0.524, 0.6006, 0.7049, 0.8467, 1.033, 1.267, 1.553, 1.894",\
                 "0.4808, 0.5019, 0.555, 0.6316, 0.7358, 0.8776, 1.064, 1.298, 1.584, 1.925",\
                 "0.5422, 0.5633, 0.6164, 0.6931, 0.7972, 0.9391, 1.125, 1.36, 1.646, 1.987",\
                 "0.6242, 0.6453, 0.6984, 0.775, 0.8792, 1.021, 1.207, 1.441, 1.728, 2.069",\
                 "0.7222, 0.7432, 0.7964, 0.8731, 0.9774, 1.119, 1.305, 1.539, 1.826, 2.167",\
                 "0.8356, 0.8567, 0.9099, 0.9866, 1.091, 1.233, 1.419, 1.653, 1.939, 2.28",\
                 "0.9623, 0.9835, 1.037, 1.113, 1.218, 1.36, 1.546, 1.78, 2.066, 2.407",\
                 "1.104, 1.125, 1.178, 1.255, 1.359, 1.501, 1.687, 1.921, 2.207, 2.549",\
                 "1.259, 1.28, 1.333, 1.41, 1.514, 1.656, 1.842, 2.076, 2.362, 2.704");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.007254, 0.02921, 0.07113, 0.1364, 0.2281, 0.3487, 0.5006, 0.6861, 0.9071");
          values("0.4886, 0.5102, 0.5741, 0.6899, 0.8708, 1.125, 1.46, 1.881, 2.397, 3.011",\
                 "0.496, 0.5176, 0.5814, 0.6973, 0.8782, 1.133, 1.467, 1.889, 2.404, 3.019",\
                 "0.5274, 0.549, 0.6128, 0.7287, 0.9097, 1.164, 1.499, 1.92, 2.436, 3.049",\
                 "0.5891, 0.6105, 0.6744, 0.7903, 0.9713, 1.226, 1.56, 1.982, 2.498, 3.111",\
                 "0.671, 0.6926, 0.7563, 0.8722, 1.053, 1.307, 1.642, 2.064, 2.579, 3.194",\
                 "0.7687, 0.7904, 0.8544, 0.9701, 1.151, 1.405, 1.74, 2.162, 2.678, 3.29",\
                 "0.882, 0.9034, 0.9673, 1.083, 1.264, 1.518, 1.853, 2.275, 2.79, 3.404",\
                 "1.008, 1.029, 1.093, 1.209, 1.39, 1.644, 1.979, 2.401, 2.916, 3.53",\
                 "1.147, 1.169, 1.233, 1.349, 1.53, 1.784, 2.119, 2.541, 3.055, 3.669",\
                 "1.299, 1.32, 1.384, 1.5, 1.681, 1.936, 2.27, 2.692, 3.207, 3.82");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.007254, 0.02921, 0.07113, 0.1364, 0.2281, 0.3487, 0.5006, 0.6861, 0.9071");
          values("0.05206, 0.07266, 0.1295, 0.2221, 0.3755, 0.6034, 0.9122, 1.299, 1.776, 2.343",\
                 "0.05186, 0.07266, 0.1295, 0.2213, 0.3755, 0.6036, 0.9121, 1.3, 1.776, 2.341",\
                 "0.05206, 0.07266, 0.1295, 0.2214, 0.3755, 0.6035, 0.9121, 1.3, 1.777, 2.341",\
                 "0.0521, 0.07268, 0.1295, 0.2214, 0.3754, 0.6034, 0.9122, 1.299, 1.777, 2.341",\
                 "0.0518, 0.0726, 0.1296, 0.2214, 0.3748, 0.6046, 0.912, 1.301, 1.775, 2.345",\
                 "0.052, 0.0726, 0.1296, 0.2214, 0.3746, 0.6034, 0.9104, 1.301, 1.776, 2.341",\
                 "0.0524, 0.073, 0.1298, 0.2214, 0.3746, 0.6034, 0.9106, 1.299, 1.775, 2.342",\
                 "0.0524, 0.0728, 0.13, 0.2218, 0.375, 0.6036, 0.9102, 1.298, 1.773, 2.34",\
                 "0.0526, 0.073, 0.13, 0.2216, 0.3754, 0.605, 0.911, 1.299, 1.772, 2.337",\
                 "0.0528, 0.0736, 0.1302, 0.2222, 0.375, 0.6042, 0.9106, 1.299, 1.774, 2.337");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.007254, 0.02921, 0.07113, 0.1364, 0.2281, 0.3487, 0.5006, 0.6861, 0.9071");
          values("0.04954, 0.07762, 0.175, 0.3713, 0.686, 1.129, 1.711, 2.441, 3.336, 4.404",\
                 "0.04956, 0.07734, 0.1749, 0.3714, 0.6856, 1.127, 1.708, 2.439, 3.333, 4.4",\
                 "0.04954, 0.07728, 0.1749, 0.3714, 0.6858, 1.129, 1.711, 2.441, 3.337, 4.404",\
                 "0.04964, 0.07748, 0.175, 0.3712, 0.6852, 1.129, 1.711, 2.441, 3.337, 4.404",\
                 "0.0496, 0.0772, 0.1748, 0.371, 0.686, 1.127, 1.708, 2.44, 3.334, 4.41",\
                 "0.0498, 0.0776, 0.1748, 0.3718, 0.6854, 1.128, 1.711, 2.44, 3.336, 4.401",\
                 "0.0494, 0.077, 0.175, 0.3718, 0.6848, 1.128, 1.711, 2.441, 3.336, 4.405",\
                 "0.049, 0.0772, 0.1748, 0.3714, 0.6848, 1.126, 1.707, 2.439, 3.334, 4.403",\
                 "0.0494, 0.077, 0.1746, 0.3718, 0.6854, 1.126, 1.708, 2.44, 3.339, 4.399",\
                 "0.0492, 0.077, 0.1748, 0.3714, 0.6854, 1.127, 1.709, 2.44, 3.332, 4.398");
        }
      }
    }
  }

