/*
 * 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__dffq_2) {
    area : 84.672000 ;

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

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!CLK&!D" ;
      value : "0.00643644" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!CLK&D" ;
      value : "0.00967932" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "CLK&!D" ;
      value : "0.00631584" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "CLK&D" ;
      value : "0.00873324" ;
    }

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

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

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

    pin(CLK) {
      capacitance : 0.004969 ;
      clock : true ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 5.2 ;
      min_period : 1.005 ;
      min_pulse_width_high : 0.42 ;
      min_pulse_width_low : 0.498 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!D" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.2113, 0.2107, 0.2138, 0.2297, 0.2614, 0.3104, 0.3781, 0.4649, \
                  0.5719, 0.6998");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.135, 0.1346, 0.1371, 0.1503, 0.1769, 0.2194, 0.2785, 0.3555, \
                  0.4509, 0.5651");
        }
      }

      internal_power() {
        when : "D" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.2182, 0.2177, 0.2209, 0.2366, 0.2683, 0.3173, 0.3849, 0.4717, \
                  0.5785, 0.7063");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.1344, 0.1342, 0.1367, 0.1499, 0.1765, 0.2192, 0.2785, 0.3555, \
                  0.4506, 0.5647");
        }
      }

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

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

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

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

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

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

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

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

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

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

    pin(D) {
      capacitance : 0.003884 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 5.2 ;
      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.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.1275, 0.1268, 0.1276, 0.136, 0.1539, 0.1821, 0.221, 0.2708, \
                  0.3317, 0.4043");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.08013, 0.08033, 0.08206, 0.08944, 0.1044, 0.1282, 0.1614, 0.2045, \
                  0.2575, 0.321");
        }
      }

      internal_power() {
        when : "CLK" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.01202, 0.01202, 0.01202, 0.01203, 0.01202, 0.01204, 0.01206, \
                  0.01206, 0.01204, 0.01203");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("-0.01256, -0.01254, -0.01255, -0.01255, -0.01254, -0.01254, -0.01261, \
                  -0.01262, -0.01264, -0.01265");
        }
      }

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

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.137, 0.142, 0.17, 0.208, 0.237, 0.258, 0.265, 0.25, 0.227, 0.181",\
                 "0.133, 0.135, 0.163, 0.203, 0.232, 0.247, 0.257, 0.244, 0.218, 0.174",\
                 "0.11, 0.11, 0.141, 0.176, 0.207, 0.227, 0.236, 0.224, 0.192, 0.152",\
                 "0.076, 0.075, 0.099, 0.14, 0.169, 0.182, 0.192, 0.179, 0.148, 0.106",\
                 "0.036, 0.034, 0.06, 0.101, 0.13, 0.141, 0.146, 0.136, 0.097, 0.059",\
                 "-0.01, -0.016, 0.021, 0.052, 0.076, 0.088, 0.102, 0.081, 0.047, 0.002",\
                 "-0.055, -0.07, -0.035, -0.002, 0.027, 0.033, 0.046, 0.022, -0.009, -0.052",\
                 "-0.109, -0.138, -0.091, -0.062, -0.043, -0.029, -0.015, -0.042, -0.072, -0.118",\
                 "-0.167, -0.206, -0.166, -0.132, -0.114, -0.105, -0.084, -0.117, -0.152, -0.189",\
                 "-0.246, -0.297, -0.239, -0.21, -0.192, -0.185, -0.167, -0.195, -0.241, -0.275");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.023, 0.033, 0.048, 0.076, 0.08, 0.077, 0.061, 0.035, -0.01, -0.07",\
                 "0.018, 0.029, 0.05, 0.071, 0.076, 0.078, 0.06, 0.026, -0.012, -0.072",\
                 "0.005, 0.016, 0.029, 0.054, 0.061, 0.061, 0.046, 0.021, -0.023, -0.08",\
                 "-0.01, -0.002, 0.018, 0.036, 0.051, 0.051, 0.028, -0.005, -0.047, -0.101",\
                 "-0.019, -0.013, 0.002, 0.025, 0.034, 0.024, 0.002, -0.03, -0.079, -0.139",\
                 "-0.018, -0.008, 0.004, 0.024, 0.025, 0.013, -0.016, -0.06, -0.115, -0.181",\
                 "0.009, 0.017, 0.034, 0.048, 0.041, 0.025, -0.015, -0.068, -0.126, -0.209",\
                 "0.069, 0.072, 0.088, 0.088, 0.076, 0.05, 0.009, -0.049, -0.122, -0.206",\
                 "0.139, 0.153, 0.157, 0.161, 0.143, 0.109, 0.054, -0.01, -0.085, -0.184",\
                 "0.243, 0.253, 0.258, 0.259, 0.234, 0.189, 0.131, 0.059, -0.031, -0.138");
        }
      }

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

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.195, 0.185, 0.162, 0.116, 0.082, 0.065, 0.052, 0.062, 0.1, 0.147",\
                 "0.2, 0.191, 0.167, 0.123, 0.092, 0.069, 0.061, 0.072, 0.103, 0.15",\
                 "0.231, 0.22, 0.188, 0.156, 0.118, 0.095, 0.086, 0.096, 0.126, 0.178",\
                 "0.294, 0.287, 0.258, 0.223, 0.191, 0.165, 0.155, 0.163, 0.193, 0.252",\
                 "0.404, 0.4, 0.37, 0.335, 0.295, 0.271, 0.264, 0.27, 0.301, 0.351",\
                 "0.551, 0.539, 0.516, 0.473, 0.437, 0.415, 0.403, 0.41, 0.439, 0.483",\
                 "0.71, 0.703, 0.678, 0.634, 0.606, 0.582, 0.567, 0.57, 0.6, 0.646",\
                 "0.902, 0.895, 0.87, 0.822, 0.791, 0.766, 0.752, 0.755, 0.787, 0.832",\
                 "1.118, 1.105, 1.076, 1.037, 0.999, 0.978, 0.966, 0.964, 0.992, 1.032",\
                 "1.351, 1.339, 1.31, 1.271, 1.232, 1.21, 1.192, 1.202, 1.216, 1.262");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.258, 0.249, 0.232, 0.202, 0.173, 0.17, 0.187, 0.217, 0.268, 0.346",\
                 "0.264, 0.255, 0.242, 0.207, 0.181, 0.184, 0.192, 0.222, 0.272, 0.357",\
                 "0.292, 0.276, 0.259, 0.23, 0.2, 0.195, 0.213, 0.244, 0.291, 0.37",\
                 "0.334, 0.315, 0.298, 0.259, 0.233, 0.231, 0.244, 0.272, 0.323, 0.404",\
                 "0.353, 0.337, 0.323, 0.293, 0.269, 0.254, 0.271, 0.307, 0.36, 0.439",\
                 "0.371, 0.362, 0.343, 0.314, 0.286, 0.279, 0.294, 0.327, 0.387, 0.475",\
                 "0.378, 0.371, 0.351, 0.318, 0.29, 0.287, 0.311, 0.347, 0.403, 0.49",\
                 "0.376, 0.363, 0.341, 0.312, 0.283, 0.28, 0.3, 0.346, 0.405, 0.509",\
                 "0.346, 0.327, 0.31, 0.278, 0.255, 0.254, 0.282, 0.326, 0.391, 0.487",\
                 "0.284, 0.271, 0.258, 0.23, 0.213, 0.208, 0.229, 0.273, 0.345, 0.45");
        }
      }
    }

    pin(Q) {
      direction : output ;
      function : "IQ1" ;
      max_capacitance : 0.7581 ;
      max_transition : 5.2 ;
      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.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.006226, 0.02457, 0.0596, 0.1142, 0.1908, 0.2915, 0.4185, 0.5734, 0.7581");
          values("0.3389, 0.3312, 0.3182, 0.3105, 0.3063, 0.3038, 0.3022, 0.3012, 0.3005, 0.3",\
                 "0.3387, 0.331, 0.318, 0.3104, 0.3063, 0.3037, 0.3021, 0.3011, 0.3004, 0.2999",\
                 "0.3392, 0.3314, 0.3185, 0.3109, 0.3066, 0.3042, 0.3025, 0.3015, 0.3008, 0.3002",\
                 "0.3403, 0.3325, 0.3196, 0.3118, 0.3077, 0.305, 0.3036, 0.3025, 0.3019, 0.3013",\
                 "0.3423, 0.3344, 0.3215, 0.3138, 0.3098, 0.3071, 0.3056, 0.3045, 0.3038, 0.3032",\
                 "0.3447, 0.3369, 0.3238, 0.3162, 0.312, 0.3095, 0.3079, 0.3069, 0.3062, 0.3057",\
                 "0.3479, 0.34, 0.3271, 0.3196, 0.3155, 0.3128, 0.3113, 0.3103, 0.3095, 0.309",\
                 "0.3513, 0.3435, 0.3307, 0.3231, 0.3189, 0.3161, 0.3148, 0.3137, 0.3129, 0.3124",\
                 "0.3552, 0.3473, 0.3345, 0.3267, 0.3225, 0.3201, 0.3186, 0.3175, 0.3169, 0.3163",\
                 "0.3596, 0.352, 0.3387, 0.3312, 0.3268, 0.3244, 0.3231, 0.3219, 0.3213, 0.3208");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.006226, 0.02457, 0.0596, 0.1142, 0.1908, 0.2915, 0.4185, 0.5734, 0.7581");
          values("0.3155, 0.3095, 0.3002, 0.2947, 0.292, 0.2925, 0.2935, 0.2943, 0.2965, 0.2972",\
                 "0.3155, 0.3092, 0.3, 0.2946, 0.2919, 0.2925, 0.2934, 0.2942, 0.2964, 0.2971",\
                 "0.3154, 0.3093, 0.3, 0.2946, 0.2919, 0.2921, 0.2931, 0.2942, 0.296, 0.2971",\
                 "0.3163, 0.3104, 0.301, 0.2953, 0.2935, 0.2933, 0.2939, 0.295, 0.2976, 0.2972",\
                 "0.3187, 0.3125, 0.3032, 0.2975, 0.2953, 0.2956, 0.2968, 0.2976, 0.2988, 0.3002",\
                 "0.3221, 0.316, 0.3066, 0.3016, 0.299, 0.299, 0.3002, 0.301, 0.3029, 0.3036",\
                 "0.3275, 0.3211, 0.3121, 0.3055, 0.3042, 0.305, 0.3053, 0.306, 0.3072, 0.3085",\
                 "0.334, 0.3282, 0.3183, 0.3121, 0.3096, 0.31, 0.3126, 0.3137, 0.3149, 0.3147",\
                 "0.3425, 0.3362, 0.326, 0.3202, 0.3174, 0.3162, 0.3183, 0.3241, 0.3241, 0.3254",\
                 "0.3519, 0.3459, 0.3362, 0.3299, 0.3268, 0.326, 0.3259, 0.3295, 0.3379, 0.3386");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.006226, 0.02457, 0.0596, 0.1142, 0.1908, 0.2915, 0.4185, 0.5734, 0.7581");
          values("0.6488, 0.6721, 0.7327, 0.8225, 0.9445, 1.107, 1.319, 1.586, 1.912, 2.301",\
                 "0.6552, 0.6786, 0.7391, 0.8289, 0.951, 1.114, 1.326, 1.593, 1.919, 2.308",\
                 "0.6815, 0.7048, 0.7653, 0.8551, 0.9772, 1.14, 1.352, 1.619, 1.945, 2.334",\
                 "0.724, 0.7473, 0.8079, 0.8976, 1.02, 1.183, 1.395, 1.661, 1.987, 2.376",\
                 "0.762, 0.7852, 0.8458, 0.9356, 1.058, 1.22, 1.432, 1.699, 2.025, 2.414",\
                 "0.7896, 0.813, 0.8735, 0.9633, 1.085, 1.248, 1.46, 1.727, 2.053, 2.442",\
                 "0.8041, 0.8274, 0.888, 0.9777, 1.1, 1.263, 1.475, 1.742, 2.067, 2.456",\
                 "0.803, 0.8262, 0.8872, 0.977, 1.099, 1.262, 1.474, 1.74, 2.066, 2.455",\
                 "0.7846, 0.808, 0.8685, 0.9583, 1.08, 1.243, 1.455, 1.722, 2.048, 2.436",\
                 "0.7481, 0.7714, 0.8319, 0.9218, 1.044, 1.207, 1.419, 1.685, 2.012, 2.4");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.006226, 0.02457, 0.0596, 0.1142, 0.1908, 0.2915, 0.4185, 0.5734, 0.7581");
          values("0.6055, 0.6299, 0.7015, 0.8302, 1.031, 1.315, 1.689, 2.16, 2.735, 3.422",\
                 "0.6121, 0.6364, 0.7082, 0.8368, 1.038, 1.322, 1.695, 2.166, 2.741, 3.428",\
                 "0.6375, 0.6619, 0.7336, 0.8622, 1.064, 1.347, 1.72, 2.192, 2.767, 3.454",\
                 "0.6789, 0.7033, 0.775, 0.9035, 1.105, 1.388, 1.762, 2.233, 2.808, 3.495",\
                 "0.7155, 0.7396, 0.8116, 0.9401, 1.142, 1.425, 1.799, 2.269, 2.844, 3.531",\
                 "0.7431, 0.7674, 0.8391, 0.9678, 1.169, 1.452, 1.826, 2.297, 2.872, 3.558",\
                 "0.7584, 0.7826, 0.8546, 0.983, 1.184, 1.468, 1.841, 2.312, 2.887, 3.572",\
                 "0.7589, 0.7834, 0.8548, 0.9835, 1.185, 1.468, 1.842, 2.312, 2.887, 3.574",\
                 "0.7441, 0.7683, 0.84, 0.9684, 1.17, 1.453, 1.826, 2.297, 2.872, 3.557",\
                 "0.7119, 0.7365, 0.8083, 0.9367, 1.138, 1.421, 1.795, 2.265, 2.84, 3.525");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.006226, 0.02457, 0.0596, 0.1142, 0.1908, 0.2915, 0.4185, 0.5734, 0.7581");
          values("0.07642, 0.1004, 0.1655, 0.2794, 0.4585, 0.7241, 1.084, 1.539, 2.102, 2.768",\
                 "0.07652, 0.1, 0.1657, 0.2795, 0.4585, 0.7241, 1.082, 1.539, 2.102, 2.769",\
                 "0.07642, 0.1004, 0.1655, 0.2793, 0.4584, 0.7234, 1.084, 1.539, 2.101, 2.768",\
                 "0.07632, 0.1, 0.1654, 0.2792, 0.4588, 0.7234, 1.082, 1.54, 2.1, 2.77",\
                 "0.0764, 0.1, 0.1654, 0.279, 0.4584, 0.7234, 1.083, 1.54, 2.102, 2.77",\
                 "0.0766, 0.1002, 0.1656, 0.2788, 0.458, 0.7246, 1.083, 1.542, 2.102, 2.768",\
                 "0.0764, 0.1002, 0.1654, 0.2792, 0.459, 0.723, 1.083, 1.539, 2.099, 2.765",\
                 "0.0764, 0.1, 0.1656, 0.2788, 0.4582, 0.7232, 1.082, 1.538, 2.097, 2.767",\
                 "0.0766, 0.0998, 0.1652, 0.279, 0.4584, 0.7234, 1.083, 1.541, 2.098, 2.763",\
                 "0.0762, 0.1002, 0.1652, 0.2792, 0.4584, 0.7236, 1.083, 1.539, 2.1, 2.764");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.006226, 0.02457, 0.0596, 0.1142, 0.1908, 0.2915, 0.4185, 0.5734, 0.7581");
          values("0.07796, 0.1094, 0.2213, 0.4508, 0.8195, 1.342, 2.025, 2.89, 3.937, 5.193",\
                 "0.07814, 0.1096, 0.2213, 0.4505, 0.8196, 1.342, 2.025, 2.889, 3.938, 5.193",\
                 "0.07814, 0.1096, 0.2213, 0.4509, 0.8198, 1.341, 2.023, 2.889, 3.937, 5.193",\
                 "0.07812, 0.1095, 0.2215, 0.4506, 0.8208, 1.342, 2.023, 2.89, 3.938, 5.192",\
                 "0.0778, 0.1094, 0.2218, 0.4508, 0.8198, 1.342, 2.027, 2.888, 3.938, 5.191",\
                 "0.078, 0.1094, 0.2222, 0.4512, 0.8202, 1.341, 2.027, 2.888, 3.938, 5.19",\
                 "0.0782, 0.1094, 0.2218, 0.451, 0.8204, 1.339, 2.028, 2.886, 3.937, 5.19",\
                 "0.0786, 0.11, 0.222, 0.4506, 0.821, 1.342, 2.024, 2.887, 3.943, 5.192",\
                 "0.0788, 0.1102, 0.222, 0.451, 0.8214, 1.341, 2.028, 2.885, 3.938, 5.194",\
                 "0.079, 0.1102, 0.2224, 0.451, 0.8208, 1.339, 2.025, 2.886, 3.939, 5.193");
        }
      }
    }
  }

