/*
 * 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.01045296" ;
    }

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

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

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

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

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

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

    pin(CLKN) {
      capacitance : 0.003449 ;
      clock : true ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 7.4 ;
      min_period : 1.107 ;
      min_pulse_width_high : 0.509 ;
      min_pulse_width_low : 0.543 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!D" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("0.1602, 0.1599, 0.1638, 0.1796, 0.2104, 0.2574, 0.3214, 0.4032, \
                  0.5036, 0.6235");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("0.1025, 0.1023, 0.1054, 0.1189, 0.1448, 0.1853, 0.2411, 0.3129, \
                  0.4015, 0.5078");
        }
      }

      internal_power() {
        when : "D" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("0.1599, 0.1596, 0.1634, 0.1794, 0.2101, 0.2571, 0.321, 0.4028, \
                  0.5032, 0.623");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("0.1027, 0.1025, 0.1056, 0.119, 0.145, 0.1855, 0.2413, 0.3131, \
                  0.4018, 0.5079");
        }
      }

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

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

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

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

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

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

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

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

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

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

    pin(D) {
      capacitance : 0.002459 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 7.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.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("0.0311, 0.03101, 0.03581, 0.0484, 0.06987, 0.101, 0.1426, 0.1954, \
                  0.2602, 0.3376");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("0.003272, 0.003346, 0.006621, 0.01653, 0.03426, 0.06055, 0.09598, \
                  0.1412, 0.1966, 0.263");
        }
      }

      internal_power() {
        when : "CLKN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("0.111, 0.111, 0.1144, 0.1261, 0.1487, 0.183, 0.2297, 0.2893, 0.3624, \
                  0.4495");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("0.07155, 0.07164, 0.07463, 0.08417, 0.1019, 0.1292, 0.1669, 0.2155, \
                  0.276, 0.3485");
        }
      }

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

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("0.074, 0.088, 0.136, 0.219, 0.311, 0.43, 0.571, 0.733, 0.92, 1.14",\
                 "0.059, 0.076, 0.12, 0.204, 0.3, 0.417, 0.555, 0.718, 0.911, 1.126",\
                 "-0.001, 0.012, 0.064, 0.143, 0.237, 0.353, 0.491, 0.652, 0.844, 1.061",\
                 "-0.105, -0.092, -0.045, 0.034, 0.125, 0.236, 0.369, 0.528, 0.716, 0.926",\
                 "-0.245, -0.232, -0.183, -0.106, -0.024, 0.079, 0.212, 0.363, 0.538, 0.75",\
                 "-0.41, -0.397, -0.354, -0.282, -0.21, -0.104, 0.013, 0.158, 0.33, 0.53",\
                 "-0.608, -0.593, -0.547, -0.492, -0.421, -0.329, -0.217, -0.078, 0.085, 0.275",\
                 "-0.84, -0.827, -0.787, -0.731, -0.672, -0.588, -0.487, -0.356, -0.201, -0.02",\
                 "-1.105, -1.099, -1.051, -1.004, -0.956, -0.892, -0.794, -0.673, -0.53, -0.351",\
                 "-1.41, -1.399, -1.357, -1.322, -1.29, -1.228, -1.143, -1.033, -0.892, -0.732");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("0.177, 0.188, 0.236, 0.343, 0.47, 0.622, 0.799, 0.999, 1.223, 1.473",\
                 "0.166, 0.183, 0.23, 0.334, 0.464, 0.613, 0.794, 0.988, 1.217, 1.463",\
                 "0.145, 0.16, 0.208, 0.309, 0.444, 0.594, 0.775, 0.97, 1.195, 1.45",\
                 "0.142, 0.16, 0.204, 0.305, 0.44, 0.588, 0.769, 0.963, 1.185, 1.439",\
                 "0.17, 0.178, 0.231, 0.33, 0.459, 0.614, 0.789, 0.986, 1.21, 1.456",\
                 "0.231, 0.244, 0.289, 0.389, 0.516, 0.666, 0.843, 1.04, 1.263, 1.508",\
                 "0.341, 0.356, 0.4, 0.499, 0.612, 0.764, 0.937, 1.129, 1.356, 1.6",\
                 "0.503, 0.521, 0.562, 0.648, 0.76, 0.899, 1.075, 1.267, 1.485, 1.73",\
                 "0.736, 0.751, 0.783, 0.865, 0.96, 1.093, 1.254, 1.444, 1.66, 1.903",\
                 "1.031, 1.04, 1.063, 1.135, 1.212, 1.336, 1.494, 1.667, 1.883, 2.128");
        }
      }

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

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("0.349, 0.339, 0.285, 0.199, 0.091, -0.036, -0.174, -0.338, -0.519, -0.725",\
                 "0.362, 0.351, 0.297, 0.213, 0.103, -0.02, -0.159, -0.324, -0.507, -0.719",\
                 "0.422, 0.411, 0.358, 0.271, 0.162, 0.037, -0.105, -0.264, -0.45, -0.652",\
                 "0.54, 0.526, 0.47, 0.386, 0.274, 0.153, 0.013, -0.152, -0.33, -0.539",\
                 "0.708, 0.703, 0.644, 0.561, 0.447, 0.325, 0.185, 0.022, -0.162, -0.364",\
                 "0.935, 0.924, 0.873, 0.779, 0.667, 0.535, 0.396, 0.236, 0.06, -0.145",\
                 "1.218, 1.213, 1.154, 1.056, 0.938, 0.802, 0.657, 0.501, 0.319, 0.12",\
                 "1.553, 1.543, 1.478, 1.386, 1.256, 1.121, 0.969, 0.812, 0.627, 0.434",\
                 "1.939, 1.927, 1.869, 1.76, 1.619, 1.481, 1.331, 1.164, 0.981, 0.787",\
                 "2.383, 2.369, 2.295, 2.184, 2.043, 1.887, 1.735, 1.564, 1.39, 1.192");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("0.195, 0.186, 0.135, 0.043, -0.08, -0.218, -0.38, -0.569, -0.788, -0.996",\
                 "0.208, 0.198, 0.149, 0.056, -0.061, -0.206, -0.369, -0.563, -0.772, -1",\
                 "0.236, 0.23, 0.179, 0.079, -0.045, -0.181, -0.349, -0.539, -0.743, -0.977",\
                 "0.269, 0.265, 0.21, 0.108, -0.014, -0.16, -0.326, -0.517, -0.731, -0.945",\
                 "0.292, 0.279, 0.229, 0.125, 0, -0.149, -0.322, -0.517, -0.727, -0.976",\
                 "0.288, 0.277, 0.225, 0.121, -0.012, -0.16, -0.335, -0.537, -0.737, -0.994",\
                 "0.255, 0.241, 0.191, 0.083, -0.046, -0.203, -0.378, -0.58, -0.81, -1.051",\
                 "0.184, 0.173, 0.118, 0.013, -0.124, -0.272, -0.45, -0.653, -0.889, -1.137",\
                 "0.078, 0.062, 0.013, -0.093, -0.231, -0.387, -0.564, -0.772, -1.001, -1.25",\
                 "-0.067, -0.079, -0.136, -0.245, -0.383, -0.537, -0.717, -0.922, -1.151, -1.403");
        }
      }
    }

    pin(Q) {
      direction : output ;
      function : "IQ1" ;
      max_capacitance : 0.6512 ;
      max_transition : 7.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.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.005488, 0.02124, 0.05133, 0.0982, 0.164, 0.2505, 0.3595, 0.4926, 0.6512");
          values("0.2882, 0.2813, 0.269, 0.2618, 0.2577, 0.2552, 0.2535, 0.2524, 0.2517, 0.2512",\
                 "0.2882, 0.2812, 0.269, 0.2618, 0.2578, 0.2552, 0.2536, 0.2525, 0.2518, 0.2512",\
                 "0.2882, 0.2811, 0.269, 0.2618, 0.2578, 0.2552, 0.2535, 0.2525, 0.2517, 0.2512",\
                 "0.2897, 0.2829, 0.2706, 0.2633, 0.2593, 0.2568, 0.2551, 0.2541, 0.2533, 0.2528",\
                 "0.2937, 0.2866, 0.2744, 0.2671, 0.2629, 0.2603, 0.2587, 0.2576, 0.2569, 0.2564",\
                 "0.2996, 0.2927, 0.2802, 0.2729, 0.2688, 0.2662, 0.2645, 0.2634, 0.2626, 0.2621",\
                 "0.3075, 0.3004, 0.2879, 0.2803, 0.2761, 0.2738, 0.272, 0.2709, 0.27, 0.2695",\
                 "0.3169, 0.3099, 0.2973, 0.2896, 0.2853, 0.2828, 0.281, 0.2799, 0.2791, 0.2786",\
                 "0.3281, 0.3207, 0.308, 0.3001, 0.2957, 0.2929, 0.2913, 0.2902, 0.2894, 0.2889",\
                 "0.3403, 0.333, 0.32, 0.3119, 0.3073, 0.3046, 0.3027, 0.3015, 0.3006, 0.3001");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.005488, 0.02124, 0.05133, 0.0982, 0.164, 0.2505, 0.3595, 0.4926, 0.6512");
          values("0.3376, 0.332, 0.3245, 0.3205, 0.3185, 0.3187, 0.3193, 0.3201, 0.3212, 0.3256",\
                 "0.3377, 0.3325, 0.325, 0.3207, 0.3187, 0.3189, 0.3193, 0.3208, 0.3212, 0.3264",\
                 "0.3378, 0.3328, 0.3253, 0.3209, 0.3189, 0.3191, 0.3194, 0.321, 0.3213, 0.3271",\
                 "0.3395, 0.3345, 0.3271, 0.3229, 0.3208, 0.321, 0.3215, 0.3227, 0.323, 0.329",\
                 "0.3431, 0.3383, 0.3307, 0.3264, 0.3242, 0.3244, 0.3253, 0.3258, 0.3272, 0.3333",\
                 "0.3478, 0.3427, 0.3353, 0.3311, 0.329, 0.3292, 0.3298, 0.3303, 0.3324, 0.3396",\
                 "0.3544, 0.3495, 0.3408, 0.3367, 0.3354, 0.3353, 0.3353, 0.3367, 0.3379, 0.348",\
                 "0.3613, 0.356, 0.3482, 0.3436, 0.3416, 0.3425, 0.3439, 0.3439, 0.3446, 0.3571",\
                 "0.3683, 0.363, 0.3557, 0.3511, 0.3485, 0.3481, 0.3508, 0.3534, 0.3545, 0.3722",\
                 "0.3758, 0.3709, 0.3633, 0.358, 0.3559, 0.3551, 0.3562, 0.3597, 0.3652, 0.3963");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.005488, 0.02124, 0.05133, 0.0982, 0.164, 0.2505, 0.3595, 0.4926, 0.6512");
          values("0.7012, 0.7334, 0.8173, 0.9387, 1.101, 1.317, 1.598, 1.953, 2.386, 2.901",\
                 "0.7138, 0.7461, 0.8299, 0.9513, 1.114, 1.33, 1.611, 1.965, 2.398, 2.914",\
                 "0.7667, 0.7988, 0.8826, 1.004, 1.166, 1.382, 1.664, 2.018, 2.451, 2.968",\
                 "0.8698, 0.902, 0.9859, 1.107, 1.27, 1.486, 1.767, 2.121, 2.554, 3.07",\
                 "1.008, 1.04, 1.124, 1.246, 1.408, 1.624, 1.906, 2.26, 2.693, 3.21",\
                 "1.173, 1.205, 1.289, 1.411, 1.573, 1.789, 2.071, 2.425, 2.858, 3.373",\
                 "1.362, 1.394, 1.478, 1.6, 1.762, 1.978, 2.259, 2.614, 3.046, 3.562",\
                 "1.573, 1.605, 1.689, 1.811, 1.973, 2.189, 2.471, 2.825, 3.257, 3.773",\
                 "1.809, 1.841, 1.925, 2.047, 2.209, 2.425, 2.707, 3.061, 3.494, 4.009",\
                 "2.068, 2.1, 2.184, 2.306, 2.469, 2.685, 2.966, 3.32, 3.753, 4.269");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.005488, 0.02124, 0.05133, 0.0982, 0.164, 0.2505, 0.3595, 0.4926, 0.6512");
          values("0.794, 0.8269, 0.9274, 1.111, 1.397, 1.801, 2.331, 3.001, 3.819, 4.793",\
                 "0.8065, 0.8397, 0.9402, 1.124, 1.41, 1.813, 2.344, 3.014, 3.832, 4.806",\
                 "0.86, 0.8933, 0.9937, 1.177, 1.463, 1.867, 2.398, 3.067, 3.886, 4.86",\
                 "0.9664, 0.9997, 1.1, 1.284, 1.57, 1.973, 2.504, 3.174, 3.992, 4.966",\
                 "1.112, 1.145, 1.245, 1.429, 1.715, 2.118, 2.649, 3.319, 4.137, 5.111",\
                 "1.286, 1.32, 1.42, 1.603, 1.89, 2.293, 2.824, 3.494, 4.312, 5.289",\
                 "1.486, 1.52, 1.62, 1.803, 2.089, 2.492, 3.023, 3.693, 4.511, 5.487",\
                 "1.709, 1.742, 1.842, 2.025, 2.311, 2.714, 3.245, 3.915, 4.734, 5.71",\
                 "1.953, 1.987, 2.087, 2.27, 2.556, 2.96, 3.491, 4.16, 4.977, 5.952",\
                 "2.222, 2.255, 2.355, 2.538, 2.824, 3.227, 3.758, 4.429, 5.245, 6.219");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.005488, 0.02124, 0.05133, 0.0982, 0.164, 0.2505, 0.3595, 0.4926, 0.6512");
          values("0.1005, 0.1334, 0.2227, 0.3706, 0.6063, 0.9592, 1.438, 2.045, 2.793, 3.683",\
                 "0.1009, 0.1333, 0.2227, 0.3702, 0.6066, 0.9596, 1.438, 2.045, 2.793, 3.684",\
                 "0.1009, 0.1333, 0.2226, 0.3706, 0.6066, 0.9588, 1.438, 2.046, 2.79, 3.684",\
                 "0.1008, 0.133, 0.2228, 0.3706, 0.6062, 0.9592, 1.437, 2.045, 2.793, 3.683",\
                 "0.1008, 0.133, 0.223, 0.3702, 0.6068, 0.9582, 1.438, 2.045, 2.795, 3.678",\
                 "0.1012, 0.1334, 0.223, 0.3704, 0.6062, 0.9592, 1.437, 2.048, 2.795, 3.682",\
                 "0.1016, 0.1338, 0.2232, 0.3706, 0.606, 0.958, 1.436, 2.047, 2.79, 3.678",\
                 "0.1018, 0.1342, 0.2236, 0.3714, 0.6068, 0.9592, 1.436, 2.045, 2.789, 3.68",\
                 "0.1026, 0.1346, 0.2242, 0.3712, 0.6068, 0.9592, 1.437, 2.044, 2.79, 3.675",\
                 "0.1032, 0.1358, 0.2246, 0.3716, 0.6074, 0.9598, 1.437, 2.045, 2.789, 3.677");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.005488, 0.02124, 0.05133, 0.0982, 0.164, 0.2505, 0.3595, 0.4926, 0.6512");
          values("0.09862, 0.1436, 0.3063, 0.635, 1.163, 1.902, 2.881, 4.109, 5.6, 7.39",\
                 "0.09862, 0.1432, 0.3063, 0.6354, 1.163, 1.903, 2.88, 4.111, 5.601, 7.392",\
                 "0.09828, 0.1434, 0.3064, 0.6362, 1.163, 1.903, 2.88, 4.111, 5.601, 7.392",\
                 "0.0986, 0.143, 0.3064, 0.6354, 1.163, 1.903, 2.88, 4.111, 5.601, 7.392",\
                 "0.0978, 0.1422, 0.3064, 0.6356, 1.163, 1.903, 2.88, 4.112, 5.603, 7.392",\
                 "0.0972, 0.143, 0.3066, 0.6356, 1.16, 1.904, 2.875, 4.109, 5.601, 7.39",\
                 "0.0978, 0.1428, 0.3062, 0.6354, 1.162, 1.901, 2.88, 4.111, 5.602, 7.394",\
                 "0.098, 0.1428, 0.3062, 0.6362, 1.163, 1.9, 2.877, 4.108, 5.599, 7.389",\
                 "0.098, 0.1428, 0.3064, 0.6358, 1.16, 1.905, 2.875, 4.103, 5.603, 7.392",\
                 "0.098, 0.1428, 0.306, 0.6364, 1.16, 1.902, 2.876, 4.102, 5.603, 7.392");
        }
      }
    }
  }

