/*
 * 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__dffq_4) {
    area : 79.027200 ;

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

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!CLK&!D" ;
      value : "6.934752e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!CLK&D" ;
      value : "7.998606e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "CLK&!D" ;
      value : "9.680616e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "CLK&D" ;
      value : "9.40104e-05" ;
    }

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

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

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

    pin(CLK) {
      capacitance : 0.003139 ;
      clock : true ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 6.8 ;
      min_period : 2.089 ;
      min_pulse_width_high : 1.025 ;
      min_pulse_width_low : 1.047 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!D" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.04167, 0.04151, 0.04123, 0.04116, 0.0416, 0.04255, 0.04406, \
                  0.04616, 0.04888, 0.05228");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.03077, 0.03069, 0.03046, 0.03039, 0.0306, 0.03132, 0.0326, 0.03444, \
                  0.03687, 0.03998");
        }
      }

      internal_power() {
        when : "D" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.04232, 0.04219, 0.0419, 0.04183, 0.0423, 0.04322, 0.0447, 0.04679, \
                  0.04954, 0.05295");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.03082, 0.03072, 0.03051, 0.0304, 0.03065, 0.03134, 0.03264, \
                  0.03446, 0.03695, 0.04005");
        }
      }

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

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

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

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

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

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

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

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

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

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

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

      internal_power() {
        when : "!CLK" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.02249, 0.02232, 0.02199, 0.02187, 0.02212, 0.02277, 0.0237, \
                  0.02496, 0.02653, 0.02844");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.01602, 0.01605, 0.01602, 0.01601, 0.01616, 0.01654, 0.0172, \
                  0.0182, 0.0195, 0.02116");
        }
      }

      internal_power() {
        when : "CLK" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.001625, 0.001629, 0.001627, 0.001626, 0.00163, 0.001626, 0.001629, \
                  0.001627, 0.001625, 0.001623");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("-0.0009632, -0.0009654, -0.0009771, -0.0009916, -0.0009991, -0.001008, \
                  -0.001014, -0.001018, -0.001021, -0.001026");
        }
      }

      timing() {
        related_pin : "CLK" ;
        timing_type : hold_rising ;

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.08, 0.094, 0.14, 0.215, 0.291, 0.344, 0.378, 0.387, 0.383, 0.352",\
                 "0.071, 0.09, 0.136, 0.209, 0.28, 0.34, 0.368, 0.38, 0.372, 0.335",\
                 "0.043, 0.054, 0.102, 0.174, 0.242, 0.297, 0.33, 0.347, 0.335, 0.301",\
                 "-0.052, -0.037, 0.011, 0.082, 0.159, 0.214, 0.245, 0.257, 0.248, 0.219",\
                 "-0.18, -0.165, -0.121, -0.047, 0.022, 0.081, 0.113, 0.121, 0.111, 0.078",\
                 "-0.343, -0.33, -0.287, -0.213, -0.145, -0.086, -0.059, -0.043, -0.048, -0.084",\
                 "-0.535, -0.521, -0.477, -0.406, -0.343, -0.292, -0.252, -0.244, -0.247, -0.287",\
                 "-0.757, -0.744, -0.697, -0.637, -0.578, -0.522, -0.488, -0.475, -0.486, -0.52",\
                 "-1.02, -1.007, -0.963, -0.904, -0.836, -0.787, -0.76, -0.75, -0.754, -0.796",\
                 "-1.315, -1.305, -1.26, -1.2, -1.141, -1.095, -1.064, -1.053, -1.057, -1.097");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.034, 0.047, 0.092, 0.145, 0.18, 0.203, 0.201, 0.188, 0.148, 0.086",\
                 "0.025, 0.037, 0.078, 0.135, 0.171, 0.196, 0.195, 0.179, 0.14, 0.085",\
                 "-0.005, 0.007, 0.054, 0.105, 0.149, 0.173, 0.177, 0.158, 0.123, 0.07",\
                 "-0.029, -0.012, 0.031, 0.082, 0.125, 0.148, 0.156, 0.139, 0.102, 0.049",\
                 "-0.032, -0.018, 0.023, 0.083, 0.115, 0.145, 0.15, 0.127, 0.096, 0.04",\
                 "-0.005, 0.007, 0.045, 0.101, 0.131, 0.157, 0.157, 0.145, 0.103, 0.05",\
                 "0.037, 0.047, 0.086, 0.141, 0.172, 0.194, 0.193, 0.176, 0.139, 0.082",\
                 "0.105, 0.118, 0.16, 0.208, 0.234, 0.259, 0.252, 0.237, 0.191, 0.133",\
                 "0.215, 0.226, 0.267, 0.317, 0.335, 0.357, 0.341, 0.319, 0.279, 0.213",\
                 "0.361, 0.375, 0.416, 0.458, 0.472, 0.486, 0.468, 0.443, 0.395, 0.333");
        }
      }

      timing() {
        related_pin : "CLK" ;
        timing_type : setup_rising ;

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.51, 0.501, 0.45, 0.353, 0.265, 0.192, 0.146, 0.124, 0.12, 0.146",\
                 "0.523, 0.509, 0.455, 0.366, 0.27, 0.199, 0.151, 0.128, 0.123, 0.157",\
                 "0.557, 0.542, 0.491, 0.402, 0.309, 0.238, 0.188, 0.17, 0.161, 0.194",\
                 "0.659, 0.645, 0.593, 0.502, 0.411, 0.338, 0.286, 0.267, 0.261, 0.289",\
                 "0.829, 0.818, 0.766, 0.678, 0.579, 0.513, 0.466, 0.441, 0.433, 0.463",\
                 "1.067, 1.061, 1.004, 0.913, 0.823, 0.747, 0.701, 0.676, 0.675, 0.697",\
                 "1.346, 1.331, 1.28, 1.186, 1.096, 1.021, 0.974, 0.952, 0.944, 0.973",\
                 "1.648, 1.636, 1.584, 1.488, 1.395, 1.329, 1.282, 1.258, 1.249, 1.274",\
                 "1.987, 1.97, 1.922, 1.833, 1.735, 1.674, 1.617, 1.598, 1.59, 1.619",\
                 "2.37, 2.358, 2.31, 2.216, 2.118, 2.052, 2.006, 1.985, 1.973, 1.998");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.435, 0.415, 0.372, 0.275, 0.191, 0.145, 0.119, 0.124, 0.145, 0.204",\
                 "0.444, 0.434, 0.381, 0.284, 0.206, 0.151, 0.13, 0.138, 0.162, 0.216",\
                 "0.489, 0.468, 0.422, 0.324, 0.245, 0.196, 0.166, 0.17, 0.194, 0.245",\
                 "0.558, 0.538, 0.486, 0.394, 0.316, 0.255, 0.229, 0.23, 0.254, 0.298",\
                 "0.613, 0.588, 0.544, 0.453, 0.372, 0.322, 0.291, 0.287, 0.305, 0.358",\
                 "0.654, 0.628, 0.578, 0.492, 0.407, 0.348, 0.318, 0.319, 0.341, 0.383",\
                 "0.651, 0.631, 0.586, 0.494, 0.407, 0.352, 0.322, 0.322, 0.341, 0.383",\
                 "0.624, 0.6, 0.557, 0.466, 0.382, 0.32, 0.293, 0.292, 0.309, 0.355",\
                 "0.562, 0.545, 0.5, 0.409, 0.33, 0.278, 0.242, 0.239, 0.254, 0.309",\
                 "0.477, 0.461, 0.412, 0.326, 0.248, 0.184, 0.155, 0.152, 0.17, 0.219");
        }
      }
    }

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

      internal_power() {
        related_pin : "CLK" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.007546, 0.03052, 0.0744, 0.1428, 0.2387, 0.3649, 0.5239, 0.718, 0.9494");
          values("0.08267, 0.08266, 0.08322, 0.08415, 0.08486, 0.08533, 0.0856, 0.08577, 0.08588, 0.08596",\
                 "0.08265, 0.08268, 0.08325, 0.08414, 0.08486, 0.08532, 0.0856, 0.08575, 0.08588, 0.08595",\
                 "0.08271, 0.08269, 0.08325, 0.08418, 0.0849, 0.08534, 0.08561, 0.08579, 0.08589, 0.08597",\
                 "0.0827, 0.0827, 0.08325, 0.08418, 0.08489, 0.08535, 0.08561, 0.0858, 0.08591, 0.086",\
                 "0.0828, 0.08277, 0.08335, 0.08425, 0.08498, 0.08545, 0.08572, 0.0859, 0.08601, 0.08609",\
                 "0.08292, 0.0829, 0.08345, 0.08442, 0.0851, 0.08554, 0.08581, 0.08598, 0.08609, 0.08617",\
                 "0.08294, 0.08296, 0.08349, 0.08447, 0.0852, 0.08563, 0.08588, 0.08606, 0.08618, 0.08625",\
                 "0.08309, 0.08307, 0.08368, 0.08457, 0.08528, 0.08575, 0.08603, 0.0862, 0.0863, 0.08638",\
                 "0.08321, 0.08317, 0.0838, 0.0847, 0.08542, 0.08587, 0.08612, 0.0863, 0.08643, 0.08651",\
                 "0.08329, 0.08325, 0.0839, 0.08477, 0.08549, 0.08594, 0.08622, 0.08638, 0.08651, 0.08658");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.007546, 0.03052, 0.0744, 0.1428, 0.2387, 0.3649, 0.5239, 0.718, 0.9494");
          values("0.07966, 0.07951, 0.07941, 0.0803, 0.08119, 0.08242, 0.08362, 0.08468, 0.08499, 0.08671",\
                 "0.07961, 0.07949, 0.07947, 0.08029, 0.08123, 0.08241, 0.08374, 0.08458, 0.08528, 0.08681",\
                 "0.07962, 0.07944, 0.07946, 0.08033, 0.08144, 0.08239, 0.08367, 0.08459, 0.0853, 0.08742",\
                 "0.0795, 0.07939, 0.07933, 0.07994, 0.08135, 0.08235, 0.08354, 0.0843, 0.08521, 0.08711",\
                 "0.07935, 0.07929, 0.0792, 0.07977, 0.0809, 0.08219, 0.08339, 0.08426, 0.08476, 0.08686",\
                 "0.07946, 0.07929, 0.07928, 0.07995, 0.08099, 0.08223, 0.08348, 0.08476, 0.08486, 0.08637",\
                 "0.07932, 0.07912, 0.07915, 0.07996, 0.08103, 0.08226, 0.08342, 0.08425, 0.08554, 0.08584",\
                 "0.07939, 0.07921, 0.07909, 0.07966, 0.08101, 0.08257, 0.08336, 0.0844, 0.08471, 0.08697",\
                 "0.07934, 0.07921, 0.07916, 0.07969, 0.08084, 0.08167, 0.0842, 0.08528, 0.08539, 0.08642",\
                 "0.07939, 0.07915, 0.07914, 0.07971, 0.08096, 0.08134, 0.08319, 0.08535, 0.08653, 0.08781");
        }
      }

      timing() {
        related_pin : "CLK" ;
        timing_type : rising_edge ;

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.007546, 0.03052, 0.0744, 0.1428, 0.2387, 0.3649, 0.5239, 0.718, 0.9494");
          values("1.108, 1.141, 1.218, 1.324, 1.465, 1.652, 1.894, 2.199, 2.571, 3.014",\
                 "1.122, 1.154, 1.231, 1.338, 1.479, 1.666, 1.908, 2.213, 2.585, 3.028",\
                 "1.171, 1.203, 1.28, 1.386, 1.528, 1.714, 1.957, 2.261, 2.633, 3.076",\
                 "1.258, 1.29, 1.368, 1.474, 1.615, 1.802, 2.044, 2.349, 2.721, 3.164",\
                 "1.348, 1.38, 1.457, 1.564, 1.705, 1.892, 2.134, 2.439, 2.81, 3.253",\
                 "1.419, 1.451, 1.528, 1.635, 1.776, 1.963, 2.205, 2.51, 2.881, 3.324",\
                 "1.47, 1.502, 1.579, 1.685, 1.827, 2.014, 2.256, 2.56, 2.932, 3.375",\
                 "1.499, 1.531, 1.609, 1.715, 1.856, 2.043, 2.286, 2.59, 2.961, 3.404",\
                 "1.508, 1.54, 1.617, 1.724, 1.865, 2.052, 2.294, 2.599, 2.97, 3.413",\
                 "1.493, 1.525, 1.602, 1.709, 1.85, 2.037, 2.28, 2.584, 2.956, 3.399");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.007546, 0.03052, 0.0744, 0.1428, 0.2387, 0.3649, 0.5239, 0.718, 0.9494");
          values("1.291, 1.332, 1.44, 1.623, 1.906, 2.301, 2.821, 3.474, 4.272, 5.222",\
                 "1.305, 1.346, 1.453, 1.637, 1.92, 2.315, 2.835, 3.488, 4.286, 5.236",\
                 "1.353, 1.394, 1.502, 1.685, 1.967, 2.363, 2.882, 3.536, 4.334, 5.284",\
                 "1.438, 1.48, 1.587, 1.77, 2.053, 2.449, 2.968, 3.622, 4.419, 5.37",\
                 "1.526, 1.567, 1.675, 1.858, 2.141, 2.536, 3.056, 3.709, 4.507, 5.457",\
                 "1.597, 1.638, 1.745, 1.928, 2.211, 2.607, 3.126, 3.78, 4.577, 5.528",\
                 "1.647, 1.688, 1.796, 1.979, 2.262, 2.657, 3.176, 3.83, 4.628, 5.579",\
                 "1.677, 1.718, 1.825, 2.009, 2.291, 2.687, 3.206, 3.86, 4.658, 5.608",\
                 "1.686, 1.727, 1.835, 2.018, 2.301, 2.697, 3.216, 3.869, 4.667, 5.618",\
                 "1.674, 1.715, 1.822, 2.005, 2.288, 2.684, 3.203, 3.857, 4.654, 5.605");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.007546, 0.03052, 0.0744, 0.1428, 0.2387, 0.3649, 0.5239, 0.718, 0.9494");
          values("0.1032, 0.1292, 0.1996, 0.3238, 0.525, 0.8236, 1.228, 1.741, 2.37, 3.126",\
                 "0.1034, 0.1296, 0.1996, 0.3234, 0.525, 0.8238, 1.229, 1.743, 2.373, 3.124",\
                 "0.1034, 0.1294, 0.1998, 0.324, 0.5254, 0.8236, 1.229, 1.742, 2.373, 3.124",\
                 "0.1034, 0.1294, 0.1996, 0.324, 0.5252, 0.8236, 1.227, 1.742, 2.371, 3.127",\
                 "0.1032, 0.1294, 0.1994, 0.3236, 0.525, 0.824, 1.228, 1.742, 2.372, 3.126",\
                 "0.1034, 0.1296, 0.1994, 0.3238, 0.525, 0.8234, 1.227, 1.741, 2.374, 3.124",\
                 "0.1032, 0.129, 0.1992, 0.3242, 0.5252, 0.8238, 1.227, 1.743, 2.374, 3.122",\
                 "0.1034, 0.1294, 0.1994, 0.3242, 0.5252, 0.8236, 1.227, 1.74, 2.368, 3.118",\
                 "0.1034, 0.1294, 0.199, 0.3238, 0.525, 0.8238, 1.228, 1.743, 2.369, 3.117",\
                 "0.1034, 0.1292, 0.1996, 0.3236, 0.5248, 0.823, 1.229, 1.741, 2.372, 3.121");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.007546, 0.03052, 0.0744, 0.1428, 0.2387, 0.3649, 0.5239, 0.718, 0.9494");
          values("0.1274, 0.1652, 0.2986, 0.5958, 1.079, 1.757, 2.652, 3.78, 5.153, 6.793",\
                 "0.1274, 0.1656, 0.2976, 0.5958, 1.079, 1.759, 2.652, 3.777, 5.157, 6.792",\
                 "0.1274, 0.1652, 0.2982, 0.5956, 1.079, 1.758, 2.651, 3.78, 5.15, 6.797",\
                 "0.1274, 0.1652, 0.298, 0.5964, 1.078, 1.756, 2.653, 3.778, 5.157, 6.793",\
                 "0.127, 0.1654, 0.298, 0.5966, 1.079, 1.758, 2.653, 3.778, 5.153, 6.792",\
                 "0.1274, 0.1652, 0.2984, 0.5954, 1.078, 1.757, 2.649, 3.779, 5.154, 6.8",\
                 "0.127, 0.1648, 0.2978, 0.5958, 1.078, 1.759, 2.651, 3.78, 5.157, 6.799",\
                 "0.127, 0.1654, 0.2976, 0.5956, 1.079, 1.756, 2.65, 3.78, 5.153, 6.792",\
                 "0.127, 0.1654, 0.298, 0.5958, 1.08, 1.758, 2.65, 3.775, 5.156, 6.799",\
                 "0.127, 0.1648, 0.2976, 0.5966, 1.08, 1.756, 2.649, 3.774, 5.149, 6.8");
        }
      }
    }
  }

