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

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

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

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

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

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

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

    pin(CLKN) {
      capacitance : 0.003474 ;
      clock : true ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 5 ;
      min_period : 1.396 ;
      min_pulse_width_high : 0.527 ;
      min_pulse_width_low : 0.553 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!D" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          values("0.2499, 0.2493, 0.2498, 0.2564, 0.2724, 0.2977, 0.3332, 0.3795, \
                  0.4372, 0.5069");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          values("0.1604, 0.16, 0.1601, 0.1652, 0.1782, 0.1994, 0.2301, 0.2709, \
                  0.3224, 0.3847");
        }
      }

      internal_power() {
        when : "D" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          values("0.2499, 0.2493, 0.2499, 0.2564, 0.2724, 0.2976, 0.3331, 0.3795, \
                  0.4373, 0.5067");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          values("0.1605, 0.1601, 0.1603, 0.1653, 0.1783, 0.1993, 0.2301, 0.271, \
                  0.3225, 0.3846");
        }
      }

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

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

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

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

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

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

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

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

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

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

    pin(D) {
      capacitance : 0.002354 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 5 ;
      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.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          values("0.04541, 0.04481, 0.04682, 0.05351, 0.06576, 0.08386, 0.1085, \
                  0.1397, 0.1782, 0.2243");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          values("0.004158, 0.00378, 0.004704, 0.009433, 0.01913, 0.03416, 0.05487, \
                  0.08168, 0.1148, 0.1547");
        }
      }

      internal_power() {
        when : "CLKN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          values("0.1579, 0.1575, 0.1585, 0.1638, 0.1756, 0.1938, 0.2192, 0.2525, \
                  0.2938, 0.3433");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          values("0.1011, 0.1008, 0.1017, 0.1059, 0.1148, 0.1291, 0.1497, 0.1769, \
                  0.2111, 0.2527");
        }
      }

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

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          values("0.023, 0.026, 0.064, 0.133, 0.205, 0.3, 0.396, 0.512, 0.638, 0.787",\
                 "0.018, 0.021, 0.059, 0.118, 0.195, 0.291, 0.39, 0.509, 0.632, 0.778",\
                 "-0.021, -0.013, 0.017, 0.085, 0.161, 0.251, 0.35, 0.463, 0.595, 0.733",\
                 "-0.1, -0.091, -0.061, 0.005, 0.083, 0.176, 0.27, 0.39, 0.513, 0.653",\
                 "-0.206, -0.196, -0.162, -0.096, -0.017, 0.066, 0.168, 0.282, 0.403, 0.544",\
                 "-0.33, -0.321, -0.284, -0.221, -0.153, -0.066, 0.033, 0.144, 0.269, 0.407",\
                 "-0.479, -0.475, -0.439, -0.373, -0.307, -0.22, -0.125, -0.014, 0.109, 0.245",\
                 "-0.655, -0.647, -0.614, -0.55, -0.478, -0.396, -0.305, -0.19, -0.079, 0.065",\
                 "-0.848, -0.844, -0.813, -0.747, -0.68, -0.599, -0.51, -0.401, -0.285, -0.156",\
                 "-1.073, -1.065, -1.033, -0.972, -0.905, -0.829, -0.743, -0.639, -0.524, -0.391");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          values("0.183, 0.192, 0.228, 0.301, 0.402, 0.519, 0.651, 0.799, 0.962, 1.134",\
                 "0.177, 0.189, 0.226, 0.295, 0.393, 0.514, 0.643, 0.791, 0.959, 1.127",\
                 "0.16, 0.164, 0.196, 0.268, 0.37, 0.492, 0.621, 0.772, 0.932, 1.109",\
                 "0.133, 0.14, 0.177, 0.247, 0.345, 0.467, 0.593, 0.744, 0.904, 1.085",\
                 "0.119, 0.124, 0.16, 0.233, 0.336, 0.449, 0.577, 0.727, 0.888, 1.067",\
                 "0.122, 0.125, 0.157, 0.233, 0.332, 0.446, 0.585, 0.728, 0.892, 1.066",\
                 "0.139, 0.142, 0.173, 0.249, 0.345, 0.462, 0.6, 0.742, 0.908, 1.08",\
                 "0.181, 0.185, 0.213, 0.287, 0.385, 0.501, 0.631, 0.775, 0.944, 1.119",\
                 "0.249, 0.252, 0.286, 0.354, 0.443, 0.56, 0.69, 0.837, 1.001, 1.17",\
                 "0.34, 0.337, 0.37, 0.443, 0.529, 0.641, 0.767, 0.914, 1.072, 1.245");
        }
      }

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

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          values("0.343, 0.33, 0.29, 0.23, 0.139, 0.042, -0.069, -0.19, -0.323, -0.478",\
                 "0.351, 0.343, 0.303, 0.236, 0.15, 0.051, -0.058, -0.184, -0.315, -0.467",\
                 "0.392, 0.383, 0.34, 0.272, 0.189, 0.093, -0.022, -0.14, -0.279, -0.427",\
                 "0.47, 0.458, 0.418, 0.353, 0.267, 0.169, 0.06, -0.067, -0.199, -0.354",\
                 "0.589, 0.576, 0.54, 0.473, 0.386, 0.289, 0.172, 0.047, -0.087, -0.234",\
                 "0.745, 0.73, 0.692, 0.621, 0.535, 0.433, 0.324, 0.194, 0.061, -0.086",\
                 "0.921, 0.907, 0.867, 0.801, 0.71, 0.61, 0.494, 0.369, 0.234, 0.084",\
                 "1.127, 1.117, 1.08, 1.01, 0.922, 0.814, 0.696, 0.571, 0.438, 0.283",\
                 "1.373, 1.354, 1.318, 1.249, 1.153, 1.048, 0.929, 0.8, 0.661, 0.51",\
                 "1.636, 1.626, 1.581, 1.517, 1.42, 1.311, 1.19, 1.063, 0.921, 0.77");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          values("0.177, 0.165, 0.134, 0.062, -0.038, -0.148, -0.292, -0.441, -0.61, -0.794",\
                 "0.185, 0.175, 0.145, 0.072, -0.033, -0.142, -0.285, -0.437, -0.604, -0.791",\
                 "0.211, 0.207, 0.167, 0.097, -0.003, -0.115, -0.261, -0.411, -0.576, -0.765",\
                 "0.25, 0.247, 0.212, 0.136, 0.038, -0.076, -0.215, -0.373, -0.539, -0.726",\
                 "0.294, 0.282, 0.246, 0.177, 0.075, -0.04, -0.182, -0.326, -0.499, -0.679",\
                 "0.33, 0.32, 0.283, 0.212, 0.104, -0.013, -0.147, -0.3, -0.468, -0.653",\
                 "0.35, 0.338, 0.3, 0.228, 0.127, 0.009, -0.125, -0.282, -0.446, -0.633",\
                 "0.348, 0.343, 0.306, 0.229, 0.131, 0.008, -0.13, -0.278, -0.449, -0.63",\
                 "0.333, 0.324, 0.288, 0.21, 0.109, -0.006, -0.143, -0.294, -0.459, -0.651",\
                 "0.292, 0.28, 0.248, 0.175, 0.071, -0.044, -0.185, -0.33, -0.505, -0.686");
        }
      }
    }

    pin(Q) {
      direction : output ;
      function : "IQ1" ;
      max_capacitance : 0.2334 ;
      max_transition : 5 ;
      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.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.001, 0.002604, 0.008234, 0.01898, 0.03573, 0.05924, 0.09016, 0.1291, 0.1767, 0.2334");
          values("0.2738, 0.273, 0.271, 0.2704, 0.27, 0.2698, 0.2697, 0.2697, 0.2697, 0.2696",\
                 "0.2739, 0.2729, 0.2712, 0.2703, 0.27, 0.2698, 0.2697, 0.2697, 0.2697, 0.2696",\
                 "0.2738, 0.2728, 0.2714, 0.2704, 0.2701, 0.2699, 0.2698, 0.2698, 0.2697, 0.2697",\
                 "0.2741, 0.2731, 0.2716, 0.2707, 0.2704, 0.2701, 0.27, 0.27, 0.27, 0.2699",\
                 "0.2756, 0.2746, 0.2729, 0.2721, 0.2717, 0.2715, 0.2715, 0.2715, 0.2714, 0.2713",\
                 "0.278, 0.2769, 0.2751, 0.2744, 0.2741, 0.274, 0.2739, 0.2738, 0.2738, 0.2737",\
                 "0.2808, 0.2799, 0.2782, 0.2774, 0.2771, 0.2769, 0.2768, 0.2768, 0.2767, 0.2766",\
                 "0.2847, 0.2836, 0.2819, 0.2812, 0.2808, 0.2808, 0.2805, 0.2805, 0.2804, 0.2804",\
                 "0.2895, 0.2884, 0.2867, 0.2858, 0.2856, 0.2854, 0.2852, 0.285, 0.2851, 0.285",\
                 "0.2944, 0.2933, 0.2915, 0.2909, 0.2903, 0.2903, 0.29, 0.2899, 0.2899, 0.2898");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.001, 0.002604, 0.008234, 0.01898, 0.03573, 0.05924, 0.09016, 0.1291, 0.1767, 0.2334");
          values("0.3747, 0.3736, 0.3708, 0.3698, 0.3692, 0.3696, 0.3707, 0.3712, 0.372, 0.3726",\
                 "0.375, 0.3734, 0.371, 0.3697, 0.3691, 0.3692, 0.3706, 0.3711, 0.3718, 0.3727",\
                 "0.3751, 0.3738, 0.371, 0.3697, 0.3691, 0.3694, 0.3704, 0.3709, 0.3716, 0.3735",\
                 "0.3759, 0.3746, 0.372, 0.3707, 0.37, 0.3702, 0.3715, 0.3718, 0.3725, 0.3741",\
                 "0.3777, 0.3767, 0.3739, 0.3726, 0.372, 0.3723, 0.3729, 0.3742, 0.3745, 0.3761",\
                 "0.3812, 0.38, 0.3773, 0.3759, 0.3753, 0.3752, 0.3766, 0.3772, 0.3777, 0.3784",\
                 "0.384, 0.3831, 0.3805, 0.3793, 0.3785, 0.3787, 0.3796, 0.3805, 0.3811, 0.3827",\
                 "0.3882, 0.387, 0.384, 0.3829, 0.3832, 0.3832, 0.3838, 0.3846, 0.3852, 0.3871",\
                 "0.3923, 0.391, 0.3886, 0.387, 0.387, 0.3875, 0.3887, 0.3895, 0.3897, 0.3901",\
                 "0.3974, 0.3961, 0.3935, 0.3923, 0.3918, 0.3924, 0.3936, 0.3952, 0.3956, 0.3954");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.001, 0.002604, 0.008234, 0.01898, 0.03573, 0.05924, 0.09016, 0.1291, 0.1767, 0.2334");
          values("0.7072, 0.7272, 0.7855, 0.8778, 1.006, 1.181, 1.41, 1.698, 2.05, 2.47",\
                 "0.7161, 0.7363, 0.7946, 0.8869, 1.015, 1.19, 1.419, 1.707, 2.06, 2.479",\
                 "0.7517, 0.7717, 0.83, 0.9223, 1.051, 1.225, 1.454, 1.743, 2.095, 2.515",\
                 "0.825, 0.845, 0.9032, 0.9956, 1.124, 1.299, 1.528, 1.816, 2.168, 2.588",\
                 "0.9312, 0.9512, 1.01, 1.102, 1.23, 1.405, 1.634, 1.922, 2.275, 2.694",\
                 "1.055, 1.075, 1.134, 1.226, 1.354, 1.529, 1.758, 2.046, 2.398, 2.818",\
                 "1.196, 1.216, 1.274, 1.366, 1.495, 1.67, 1.898, 2.187, 2.539, 2.959",\
                 "1.352, 1.372, 1.43, 1.523, 1.651, 1.826, 2.055, 2.343, 2.695, 3.115",\
                 "1.522, 1.542, 1.601, 1.693, 1.822, 1.996, 2.225, 2.514, 2.866, 3.285",\
                 "1.707, 1.727, 1.786, 1.878, 2.007, 2.182, 2.41, 2.699, 3.051, 3.47");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.001, 0.002604, 0.008234, 0.01898, 0.03573, 0.05924, 0.09016, 0.1291, 0.1767, 0.2334");
          values("0.9053, 0.9285, 1.001, 1.134, 1.339, 1.628, 2.008, 2.487, 3.071, 3.768",\
                 "0.9146, 0.9376, 1.01, 1.143, 1.348, 1.637, 2.017, 2.496, 3.08, 3.777",\
                 "0.9501, 0.9734, 1.046, 1.178, 1.384, 1.672, 2.052, 2.531, 3.116, 3.813",\
                 "1.024, 1.047, 1.12, 1.253, 1.458, 1.746, 2.127, 2.605, 3.19, 3.887",\
                 "1.133, 1.157, 1.229, 1.361, 1.567, 1.855, 2.235, 2.714, 3.299, 3.996",\
                 "1.262, 1.285, 1.358, 1.49, 1.695, 1.984, 2.364, 2.843, 3.427, 4.124",\
                 "1.407, 1.43, 1.503, 1.635, 1.84, 2.129, 2.509, 2.988, 3.573, 4.269",\
                 "1.57, 1.593, 1.666, 1.798, 2.003, 2.292, 2.672, 3.151, 3.735, 4.432",\
                 "1.748, 1.772, 1.844, 1.977, 2.182, 2.471, 2.851, 3.329, 3.914, 4.611",\
                 "1.941, 1.965, 2.037, 2.17, 2.375, 2.664, 3.044, 3.522, 4.107, 4.803");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.001, 0.002604, 0.008234, 0.01898, 0.03573, 0.05924, 0.09016, 0.1291, 0.1767, 0.2334");
          values("0.0879, 0.1086, 0.1745, 0.2908, 0.4774, 0.754, 1.127, 1.597, 2.175, 2.858",\
                 "0.08824, 0.1087, 0.1744, 0.2908, 0.4778, 0.7548, 1.126, 1.597, 2.175, 2.858",\
                 "0.08778, 0.1089, 0.1742, 0.2908, 0.4776, 0.7548, 1.128, 1.597, 2.176, 2.859",\
                 "0.0878, 0.109, 0.1742, 0.2906, 0.4774, 0.7548, 1.128, 1.597, 2.175, 2.859",\
                 "0.0878, 0.1088, 0.1742, 0.2908, 0.478, 0.754, 1.126, 1.599, 2.175, 2.859",\
                 "0.088, 0.1086, 0.1742, 0.2908, 0.4778, 0.754, 1.128, 1.597, 2.175, 2.858",\
                 "0.088, 0.1088, 0.1744, 0.2908, 0.4768, 0.7538, 1.126, 1.597, 2.174, 2.858",\
                 "0.0878, 0.109, 0.1748, 0.291, 0.478, 0.7544, 1.126, 1.598, 2.174, 2.861",\
                 "0.0882, 0.109, 0.1748, 0.2912, 0.4774, 0.7542, 1.127, 1.597, 2.172, 2.858",\
                 "0.0884, 0.1094, 0.1748, 0.2912, 0.4774, 0.755, 1.127, 1.597, 2.173, 2.857");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.001, 0.002604, 0.008234, 0.01898, 0.03573, 0.05924, 0.09016, 0.1291, 0.1767, 0.2334");
          values("0.1052, 0.1359, 0.2444, 0.4644, 0.8158, 1.314, 1.97, 2.793, 3.802, 5.005",\
                 "0.1055, 0.1358, 0.2443, 0.4646, 0.8152, 1.315, 1.97, 2.793, 3.802, 5.004",\
                 "0.1054, 0.1358, 0.2442, 0.4638, 0.8162, 1.315, 1.97, 2.791, 3.807, 5.009",\
                 "0.1056, 0.1358, 0.2442, 0.4644, 0.8158, 1.315, 1.97, 2.791, 3.806, 5.009",\
                 "0.1054, 0.1358, 0.2442, 0.4644, 0.816, 1.314, 1.97, 2.792, 3.807, 5.009",\
                 "0.1052, 0.1356, 0.2442, 0.464, 0.8158, 1.315, 1.97, 2.792, 3.803, 5.005",\
                 "0.1052, 0.1356, 0.2442, 0.4638, 0.8156, 1.314, 1.969, 2.793, 3.8, 5",\
                 "0.1052, 0.1354, 0.244, 0.4642, 0.8158, 1.313, 1.97, 2.793, 3.799, 5.001",\
                 "0.105, 0.1354, 0.2442, 0.464, 0.8156, 1.313, 1.966, 2.795, 3.799, 5.011",\
                 "0.1048, 0.1354, 0.244, 0.4642, 0.8158, 1.313, 1.967, 2.792, 3.8, 5");
        }
      }
    }
  }

