/*
 * 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_1) {
    area : 65.856000 ;

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

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

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

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

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

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

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

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

    pin(CLKN) {
      capacitance : 0.003105 ;
      clock : true ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 25 ;
      min_period : 10.11 ;
      min_pulse_width_high : 4.166 ;
      min_pulse_width_low : 4.57 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!D" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.03146, 0.0314, 0.03124, 0.03107, 0.03094, 0.03087, 0.03086, \
                  0.0309, 0.03078, 0.01504");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.02055, 0.02052, 0.02043, 0.02025, 0.0201, 0.02, 0.01996, 0.01997, \
                  0.02012, 0.02048");
        }
      }

      internal_power() {
        when : "D" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.03146, 0.03139, 0.03123, 0.03106, 0.03092, 0.03085, 0.03085, \
                  0.03089, 0.03075, 0.01493");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.02056, 0.02053, 0.02044, 0.02026, 0.02012, 0.02001, 0.01997, \
                  0.01999, 0.02011, 0.02048");
        }
      }

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

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

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

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

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

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

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

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

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

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

    pin(D) {
      capacitance : 0.002144 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 25 ;
      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.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.006113, 0.005953, 0.005779, 0.005726, 0.005743, 0.005817, 0.00594, \
                  0.006119, 0.006265, 0.006174");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.001038, 0.0009942, 0.0009005, 0.0008251, 0.0007959, 0.0008292, \
                  0.0009161, 0.001058, 0.00129, 0.00167");
        }
      }

      internal_power() {
        when : "CLKN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.01964, 0.01954, 0.01942, 0.01933, 0.01929, 0.01931, 0.01939, \
                  0.01952, 0.01908, 0.007887");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.01339, 0.01336, 0.0133, 0.01324, 0.0132, 0.01318, 0.01321, 0.01329, \
                  0.01345, 0.01376");
        }
      }

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

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.458, 0.524, 0.755, 1.224, 1.968, 2.896, 3.793, 4.734, 5.831, 7.027",\
                 "0.39, 0.458, 0.691, 1.157, 1.906, 2.829, 3.727, 4.666, 5.76, 6.957",\
                 "0.123, 0.191, 0.418, 0.898, 1.632, 2.564, 3.459, 4.399, 5.497, 6.693",\
                 "-0.421, -0.355, -0.121, 0.362, 1.095, 2.031, 2.922, 3.862, 4.955, 6.16",\
                 "-1.249, -1.194, -0.955, -0.493, 0.255, 1.186, 2.079, 3.017, 4.121, 5.319",\
                 "-2.273, -2.213, -1.988, -1.533, -0.806, 0.128, 1.02, 1.958, 3.061, 4.259",\
                 "-3.422, -3.36, -3.147, -2.693, -1.967, -1.049, -0.165, 0.77, 1.877, 3.073",\
                 "-4.668, -4.599, -4.4, -3.956, -3.242, -2.352, -1.493, -0.531, 0.573, 1.769",\
                 "-6.045, -5.977, -5.777, -5.333, -4.638, -3.762, -2.905, -1.964, -0.859, 0.334",\
                 "-7.523, -7.467, -7.255, -6.829, -6.152, -5.285, -4.441, -3.519, -2.417, -1.215");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("1.66, 1.734, 2.004, 2.53, 3.369, 4.489, 5.775, 7.175, 8.682, 10.28",\
                 "1.599, 1.671, 1.939, 2.468, 3.298, 4.424, 5.714, 7.113, 8.616, 10.22",\
                 "1.371, 1.451, 1.718, 2.249, 3.077, 4.208, 5.497, 6.897, 8.405, 10.01",\
                 "1.08, 1.16, 1.427, 1.956, 2.789, 3.913, 5.201, 6.601, 8.103, 9.715",\
                 "0.834, 0.908, 1.173, 1.698, 2.523, 3.642, 4.937, 6.326, 7.835, 9.447",\
                 "0.636, 0.716, 0.981, 1.495, 2.315, 3.427, 4.702, 6.093, 7.594, 9.207",\
                 "0.507, 0.584, 0.848, 1.367, 2.168, 3.266, 4.536, 5.921, 7.416, 9.017",\
                 "0.455, 0.536, 0.805, 1.317, 2.107, 3.19, 4.443, 5.818, 7.304, 8.897",\
                 "0.505, 0.586, 0.85, 1.363, 2.146, 3.21, 4.454, 5.801, 7.278, 8.867",\
                 "0.692, 0.766, 1.034, 1.535, 2.299, 3.346, 4.564, 5.898, 7.366, 8.937");
        }
      }

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

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("3.429, 3.328, 3.001, 2.439, 1.705, 0.843, -0.101, -1.203, -2.395, -3.734",\
                 "3.498, 3.396, 3.069, 2.511, 1.767, 0.914, -0.035, -1.134, -2.329, -3.657",\
                 "3.77, 3.669, 3.34, 2.784, 2.037, 1.179, 0.235, -0.866, -2.057, -3.394",\
                 "4.304, 4.203, 3.875, 3.315, 2.572, 1.714, 0.771, -0.325, -1.521, -2.843",\
                 "5.149, 5.045, 4.72, 4.161, 3.425, 2.556, 1.618, 0.516, -0.675, -2.012",\
                 "6.304, 6.201, 5.877, 5.327, 4.577, 3.712, 2.774, 1.665, 0.466, -0.848",\
                 "7.722, 7.624, 7.291, 6.739, 5.99, 5.117, 4.165, 3.063, 1.858, 0.513",\
                 "9.361, 9.259, 8.935, 8.346, 7.604, 6.707, 5.755, 4.635, 3.426, 2.076",\
                 "11.12, 11.02, 10.67, 10.12, 9.36, 8.452, 7.473, 6.348, 5.132, 3.775",\
                 "13.02, 12.95, 12.62, 12.07, 11.26, 10.34, 9.327, 8.217, 6.977, 5.611");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.836, 0.757, 0.478, -0.048, -0.946, -2.127, -3.467, -4.957, -6.563, -8.293",\
                 "0.892, 0.817, 0.538, 0.013, -0.879, -2.063, -3.402, -4.89, -6.499, -8.226",\
                 "1.105, 1.027, 0.75, 0.218, -0.673, -1.833, -3.19, -4.679, -6.281, -7.991",\
                 "1.444, 1.366, 1.082, 0.557, -0.332, -1.513, -2.852, -4.34, -5.946, -7.674",\
                 "1.874, 1.787, 1.502, 0.976, 0.091, -1.077, -2.43, -3.92, -5.518, -7.223",\
                 "2.296, 2.213, 1.927, 1.393, 0.51, -0.662, -2.005, -3.478, -5.074, -6.8",\
                 "2.692, 2.606, 2.321, 1.785, 0.905, -0.267, -1.603, -3.079, -4.642, -6.382",\
                 "3.034, 2.954, 2.659, 2.126, 1.238, 0.069, -1.254, -2.725, -4.291, -6.014",\
                 "3.307, 3.221, 2.935, 2.393, 1.515, 0.347, -0.981, -2.431, -3.999, -5.711",\
                 "3.501, 3.419, 3.134, 2.588, 1.706, 0.562, -0.789, -2.248, -3.813, -5.485");
        }
      }
    }

    pin(Q) {
      direction : output ;
      function : "IQ1" ;
      max_capacitance : 0.1772 ;
      max_transition : 25 ;
      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.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.002216, 0.006485, 0.01464, 0.02734, 0.04516, 0.06861, 0.09815, 0.1342, 0.1772");
          values("0.03239, 0.03244, 0.03259, 0.03274, 0.03284, 0.03291, 0.03294, 0.03297, 0.03298, 0.03298",\
                 "0.03239, 0.03246, 0.03261, 0.03275, 0.03285, 0.03291, 0.03295, 0.03297, 0.03299, 0.03298",\
                 "0.03239, 0.03245, 0.03261, 0.03275, 0.03286, 0.03291, 0.03295, 0.03297, 0.03299, 0.03298",\
                 "0.03237, 0.03244, 0.03259, 0.03273, 0.03283, 0.0329, 0.03293, 0.03296, 0.03297, 0.03296",\
                 "0.03234, 0.0324, 0.03255, 0.03269, 0.03281, 0.03286, 0.03289, 0.03292, 0.03293, 0.03289",\
                 "0.03231, 0.03237, 0.03252, 0.03266, 0.03276, 0.03283, 0.03286, 0.03288, 0.03287, 0.03275",\
                 "0.03227, 0.03233, 0.03248, 0.03262, 0.03272, 0.03279, 0.03282, 0.03282, 0.03268, 0.03225",\
                 "0.03223, 0.03229, 0.03244, 0.03259, 0.03268, 0.03274, 0.0327, 0.03231, 0.03163, 0.03105",\
                 "0.03183, 0.03189, 0.032, 0.03194, 0.03114, 0.03031, 0.02978, 0.02944, 0.02921, 0.02905",\
                 "-6.594e-05, -6.61e-05, -6.675e-05, -6.74e-05, -6.805e-05, -6.853e-05, -6.886e-05, -6.918e-05, -6.934e-05, -6.951e-05");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.002216, 0.006485, 0.01464, 0.02734, 0.04516, 0.06861, 0.09815, 0.1342, 0.1772");
          values("-0.06638, -0.06633, -0.06622, -0.06603, -0.06586, -0.06563, -0.06368, -0.04812, -0.006579, 0.04205",\
                 "-0.06638, -0.06634, -0.06622, -0.06603, -0.06585, -0.06563, -0.06352, -0.04754, -0.005542, 0.04261",\
                 "-0.06639, -0.06635, -0.06625, -0.06606, -0.06589, -0.06564, -0.06304, -0.04491, -0.001715, 0.0444",\
                 "-0.0664, -0.06636, -0.06624, -0.06607, -0.06586, -0.06555, -0.06163, -0.039, 0.005195, 0.04686",\
                 "-0.06639, -0.06636, -0.06625, -0.06607, -0.06591, -0.0653, -0.05803, -0.02811, 0.01389, 0.04782",\
                 "-0.06624, -0.0662, -0.06609, -0.06589, -0.06568, -0.06384, -0.04798, -0.01271, 0.01978, 0.0432",\
                 "-0.06597, -0.06592, -0.06581, -0.06563, -0.06503, -0.05622, -0.02939, -0.003581, 0.01431, 0.02678",\
                 "-0.06587, -0.06581, -0.06569, -0.06505, -0.05619, -0.03853, -0.02607, -0.01808, -0.01281, -0.009187",\
                 "-0.08756, -0.08751, -0.08745, -0.08742, -0.08741, -0.0874, -0.0874, -0.0874, -0.0874, -0.0874",\
                 "-0.1069, -0.1069, -0.1069, -0.1069, -0.1069, -0.1069, -0.1069, -0.1069, -0.1069, -0.1069");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.002216, 0.006485, 0.01464, 0.02734, 0.04516, 0.06861, 0.09815, 0.1342, 0.1772");
          values("4.739, 4.814, 5.027, 5.354, 5.782, 6.324, 7.01, 7.865, 8.907, 10.15",\
                 "4.816, 4.891, 5.104, 5.432, 5.86, 6.402, 7.088, 7.943, 8.984, 10.23",\
                 "5.094, 5.168, 5.382, 5.709, 6.138, 6.679, 7.366, 8.22, 9.262, 10.5",\
                 "5.636, 5.711, 5.923, 6.251, 6.679, 7.221, 7.907, 8.762, 9.804, 11.05",\
                 "6.488, 6.562, 6.776, 7.103, 7.531, 8.073, 8.759, 9.614, 10.65, 11.89",\
                 "7.641, 7.715, 7.929, 8.256, 8.685, 9.227, 9.913, 10.77, 11.81, 13.05",\
                 "8.992, 9.065, 9.28, 9.608, 10.04, 10.58, 11.26, 12.12, 13.16, 14.4",\
                 "10.47, 10.54, 10.75, 11.08, 11.51, 12.05, 12.74, 13.59, 14.64, 15.88",\
                 "12.05, 12.12, 12.34, 12.66, 13.09, 13.63, 14.32, 15.18, 16.22, 17.46",\
                 "13.74, 13.81, 14.03, 14.35, 14.78, 15.33, 16.01, 16.87, 17.91, 19.15");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.002216, 0.006485, 0.01464, 0.02734, 0.04516, 0.06861, 0.09815, 0.1342, 0.1772");
          values("6.715, 6.832, 7.214, 7.909, 8.965, 10.44, 12.37, 14.79, 17.76, 21.29",\
                 "6.791, 6.908, 7.29, 7.985, 9.041, 10.51, 12.44, 14.87, 17.83, 21.36",\
                 "7.068, 7.186, 7.566, 8.261, 9.317, 10.79, 12.72, 15.15, 18.11, 21.64",\
                 "7.61, 7.728, 8.108, 8.803, 9.86, 11.33, 13.26, 15.69, 18.65, 22.18",\
                 "8.461, 8.579, 8.96, 9.655, 10.71, 12.18, 14.11, 16.54, 19.5, 23.03",\
                 "9.625, 9.743, 10.12, 10.82, 11.88, 13.35, 15.28, 17.71, 20.67, 24.2",\
                 "11, 11.12, 11.5, 12.2, 13.25, 14.72, 16.65, 19.08, 22.05, 25.58",\
                 "12.51, 12.63, 13.01, 13.71, 14.76, 16.23, 18.16, 20.59, 23.55, 27.08",\
                 "14.13, 14.25, 14.63, 15.33, 16.38, 17.85, 19.78, 22.21, 25.17, 28.7",\
                 "15.86, 15.98, 16.36, 17.06, 18.11, 19.58, 21.51, 23.94, 26.91, 30.43");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.002216, 0.006485, 0.01464, 0.02734, 0.04516, 0.06861, 0.09815, 0.1342, 0.1772");
          values("0.4584, 0.5268, 0.749, 1.135, 1.692, 2.495, 3.608, 5.048, 6.834, 8.947",\
                 "0.458, 0.528, 0.7494, 1.134, 1.692, 2.497, 3.608, 5.048, 6.83, 8.951",\
                 "0.4574, 0.5272, 0.7492, 1.135, 1.692, 2.497, 3.609, 5.048, 6.834, 8.948",\
                 "0.458, 0.5278, 0.7494, 1.135, 1.692, 2.497, 3.613, 5.045, 6.832, 8.95",\
                 "0.4574, 0.5276, 0.75, 1.134, 1.692, 2.497, 3.61, 5.054, 6.832, 8.964",\
                 "0.46, 0.528, 0.75, 1.134, 1.692, 2.498, 3.612, 5.054, 6.832, 8.964",\
                 "0.46, 0.528, 0.752, 1.134, 1.694, 2.498, 3.612, 5.052, 6.822, 8.964",\
                 "0.458, 0.528, 0.748, 1.136, 1.692, 2.496, 3.608, 5.046, 6.822, 8.946",\
                 "0.46, 0.528, 0.75, 1.136, 1.692, 2.498, 3.608, 5.054, 6.82, 8.942",\
                 "0.46, 0.528, 0.752, 1.136, 1.692, 2.498, 3.606, 5.056, 6.818, 8.952");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.002216, 0.006485, 0.01464, 0.02734, 0.04516, 0.06861, 0.09815, 0.1342, 0.1772");
          values("0.6724, 0.8232, 1.382, 2.488, 4.224, 6.691, 9.928, 14.03, 19.01, 24.95",\
                 "0.6726, 0.8242, 1.381, 2.488, 4.223, 6.688, 9.938, 14.02, 19.04, 24.96",\
                 "0.6726, 0.8234, 1.382, 2.487, 4.222, 6.689, 9.938, 14.02, 19.04, 24.97",\
                 "0.6732, 0.8238, 1.383, 2.486, 4.224, 6.688, 9.936, 14.02, 19.01, 25.01",\
                 "0.672, 0.824, 1.382, 2.488, 4.224, 6.692, 9.93, 14.03, 19.01, 24.99",\
                 "0.674, 0.824, 1.384, 2.488, 4.218, 6.688, 9.936, 14.01, 19.01, 24.98",\
                 "0.674, 0.824, 1.382, 2.488, 4.224, 6.692, 9.926, 14.01, 19.05, 25.01",\
                 "0.674, 0.822, 1.384, 2.486, 4.222, 6.684, 9.934, 14.03, 19.03, 25",\
                 "0.674, 0.822, 1.384, 2.488, 4.218, 6.69, 9.938, 14.03, 19.04, 25.01",\
                 "0.672, 0.822, 1.384, 2.486, 4.222, 6.688, 9.92, 14.03, 19.01, 24.98");
        }
      }
    }
  }

