/*
 * 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__dffnq_2) {
    area : 72.441600 ;

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

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

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

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

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

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

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

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

    pin(CLKN) {
      capacitance : 0.003341 ;
      clock : true ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 8.9 ;
      min_period : 2.114 ;
      min_pulse_width_high : 0.97 ;
      min_pulse_width_low : 1.041 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!D" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          values("0.04678, 0.04663, 0.04647, 0.04706, 0.04904, 0.0524, 0.05726, \
                  0.06378, 0.0721, 0.08232");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          values("0.03004, 0.02997, 0.02988, 0.03044, 0.03193, 0.03468, 0.03886, \
                  0.04461, 0.0519, 0.06092");
        }
      }

      internal_power() {
        when : "D" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          values("0.04668, 0.04652, 0.04636, 0.04696, 0.04893, 0.05228, 0.05715, \
                  0.06367, 0.07199, 0.08221");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          values("0.0301, 0.03003, 0.02994, 0.0305, 0.032, 0.03475, 0.0389, 0.04465, \
                  0.05197, 0.06095");
        }
      }

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

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

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

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

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

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

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

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

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

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

    pin(D) {
      capacitance : 0.002393 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 8.9 ;
      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.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          values("0.009489, 0.009235, 0.009331, 0.01024, 0.01208, 0.01493, 0.01887, \
                  0.02399, 0.03036, 0.03805");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          values("0.001342, 0.001258, 0.00131, 0.001943, 0.003381, 0.005713, 0.009017, \
                  0.01333, 0.01869, 0.02517");
        }
      }

      internal_power() {
        when : "CLKN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          values("0.03186, 0.03172, 0.03173, 0.03233, 0.03399, 0.03674, 0.04062, \
                  0.04583, 0.05238, 0.0604");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          values("0.02104, 0.02099, 0.02105, 0.02161, 0.02286, 0.02495, 0.02806, \
                  0.03222, 0.03754, 0.04409");
        }
      }

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

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          values("0.062, 0.077, 0.144, 0.268, 0.416, 0.577, 0.781, 1, 1.262, 1.541",\
                 "0.047, 0.064, 0.126, 0.253, 0.405, 0.564, 0.765, 0.984, 1.246, 1.527",\
                 "-0.028, -0.011, 0.057, 0.177, 0.33, 0.489, 0.686, 0.912, 1.17, 1.452",\
                 "-0.167, -0.154, -0.093, 0.031, 0.179, 0.34, 0.537, 0.761, 1.018, 1.299",\
                 "-0.362, -0.349, -0.286, -0.168, -0.021, 0.14, 0.329, 0.556, 0.81, 1.089",\
                 "-0.589, -0.583, -0.516, -0.401, -0.249, -0.101, 0.092, 0.31, 0.557, 0.835",\
                 "-0.859, -0.853, -0.789, -0.672, -0.531, -0.385, -0.192, 0.022, 0.266, 0.543",\
                 "-1.184, -1.163, -1.104, -0.989, -0.855, -0.711, -0.527, -0.314, -0.073, 0.199",\
                 "-1.542, -1.527, -1.461, -1.352, -1.221, -1.088, -0.908, -0.695, -0.458, -0.188",\
                 "-1.944, -1.938, -1.873, -1.767, -1.643, -1.511, -1.34, -1.131, -0.902, -0.635");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          values("0.349, 0.373, 0.438, 0.575, 0.775, 0.993, 1.242, 1.525, 1.846, 2.192",\
                 "0.335, 0.361, 0.422, 0.569, 0.762, 0.977, 1.233, 1.515, 1.826, 2.176",\
                 "0.287, 0.314, 0.378, 0.516, 0.715, 0.937, 1.191, 1.47, 1.786, 2.134",\
                 "0.261, 0.281, 0.347, 0.48, 0.679, 0.898, 1.151, 1.43, 1.75, 2.097",\
                 "0.258, 0.278, 0.341, 0.479, 0.673, 0.89, 1.139, 1.421, 1.739, 2.086",\
                 "0.288, 0.311, 0.373, 0.512, 0.701, 0.919, 1.17, 1.451, 1.759, 2.106",\
                 "0.358, 0.385, 0.455, 0.581, 0.775, 0.993, 1.234, 1.51, 1.824, 2.174",\
                 "0.487, 0.508, 0.571, 0.709, 0.89, 1.108, 1.349, 1.621, 1.931, 2.278",\
                 "0.671, 0.696, 0.754, 0.887, 1.058, 1.263, 1.505, 1.776, 2.084, 2.43",\
                 "0.918, 0.949, 1.01, 1.125, 1.289, 1.478, 1.714, 1.979, 2.284, 2.625");
        }
      }

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

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          values("0.733, 0.714, 0.637, 0.495, 0.319, 0.116, -0.102, -0.355, -0.628, -0.944",\
                 "0.751, 0.738, 0.652, 0.518, 0.334, 0.14, -0.084, -0.337, -0.615, -0.93",\
                 "0.831, 0.802, 0.732, 0.585, 0.412, 0.208, -0.003, -0.263, -0.537, -0.858",\
                 "0.976, 0.954, 0.873, 0.732, 0.555, 0.361, 0.133, -0.113, -0.395, -0.709",\
                 "1.204, 1.183, 1.109, 0.962, 0.784, 0.583, 0.367, 0.109, -0.165, -0.485",\
                 "1.497, 1.482, 1.397, 1.253, 1.08, 0.869, 0.645, 0.394, 0.104, -0.214",\
                 "1.843, 1.826, 1.742, 1.599, 1.416, 1.205, 0.976, 0.719, 0.436, 0.113",\
                 "2.244, 2.23, 2.151, 2.003, 1.811, 1.599, 1.359, 1.106, 0.813, 0.494",\
                 "2.718, 2.698, 2.615, 2.463, 2.277, 2.052, 1.812, 1.547, 1.263, 0.933",\
                 "3.247, 3.223, 3.143, 2.988, 2.789, 2.567, 2.328, 2.063, 1.768, 1.434");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          values("0.321, 0.308, 0.239, 0.114, -0.071, -0.293, -0.547, -0.835, -1.171, -1.535",\
                 "0.339, 0.321, 0.254, 0.123, -0.063, -0.273, -0.526, -0.824, -1.162, -1.531",\
                 "0.384, 0.373, 0.306, 0.169, -0.017, -0.233, -0.48, -0.77, -1.11, -1.468",\
                 "0.454, 0.44, 0.373, 0.236, 0.044, -0.167, -0.424, -0.713, -1.045, -1.409",\
                 "0.523, 0.5, 0.429, 0.288, 0.097, -0.122, -0.377, -0.656, -0.986, -1.354",\
                 "0.548, 0.528, 0.456, 0.317, 0.122, -0.101, -0.357, -0.633, -0.963, -1.331",\
                 "0.546, 0.526, 0.461, 0.31, 0.111, -0.11, -0.367, -0.658, -0.981, -1.34",\
                 "0.513, 0.491, 0.417, 0.278, 0.074, -0.151, -0.407, -0.698, -1.023, -1.387",\
                 "0.432, 0.416, 0.341, 0.196, -0.002, -0.234, -0.491, -0.778, -1.11, -1.47",\
                 "0.314, 0.291, 0.216, 0.072, -0.131, -0.361, -0.623, -0.907, -1.231, -1.604");
        }
      }
    }

    pin(Q) {
      direction : output ;
      function : "IQ1" ;
      max_capacitance : 0.4188 ;
      max_transition : 8.9 ;
      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.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.001, 0.003884, 0.01401, 0.03334, 0.06345, 0.1057, 0.1613, 0.2314, 0.3169, 0.4188");
          values("0.07072, 0.07004, 0.06913, 0.06868, 0.06847, 0.06838, 0.06831, 0.06827, 0.06825, 0.06823",\
                 "0.07072, 0.07004, 0.0691, 0.06865, 0.06844, 0.06834, 0.06829, 0.06826, 0.06821, 0.06822",\
                 "0.0707, 0.07002, 0.06913, 0.06865, 0.06845, 0.06836, 0.0683, 0.06826, 0.06824, 0.0682",\
                 "0.07072, 0.07005, 0.06913, 0.06866, 0.06845, 0.06837, 0.0683, 0.06825, 0.06822, 0.0682",\
                 "0.07094, 0.07029, 0.06936, 0.06886, 0.06863, 0.06855, 0.06849, 0.06845, 0.06842, 0.0684",\
                 "0.07129, 0.07064, 0.06968, 0.06919, 0.069, 0.0689, 0.06883, 0.06878, 0.06875, 0.06873",\
                 "0.07172, 0.07101, 0.07006, 0.06962, 0.0694, 0.06928, 0.06923, 0.06918, 0.06915, 0.06913",\
                 "0.07223, 0.07162, 0.07066, 0.07009, 0.0699, 0.0698, 0.06975, 0.06971, 0.06966, 0.06964",\
                 "0.07291, 0.07224, 0.07127, 0.07077, 0.07054, 0.07045, 0.0704, 0.07032, 0.07029, 0.07026",\
                 "0.07375, 0.07304, 0.07202, 0.07154, 0.07132, 0.07119, 0.07113, 0.07108, 0.07108, 0.07104");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.001, 0.003884, 0.01401, 0.03334, 0.06345, 0.1057, 0.1613, 0.2314, 0.3169, 0.4188");
          values("0.08364, 0.08333, 0.08277, 0.08269, 0.08289, 0.08324, 0.08379, 0.08412, 0.08477, 0.08849",\
                 "0.08364, 0.08335, 0.0828, 0.0827, 0.08291, 0.08325, 0.08381, 0.08414, 0.08483, 0.08843",\
                 "0.08366, 0.08334, 0.08279, 0.08273, 0.08293, 0.08332, 0.08379, 0.08414, 0.08482, 0.08852",\
                 "0.08381, 0.08342, 0.08286, 0.08282, 0.08302, 0.08341, 0.08392, 0.08432, 0.08503, 0.08932",\
                 "0.08427, 0.0839, 0.08333, 0.08332, 0.08345, 0.08385, 0.08433, 0.08481, 0.08551, 0.09072",\
                 "0.08478, 0.08448, 0.08383, 0.08383, 0.08405, 0.08438, 0.0849, 0.08536, 0.0863, 0.09283",\
                 "0.08531, 0.08492, 0.08438, 0.08435, 0.08459, 0.08502, 0.0855, 0.08586, 0.08707, 0.09574",\
                 "0.08597, 0.08561, 0.08506, 0.08506, 0.08542, 0.08577, 0.08611, 0.0865, 0.08829, 0.101",\
                 "0.08677, 0.08632, 0.08583, 0.08573, 0.08597, 0.08658, 0.08709, 0.08743, 0.09034, 0.1094",\
                 "0.08757, 0.08721, 0.08668, 0.08655, 0.08676, 0.08714, 0.08776, 0.08892, 0.09423, 0.1255");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.001, 0.003884, 0.01401, 0.03334, 0.06345, 0.1057, 0.1613, 0.2314, 0.3169, 0.4188");
          values("1.315, 1.354, 1.458, 1.607, 1.79, 2.017, 2.301, 2.653, 3.082, 3.592",\
                 "1.334, 1.372, 1.476, 1.625, 1.808, 2.036, 2.32, 2.672, 3.101, 3.61",\
                 "1.405, 1.443, 1.547, 1.696, 1.879, 2.106, 2.391, 2.743, 3.171, 3.682",\
                 "1.548, 1.586, 1.69, 1.839, 2.022, 2.25, 2.534, 2.886, 3.315, 3.825",\
                 "1.756, 1.794, 1.898, 2.047, 2.23, 2.457, 2.742, 3.094, 3.522, 4.032",\
                 "1.996, 2.034, 2.138, 2.287, 2.47, 2.698, 2.982, 3.334, 3.763, 4.273",\
                 "2.265, 2.303, 2.407, 2.556, 2.74, 2.967, 3.251, 3.604, 4.032, 4.542",\
                 "2.567, 2.605, 2.71, 2.858, 3.042, 3.269, 3.553, 3.906, 4.334, 4.844",\
                 "2.903, 2.942, 3.046, 3.195, 3.378, 3.606, 3.89, 4.242, 4.671, 5.181",\
                 "3.275, 3.314, 3.418, 3.567, 3.751, 3.978, 4.263, 4.615, 5.044, 5.554");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.001, 0.003884, 0.01401, 0.03334, 0.06345, 0.1057, 0.1613, 0.2314, 0.3169, 0.4188");
          values("1.539, 1.584, 1.717, 1.95, 2.304, 2.8, 3.451, 4.27, 5.271, 6.463",\
                 "1.558, 1.603, 1.736, 1.968, 2.323, 2.818, 3.469, 4.289, 5.29, 6.482",\
                 "1.628, 1.674, 1.807, 2.039, 2.393, 2.889, 3.54, 4.36, 5.36, 6.553",\
                 "1.773, 1.818, 1.951, 2.184, 2.538, 3.033, 3.685, 4.504, 5.505, 6.697",\
                 "1.986, 2.031, 2.164, 2.396, 2.75, 3.245, 3.897, 4.717, 5.717, 6.909",\
                 "2.236, 2.281, 2.414, 2.647, 3.001, 3.497, 4.148, 4.967, 5.968, 7.16",\
                 "2.516, 2.561, 2.695, 2.926, 3.28, 3.777, 4.427, 5.247, 6.248, 7.439",\
                 "2.83, 2.875, 3.008, 3.241, 3.595, 4.091, 4.741, 5.561, 6.561, 7.755",\
                 "3.181, 3.225, 3.358, 3.59, 3.945, 4.44, 5.09, 5.91, 6.91, 8.103",\
                 "3.566, 3.611, 3.743, 3.976, 4.33, 4.826, 5.477, 6.296, 7.296, 8.488");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.001, 0.003884, 0.01401, 0.03334, 0.06345, 0.1057, 0.1613, 0.2314, 0.3169, 0.4188");
          values("0.1684, 0.2044, 0.3106, 0.4694, 0.6966, 1.029, 1.491, 2.092, 2.832, 3.723",\
                 "0.1686, 0.2046, 0.3106, 0.4688, 0.6972, 1.029, 1.493, 2.092, 2.832, 3.723",\
                 "0.1684, 0.2046, 0.3108, 0.4694, 0.6972, 1.029, 1.493, 2.089, 2.832, 3.723",\
                 "0.1682, 0.2044, 0.3112, 0.4686, 0.6968, 1.029, 1.489, 2.088, 2.83, 3.727",\
                 "0.1684, 0.205, 0.3106, 0.4694, 0.6962, 1.029, 1.49, 2.091, 2.836, 3.726",\
                 "0.1692, 0.205, 0.3112, 0.4696, 0.6962, 1.029, 1.492, 2.09, 2.831, 3.722",\
                 "0.169, 0.2056, 0.3112, 0.4692, 0.697, 1.029, 1.493, 2.09, 2.833, 3.723",\
                 "0.1696, 0.2054, 0.3114, 0.47, 0.6966, 1.03, 1.489, 2.089, 2.832, 3.725",\
                 "0.1698, 0.2058, 0.3118, 0.4704, 0.6964, 1.031, 1.493, 2.089, 2.831, 3.719",\
                 "0.1702, 0.2064, 0.3126, 0.4704, 0.6984, 1.03, 1.49, 2.09, 2.831, 3.722");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.08129, 0.2964, 0.7073, 1.347, 2.245, 3.427, 4.916, 6.734, 8.9");
          index_2("0.001, 0.003884, 0.01401, 0.03334, 0.06345, 0.1057, 0.1613, 0.2314, 0.3169, 0.4188");
          values("0.18, 0.2352, 0.4252, 0.812, 1.438, 2.323, 3.488, 4.963, 6.748, 8.884",\
                 "0.1802, 0.2354, 0.4252, 0.813, 1.438, 2.322, 3.488, 4.962, 6.746, 8.884",\
                 "0.18, 0.2352, 0.4254, 0.813, 1.438, 2.319, 3.49, 4.961, 6.745, 8.889",\
                 "0.179, 0.2356, 0.4254, 0.813, 1.438, 2.322, 3.489, 4.962, 6.748, 8.885",\
                 "0.1792, 0.2352, 0.425, 0.8134, 1.439, 2.321, 3.484, 4.959, 6.746, 8.884",\
                 "0.1794, 0.2352, 0.4248, 0.8128, 1.438, 2.323, 3.484, 4.961, 6.748, 8.885",\
                 "0.1788, 0.2352, 0.4248, 0.8122, 1.436, 2.318, 3.49, 4.96, 6.748, 8.882",\
                 "0.1792, 0.235, 0.4246, 0.812, 1.436, 2.32, 3.483, 4.957, 6.75, 8.887",\
                 "0.1786, 0.2348, 0.4246, 0.813, 1.438, 2.322, 3.485, 4.952, 6.748, 8.89",\
                 "0.1784, 0.2336, 0.4242, 0.8124, 1.435, 2.324, 3.486, 4.956, 6.75, 8.892");
        }
      }
    }
  }

