/*
 * 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_4) {
    area : 98.784000 ;

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

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

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

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

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

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

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

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

    pin(CLKN) {
      capacitance : 0.004917 ;
      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.719 ;
      min_pulse_width_high : 0.254 ;
      min_pulse_width_low : 0.363 ;
      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.202, 0.2051, 0.2201, 0.2486, 0.2925, 0.3531, 0.4305, \
                  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.1289, 0.1283, 0.1308, 0.1433, 0.1674, 0.2058, 0.259, 0.3278, \
                  0.4126, 0.5144");
        }
      }

      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.2204, 0.249, 0.2929, 0.3533, 0.4307, \
                  0.5264, 0.641");
        }

        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.1286, 0.1281, 0.1307, 0.143, 0.1671, 0.2054, 0.2588, 0.3276, \
                  0.4126, 0.5142");
        }
      }

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

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

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

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

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

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

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

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

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

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

    pin(D) {
      capacitance : 0.003792 ;
      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.04254, 0.04246, 0.04722, 0.06013, 0.08239, 0.1146, 0.1578, 0.2128, \
                  0.2801, 0.3607");
        }

        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.004679, 0.004338, 0.007357, 0.01775, 0.03672, 0.06503, 0.1032, \
                  0.152, 0.212, 0.2837");
        }
      }

      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.1491, 0.1491, 0.1522, 0.1639, 0.1859, 0.2198, 0.2661, 0.3257, \
                  0.3989, 0.4863");
        }

        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.09819, 0.09803, 0.1005, 0.1099, 0.1279, 0.1564, 0.196, 0.2475, \
                  0.311, 0.3875");
        }
      }

      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.017, 0.02, 0.053, 0.093, 0.142, 0.205, 0.284, 0.373, 0.481, 0.604",\
                 "0.006, 0.014, 0.038, 0.083, 0.136, 0.194, 0.278, 0.369, 0.475, 0.595",\
                 "-0.02, -0.011, 0.005, 0.057, 0.105, 0.168, 0.248, 0.331, 0.44, 0.564",\
                 "-0.075, -0.071, -0.042, -0, 0.05, 0.108, 0.186, 0.274, 0.38, 0.501",\
                 "-0.142, -0.136, -0.111, -0.062, -0.015, 0.04, 0.113, 0.202, 0.302, 0.418",\
                 "-0.218, -0.215, -0.19, -0.149, -0.098, -0.041, 0.029, 0.113, 0.21, 0.326",\
                 "-0.312, -0.306, -0.288, -0.246, -0.199, -0.145, -0.077, 0.003, 0.103, 0.209",\
                 "-0.424, -0.421, -0.392, -0.353, -0.305, -0.257, -0.194, -0.115, -0.02, 0.091",\
                 "-0.541, -0.544, -0.511, -0.473, -0.437, -0.387, -0.326, -0.249, -0.155, -0.048",\
                 "-0.681, -0.678, -0.655, -0.619, -0.582, -0.537, -0.47, -0.399, -0.308, -0.207");
        }

        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.097, 0.102, 0.136, 0.196, 0.268, 0.362, 0.471, 0.583, 0.71, 0.856",\
                 "0.094, 0.096, 0.135, 0.185, 0.266, 0.356, 0.467, 0.575, 0.706, 0.849",\
                 "0.071, 0.086, 0.114, 0.174, 0.249, 0.341, 0.447, 0.559, 0.695, 0.835",\
                 "0.058, 0.068, 0.097, 0.157, 0.233, 0.329, 0.432, 0.547, 0.677, 0.825",\
                 "0.056, 0.059, 0.095, 0.151, 0.227, 0.319, 0.428, 0.542, 0.672, 0.819",\
                 "0.058, 0.061, 0.098, 0.153, 0.23, 0.322, 0.434, 0.552, 0.674, 0.821",\
                 "0.079, 0.082, 0.12, 0.168, 0.246, 0.339, 0.447, 0.56, 0.692, 0.836",\
                 "0.112, 0.114, 0.15, 0.199, 0.272, 0.36, 0.472, 0.584, 0.715, 0.864",\
                 "0.163, 0.174, 0.21, 0.25, 0.319, 0.408, 0.512, 0.628, 0.755, 0.898",\
                 "0.242, 0.245, 0.283, 0.323, 0.388, 0.473, 0.574, 0.691, 0.816, 0.956");
        }
      }

      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.172, 0.163, 0.137, 0.082, 0.02, -0.054, -0.145, -0.245, -0.354, -0.483",\
                 "0.183, 0.172, 0.148, 0.087, 0.031, -0.047, -0.136, -0.234, -0.347, -0.474",\
                 "0.21, 0.206, 0.173, 0.119, 0.059, -0.017, -0.099, -0.205, -0.317, -0.446",\
                 "0.275, 0.267, 0.24, 0.185, 0.12, 0.047, -0.044, -0.145, -0.25, -0.384",\
                 "0.358, 0.35, 0.321, 0.27, 0.204, 0.124, 0.036, -0.06, -0.177, -0.3",\
                 "0.461, 0.456, 0.428, 0.37, 0.3, 0.222, 0.137, 0.038, -0.078, -0.198",\
                 "0.592, 0.58, 0.556, 0.492, 0.422, 0.347, 0.258, 0.157, 0.046, -0.082",\
                 "0.73, 0.717, 0.693, 0.633, 0.566, 0.489, 0.39, 0.289, 0.182, 0.059",\
                 "0.888, 0.877, 0.853, 0.788, 0.717, 0.635, 0.543, 0.446, 0.333, 0.207",\
                 "1.065, 1.054, 1.027, 0.961, 0.888, 0.807, 0.716, 0.615, 0.504, 0.372");
        }

        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.109, 0.106, 0.079, 0.028, -0.025, -0.08, -0.163, -0.22, -0.286, -0.384",\
                 "0.12, 0.11, 0.086, 0.037, -0.016, -0.087, -0.145, -0.214, -0.27, -0.374",\
                 "0.136, 0.135, 0.103, 0.053, -0.003, -0.06, -0.138, -0.191, -0.256, -0.361",\
                 "0.166, 0.16, 0.13, 0.083, 0.017, -0.051, -0.131, -0.195, -0.25, -0.348",\
                 "0.196, 0.183, 0.157, 0.099, 0.038, -0.04, -0.137, -0.218, -0.272, -0.363",\
                 "0.218, 0.208, 0.175, 0.117, 0.049, -0.036, -0.131, -0.23, -0.299, -0.401",\
                 "0.229, 0.221, 0.188, 0.127, 0.057, -0.029, -0.137, -0.24, -0.339, -0.455",\
                 "0.22, 0.214, 0.184, 0.124, 0.052, -0.039, -0.142, -0.253, -0.369, -0.499",\
                 "0.21, 0.193, 0.167, 0.111, 0.031, -0.055, -0.164, -0.275, -0.398, -0.533",\
                 "0.17, 0.164, 0.129, 0.072, -0.001, -0.094, -0.201, -0.317, -0.442, -0.585");
        }
      }
    }

    pin(Q) {
      direction : output ;
      function : "IQ1" ;
      max_capacitance : 1.809 ;
      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.01348, 0.05729, 0.1409, 0.2713, 0.4542, 0.6948, 0.998, 1.368, 1.809");
          values("0.6061, 0.5787, 0.5324, 0.5079, 0.4955, 0.4882, 0.4835, 0.4804, 0.4781, 0.4766",\
                 "0.6061, 0.5789, 0.5325, 0.5082, 0.4958, 0.4883, 0.4835, 0.4804, 0.4783, 0.4768",\
                 "0.6057, 0.5785, 0.5323, 0.5078, 0.4954, 0.4878, 0.4831, 0.4799, 0.4777, 0.4763",\
                 "0.6066, 0.5795, 0.5332, 0.5088, 0.4962, 0.4887, 0.484, 0.4809, 0.4788, 0.4773",\
                 "0.6095, 0.5818, 0.5357, 0.5115, 0.4988, 0.4914, 0.4867, 0.4835, 0.4814, 0.4799",\
                 "0.6139, 0.5865, 0.54, 0.5157, 0.5027, 0.4953, 0.4905, 0.4874, 0.4853, 0.4838",\
                 "0.6193, 0.5917, 0.5451, 0.5205, 0.5076, 0.5004, 0.4955, 0.4924, 0.4903, 0.4886",\
                 "0.6264, 0.5988, 0.5521, 0.5275, 0.5146, 0.5071, 0.5024, 0.4992, 0.497, 0.4955",\
                 "0.635, 0.6075, 0.5604, 0.5352, 0.5221, 0.5146, 0.51, 0.5069, 0.5044, 0.5029",\
                 "0.6444, 0.6169, 0.5698, 0.5447, 0.5315, 0.5238, 0.519, 0.5158, 0.5136, 0.5121");
        }

        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.01348, 0.05729, 0.1409, 0.2713, 0.4542, 0.6948, 0.998, 1.368, 1.809");
          values("0.5923, 0.5731, 0.5497, 0.5382, 0.5338, 0.5299, 0.5313, 0.5371, 0.5403, 0.5447",\
                 "0.5923, 0.5732, 0.5502, 0.538, 0.5314, 0.5323, 0.5344, 0.5369, 0.5404, 0.5453",\
                 "0.5927, 0.5737, 0.5505, 0.5375, 0.5317, 0.5308, 0.5318, 0.5372, 0.5418, 0.5474",\
                 "0.5945, 0.5744, 0.5511, 0.5392, 0.5336, 0.5327, 0.537, 0.5384, 0.5434, 0.5514",\
                 "0.5962, 0.577, 0.5537, 0.5411, 0.5364, 0.5379, 0.5368, 0.5408, 0.5454, 0.5513",\
                 "0.5999, 0.5804, 0.5593, 0.5447, 0.54, 0.5387, 0.5411, 0.5455, 0.5454, 0.5571",\
                 "0.6035, 0.5838, 0.5614, 0.5486, 0.5454, 0.5423, 0.5466, 0.5491, 0.5515, 0.5578",\
                 "0.6089, 0.5907, 0.5674, 0.5526, 0.5483, 0.5535, 0.5541, 0.5552, 0.558, 0.5632",\
                 "0.6131, 0.5937, 0.5704, 0.5576, 0.5527, 0.5521, 0.5632, 0.5625, 0.5646, 0.5683",\
                 "0.6183, 0.5994, 0.5773, 0.5647, 0.5569, 0.552, 0.5598, 0.5728, 0.5756, 0.579");
        }
      }

      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.01348, 0.05729, 0.1409, 0.2713, 0.4542, 0.6948, 0.998, 1.368, 1.809");
          values("0.4994, 0.5238, 0.5834, 0.6677, 0.7767, 0.9199, 1.106, 1.34, 1.626, 1.966",\
                 "0.5068, 0.531, 0.5908, 0.6751, 0.7841, 0.9273, 1.113, 1.347, 1.633, 1.974",\
                 "0.5378, 0.5621, 0.6218, 0.706, 0.8151, 0.9583, 1.144, 1.378, 1.664, 2.005",\
                 "0.5994, 0.6236, 0.6834, 0.7676, 0.8766, 1.02, 1.206, 1.44, 1.725, 2.066",\
                 "0.6811, 0.7055, 0.7652, 0.8494, 0.9585, 1.102, 1.288, 1.521, 1.807, 2.148",\
                 "0.7792, 0.8033, 0.8631, 0.9473, 1.056, 1.2, 1.385, 1.619, 1.905, 2.246",\
                 "0.8921, 0.9163, 0.9762, 1.06, 1.169, 1.313, 1.499, 1.733, 2.018, 2.359",\
                 "1.019, 1.043, 1.103, 1.187, 1.296, 1.44, 1.625, 1.859, 2.145, 2.486",\
                 "1.16, 1.184, 1.244, 1.329, 1.438, 1.581, 1.767, 2.001, 2.286, 2.627",\
                 "1.315, 1.34, 1.399, 1.484, 1.593, 1.736, 1.922, 2.156, 2.441, 2.782");
        }

        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.01348, 0.05729, 0.1409, 0.2713, 0.4542, 0.6948, 0.998, 1.368, 1.809");
          values("0.5428, 0.566, 0.6318, 0.7477, 0.9274, 1.181, 1.515, 1.936, 2.45, 3.064",\
                 "0.5501, 0.5734, 0.6393, 0.755, 0.9347, 1.188, 1.522, 1.943, 2.457, 3.071",\
                 "0.5816, 0.6049, 0.6708, 0.7864, 0.9661, 1.22, 1.554, 1.975, 2.489, 3.103",\
                 "0.6432, 0.6664, 0.7323, 0.848, 1.028, 1.281, 1.615, 2.036, 2.551, 3.163",\
                 "0.7247, 0.7481, 0.814, 0.9296, 1.11, 1.363, 1.697, 2.118, 2.632, 3.246",\
                 "0.8227, 0.846, 0.9121, 1.028, 1.207, 1.461, 1.795, 2.216, 2.731, 3.343",\
                 "0.9354, 0.9587, 1.025, 1.14, 1.32, 1.573, 1.907, 2.329, 2.844, 3.456",\
                 "1.062, 1.085, 1.151, 1.267, 1.446, 1.7, 2.034, 2.455, 2.969, 3.582",\
                 "1.2, 1.223, 1.289, 1.405, 1.585, 1.839, 2.172, 2.593, 3.107, 3.72",\
                 "1.352, 1.375, 1.441, 1.557, 1.736, 1.99, 2.324, 2.745, 3.258, 3.871");
        }

        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.01348, 0.05729, 0.1409, 0.2713, 0.4542, 0.6948, 0.998, 1.368, 1.809");
          values("0.06934, 0.09256, 0.1523, 0.246, 0.3925, 0.6131, 0.9158, 1.304, 1.777, 2.343",\
                 "0.0693, 0.09268, 0.1524, 0.2459, 0.3922, 0.6133, 0.9159, 1.304, 1.778, 2.344",\
                 "0.06904, 0.09282, 0.1524, 0.2459, 0.3921, 0.6139, 0.917, 1.304, 1.777, 2.344",\
                 "0.06894, 0.09272, 0.1524, 0.2462, 0.3918, 0.6138, 0.9166, 1.304, 1.776, 2.343",\
                 "0.069, 0.0924, 0.1524, 0.2462, 0.3924, 0.6134, 0.9174, 1.304, 1.776, 2.343",\
                 "0.069, 0.0926, 0.1524, 0.246, 0.3926, 0.6134, 0.917, 1.304, 1.778, 2.344",\
                 "0.0694, 0.0926, 0.1526, 0.2464, 0.3922, 0.6138, 0.9154, 1.303, 1.777, 2.342",\
                 "0.0692, 0.0924, 0.1526, 0.2464, 0.392, 0.6138, 0.916, 1.302, 1.777, 2.34",\
                 "0.0692, 0.093, 0.1528, 0.2466, 0.3924, 0.6136, 0.916, 1.303, 1.775, 2.34",\
                 "0.0696, 0.0934, 0.1532, 0.2468, 0.3922, 0.6136, 0.9168, 1.303, 1.776, 2.341");
        }

        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.01348, 0.05729, 0.1409, 0.2713, 0.4542, 0.6948, 0.998, 1.368, 1.809");
          values("0.0579, 0.08586, 0.1814, 0.3731, 0.6851, 1.128, 1.709, 2.439, 3.332, 4.406",\
                 "0.05792, 0.08588, 0.1814, 0.3731, 0.686, 1.128, 1.709, 2.439, 3.333, 4.406",\
                 "0.05788, 0.08586, 0.1814, 0.373, 0.6852, 1.128, 1.709, 2.438, 3.331, 4.396",\
                 "0.05764, 0.08596, 0.1814, 0.3733, 0.686, 1.128, 1.709, 2.442, 3.337, 4.399",\
                 "0.0582, 0.0856, 0.1812, 0.3732, 0.6866, 1.127, 1.707, 2.438, 3.331, 4.396",\
                 "0.0578, 0.0856, 0.1812, 0.3738, 0.6854, 1.126, 1.707, 2.442, 3.338, 4.399",\
                 "0.0578, 0.0854, 0.1812, 0.3732, 0.6852, 1.127, 1.709, 2.442, 3.332, 4.398",\
                 "0.0576, 0.0848, 0.1814, 0.3732, 0.6852, 1.126, 1.707, 2.437, 3.33, 4.397",\
                 "0.058, 0.0852, 0.1814, 0.3732, 0.6854, 1.128, 1.707, 2.437, 3.336, 4.395",\
                 "0.058, 0.0852, 0.1812, 0.3732, 0.6852, 1.126, 1.706, 2.438, 3.329, 4.4");
        }
      }
    }
  }

