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

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

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

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

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

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

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

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

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

    pin(CLK) {
      capacitance : 0.003265 ;
      clock : true ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 7 ;
      min_period : 2.139 ;
      min_pulse_width_high : 0.96 ;
      min_pulse_width_low : 1.071 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!D" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("0.2344, 0.2338, 0.235, 0.2433, 0.2624, 0.2932, 0.3365, 0.3932, \
                  0.4636, 0.5483");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("0.1822, 0.1818, 0.1822, 0.1887, 0.2045, 0.2307, 0.2686, 0.3188, \
                  0.3816, 0.4577");
        }
      }

      internal_power() {
        when : "D" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("0.2379, 0.2375, 0.2385, 0.2469, 0.2661, 0.2967, 0.34, 0.3966, \
                  0.4669, 0.5516");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("0.1819, 0.1815, 0.1819, 0.1884, 0.2044, 0.2306, 0.2685, 0.3187, \
                  0.3817, 0.4578");
        }
      }

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

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

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

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

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

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

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

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

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

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

    pin(D) {
      capacitance : 0.002378 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 7 ;
      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.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("0.1307, 0.1301, 0.1295, 0.132, 0.1397, 0.1534, 0.1728, 0.1982, \
                  0.23, 0.2683");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("0.09023, 0.09051, 0.09117, 0.09423, 0.1006, 0.1111, 0.1262, 0.1463, \
                  0.1716, 0.2023");
        }
      }

      internal_power() {
        when : "CLK" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("0.007543, 0.007545, 0.007547, 0.007552, 0.007552, 0.00756, 0.007556, \
                  0.007553, 0.007546, 0.007534");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("-0.004745, -0.004748, -0.004753, -0.004747, -0.004754, -0.004783, \
                  -0.004804, -0.004815, -0.004829, -0.004847");
        }
      }

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

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("0.132, 0.14, 0.182, 0.244, 0.317, 0.381, 0.424, 0.457, 0.472, 0.474",\
                 "0.125, 0.135, 0.17, 0.239, 0.306, 0.368, 0.414, 0.45, 0.468, 0.466",\
                 "0.093, 0.103, 0.139, 0.208, 0.278, 0.337, 0.384, 0.419, 0.433, 0.434",\
                 "0.002, 0.013, 0.042, 0.111, 0.19, 0.244, 0.293, 0.325, 0.348, 0.345",\
                 "-0.159, -0.149, -0.116, -0.039, 0.028, 0.091, 0.145, 0.174, 0.191, 0.188",\
                 "-0.362, -0.348, -0.32, -0.249, -0.17, -0.107, -0.066, -0.031, -0.015, -0.017",\
                 "-0.606, -0.592, -0.564, -0.491, -0.419, -0.362, -0.312, -0.283, -0.264, -0.277",\
                 "-0.885, -0.883, -0.849, -0.781, -0.71, -0.654, -0.606, -0.582, -0.567, -0.58",\
                 "-1.225, -1.22, -1.187, -1.123, -1.046, -0.991, -0.946, -0.926, -0.91, -0.928",\
                 "-1.609, -1.6, -1.576, -1.509, -1.437, -1.385, -1.34, -1.318, -1.309, -1.32");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("0.063, 0.067, 0.104, 0.164, 0.216, 0.256, 0.284, 0.301, 0.302, 0.295",\
                 "0.058, 0.06, 0.096, 0.155, 0.208, 0.25, 0.279, 0.292, 0.296, 0.286",\
                 "0.034, 0.038, 0.077, 0.138, 0.189, 0.231, 0.264, 0.28, 0.29, 0.284",\
                 "0.018, 0.021, 0.062, 0.117, 0.172, 0.213, 0.243, 0.264, 0.277, 0.272",\
                 "0.018, 0.027, 0.06, 0.12, 0.174, 0.214, 0.248, 0.265, 0.269, 0.257",\
                 "0.052, 0.056, 0.084, 0.146, 0.193, 0.232, 0.256, 0.274, 0.277, 0.259",\
                 "0.115, 0.119, 0.149, 0.211, 0.252, 0.288, 0.305, 0.317, 0.317, 0.295",\
                 "0.225, 0.23, 0.263, 0.319, 0.362, 0.384, 0.403, 0.403, 0.395, 0.373",\
                 "0.391, 0.39, 0.424, 0.477, 0.515, 0.539, 0.544, 0.544, 0.528, 0.5",\
                 "0.61, 0.608, 0.64, 0.692, 0.72, 0.737, 0.738, 0.73, 0.708, 0.669");
        }
      }

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

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("0.475, 0.463, 0.426, 0.351, 0.271, 0.207, 0.143, 0.108, 0.077, 0.073",\
                 "0.485, 0.467, 0.429, 0.365, 0.276, 0.204, 0.147, 0.111, 0.087, 0.084",\
                 "0.515, 0.502, 0.465, 0.391, 0.31, 0.239, 0.179, 0.14, 0.118, 0.112",\
                 "0.616, 0.599, 0.566, 0.494, 0.404, 0.341, 0.285, 0.242, 0.219, 0.215",\
                 "0.797, 0.784, 0.747, 0.677, 0.589, 0.52, 0.459, 0.417, 0.398, 0.388",\
                 "1.056, 1.039, 1.003, 0.931, 0.853, 0.776, 0.72, 0.681, 0.651, 0.647",\
                 "1.375, 1.366, 1.322, 1.251, 1.173, 1.099, 1.041, 1.003, 0.97, 0.96",\
                 "1.771, 1.75, 1.715, 1.64, 1.562, 1.491, 1.43, 1.388, 1.357, 1.35",\
                 "2.219, 2.203, 2.166, 2.092, 2.008, 1.944, 1.885, 1.837, 1.807, 1.797",\
                 "2.728, 2.718, 2.676, 2.61, 2.531, 2.45, 2.391, 2.349, 2.318, 2.307");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("0.458, 0.443, 0.406, 0.327, 0.246, 0.178, 0.122, 0.098, 0.084, 0.09",\
                 "0.465, 0.452, 0.413, 0.331, 0.25, 0.184, 0.133, 0.102, 0.087, 0.093",\
                 "0.496, 0.492, 0.444, 0.371, 0.281, 0.218, 0.164, 0.13, 0.111, 0.121",\
                 "0.545, 0.54, 0.496, 0.416, 0.333, 0.256, 0.203, 0.17, 0.154, 0.16",\
                 "0.582, 0.575, 0.527, 0.455, 0.37, 0.302, 0.242, 0.204, 0.189, 0.193",\
                 "0.593, 0.585, 0.539, 0.463, 0.381, 0.304, 0.249, 0.218, 0.196, 0.198",\
                 "0.57, 0.556, 0.512, 0.442, 0.352, 0.278, 0.225, 0.195, 0.177, 0.178",\
                 "0.505, 0.489, 0.455, 0.369, 0.289, 0.218, 0.165, 0.131, 0.119, 0.124",\
                 "0.394, 0.382, 0.337, 0.262, 0.176, 0.106, 0.055, 0.019, 0.013, 0.023",\
                 "0.227, 0.217, 0.179, 0.098, 0.013, -0.059, -0.113, -0.136, -0.148, -0.133");
        }
      }
    }

    pin(Q) {
      direction : output ;
      function : "IQ1" ;
      max_capacitance : 0.2469 ;
      max_transition : 7 ;
      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.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.002697, 0.008654, 0.02003, 0.03775, 0.06262, 0.09535, 0.1366, 0.1869, 0.2469");
          values("0.2178, 0.216, 0.2133, 0.2116, 0.2105, 0.2099, 0.2095, 0.2093, 0.2091, 0.209",\
                 "0.2177, 0.2161, 0.2134, 0.2116, 0.2106, 0.21, 0.2096, 0.2093, 0.2091, 0.209",\
                 "0.2177, 0.216, 0.2134, 0.2117, 0.2106, 0.21, 0.2097, 0.2094, 0.2091, 0.209",\
                 "0.2182, 0.2164, 0.2137, 0.212, 0.2109, 0.2103, 0.21, 0.2097, 0.2096, 0.2094",\
                 "0.219, 0.2173, 0.2147, 0.2129, 0.2118, 0.2113, 0.2109, 0.2106, 0.2104, 0.2103",\
                 "0.2203, 0.2185, 0.2158, 0.2141, 0.2131, 0.2124, 0.2121, 0.2118, 0.2116, 0.2115",\
                 "0.2215, 0.2198, 0.2172, 0.2153, 0.2144, 0.2138, 0.2133, 0.2131, 0.2129, 0.2128",\
                 "0.223, 0.2213, 0.2186, 0.2169, 0.2158, 0.2153, 0.2149, 0.2146, 0.2144, 0.2142",\
                 "0.2247, 0.2231, 0.2205, 0.2186, 0.2176, 0.217, 0.2167, 0.2163, 0.2161, 0.216",\
                 "0.2265, 0.2248, 0.2221, 0.2202, 0.2194, 0.2188, 0.2184, 0.218, 0.2178, 0.2177");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.002697, 0.008654, 0.02003, 0.03775, 0.06262, 0.09535, 0.1366, 0.1869, 0.2469");
          values("0.2259, 0.2239, 0.2198, 0.2165, 0.2148, 0.2144, 0.2148, 0.2153, 0.2161, 0.2174",\
                 "0.2259, 0.224, 0.2201, 0.2168, 0.2149, 0.2146, 0.2149, 0.2156, 0.2162, 0.2176",\
                 "0.2257, 0.2238, 0.2199, 0.2167, 0.2149, 0.2145, 0.2148, 0.2153, 0.2161, 0.2176",\
                 "0.2261, 0.2242, 0.2202, 0.217, 0.2151, 0.2147, 0.2152, 0.2155, 0.2164, 0.2187",\
                 "0.2271, 0.2251, 0.2211, 0.218, 0.2162, 0.2158, 0.2161, 0.2166, 0.2172, 0.2195",\
                 "0.2286, 0.2267, 0.2227, 0.2196, 0.2177, 0.2173, 0.2176, 0.2181, 0.2187, 0.2213",\
                 "0.2308, 0.2288, 0.2247, 0.2216, 0.22, 0.2193, 0.2198, 0.2203, 0.2208, 0.2248",\
                 "0.2333, 0.2314, 0.2273, 0.2238, 0.2222, 0.2226, 0.2226, 0.223, 0.2242, 0.2276",\
                 "0.2364, 0.2344, 0.2302, 0.227, 0.2247, 0.2247, 0.226, 0.2272, 0.2273, 0.2325",\
                 "0.2403, 0.2383, 0.234, 0.2307, 0.2288, 0.2282, 0.2283, 0.2302, 0.2328, 0.2407");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.002697, 0.008654, 0.02003, 0.03775, 0.06262, 0.09535, 0.1366, 0.1869, 0.2469");
          values("1.116, 1.144, 1.226, 1.355, 1.535, 1.777, 2.093, 2.491, 2.977, 3.555",\
                 "1.125, 1.154, 1.236, 1.365, 1.545, 1.787, 2.103, 2.5, 2.986, 3.564",\
                 "1.162, 1.19, 1.273, 1.402, 1.581, 1.824, 2.14, 2.537, 3.023, 3.601",\
                 "1.235, 1.263, 1.345, 1.474, 1.654, 1.896, 2.212, 2.61, 3.095, 3.674",\
                 "1.318, 1.346, 1.429, 1.558, 1.738, 1.98, 2.296, 2.693, 3.179, 3.758",\
                 "1.393, 1.421, 1.503, 1.633, 1.812, 2.055, 2.371, 2.768, 3.254, 3.832",\
                 "1.458, 1.486, 1.568, 1.697, 1.877, 2.119, 2.435, 2.833, 3.319, 3.897",\
                 "1.509, 1.537, 1.619, 1.748, 1.928, 2.17, 2.486, 2.884, 3.369, 3.947",\
                 "1.543, 1.571, 1.654, 1.783, 1.963, 2.205, 2.521, 2.918, 3.404, 3.982",\
                 "1.56, 1.588, 1.67, 1.799, 1.979, 2.221, 2.537, 2.934, 3.42, 3.998");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.002697, 0.008654, 0.02003, 0.03775, 0.06262, 0.09535, 0.1366, 0.1869, 0.2469");
          values("1.276, 1.309, 1.41, 1.588, 1.861, 2.247, 2.756, 3.396, 4.179, 5.113",\
                 "1.286, 1.318, 1.42, 1.597, 1.871, 2.257, 2.765, 3.406, 4.189, 5.122",\
                 "1.322, 1.355, 1.456, 1.634, 1.908, 2.294, 2.802, 3.442, 4.225, 5.158",\
                 "1.395, 1.427, 1.529, 1.706, 1.98, 2.366, 2.874, 3.515, 4.298, 5.232",\
                 "1.48, 1.513, 1.614, 1.792, 2.066, 2.452, 2.96, 3.6, 4.383, 5.317",\
                 "1.558, 1.591, 1.692, 1.87, 2.144, 2.529, 3.038, 3.679, 4.461, 5.393",\
                 "1.628, 1.661, 1.762, 1.94, 2.214, 2.599, 3.108, 3.748, 4.531, 5.464",\
                 "1.687, 1.72, 1.821, 1.999, 2.272, 2.658, 3.166, 3.807, 4.59, 5.523",\
                 "1.73, 1.763, 1.865, 2.042, 2.316, 2.701, 3.209, 3.851, 4.633, 5.566",\
                 "1.758, 1.791, 1.892, 2.07, 2.344, 2.729, 3.237, 3.878, 4.66, 5.593");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.002697, 0.008654, 0.02003, 0.03775, 0.06262, 0.09535, 0.1366, 0.1869, 0.2469");
          values("0.138, 0.1682, 0.2604, 0.4288, 0.6954, 1.087, 1.615, 2.285, 3.107, 4.089",\
                 "0.1388, 0.1678, 0.2612, 0.4284, 0.6942, 1.086, 1.613, 2.286, 3.109, 4.089",\
                 "0.1384, 0.1678, 0.2612, 0.4284, 0.6944, 1.086, 1.614, 2.286, 3.109, 4.089",\
                 "0.1384, 0.1678, 0.2614, 0.4282, 0.6946, 1.086, 1.614, 2.285, 3.107, 4.088",\
                 "0.1386, 0.1678, 0.2614, 0.4282, 0.6948, 1.086, 1.615, 2.287, 3.108, 4.086",\
                 "0.1382, 0.1682, 0.2606, 0.4276, 0.6954, 1.085, 1.615, 2.284, 3.109, 4.089",\
                 "0.139, 0.1682, 0.2618, 0.4276, 0.6944, 1.086, 1.615, 2.287, 3.107, 4.09",\
                 "0.139, 0.168, 0.2618, 0.4282, 0.6942, 1.086, 1.614, 2.283, 3.105, 4.084",\
                 "0.1384, 0.168, 0.2616, 0.4278, 0.695, 1.086, 1.615, 2.285, 3.102, 4.079",\
                 "0.1382, 0.1676, 0.2612, 0.4274, 0.6946, 1.088, 1.614, 2.285, 3.105, 4.082");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.002697, 0.008654, 0.02003, 0.03775, 0.06262, 0.09535, 0.1366, 0.1869, 0.2469");
          values("0.1704, 0.2136, 0.3632, 0.6616, 1.152, 1.847, 2.761, 3.917, 5.327, 6.996",\
                 "0.1704, 0.2138, 0.3624, 0.6622, 1.152, 1.845, 2.763, 3.914, 5.327, 6.993",\
                 "0.17, 0.2134, 0.3622, 0.6622, 1.149, 1.844, 2.763, 3.909, 5.325, 6.996",\
                 "0.1706, 0.2134, 0.3628, 0.662, 1.151, 1.845, 2.758, 3.911, 5.324, 6.993",\
                 "0.1704, 0.2134, 0.3628, 0.6622, 1.15, 1.845, 2.762, 3.91, 5.317, 6.996",\
                 "0.17, 0.2132, 0.3626, 0.6622, 1.15, 1.846, 2.763, 3.917, 5.321, 6.992",\
                 "0.1702, 0.2136, 0.3626, 0.661, 1.15, 1.846, 2.763, 3.914, 5.318, 6.995",\
                 "0.1698, 0.214, 0.363, 0.6618, 1.15, 1.844, 2.761, 3.916, 5.326, 6.997",\
                 "0.1706, 0.2138, 0.3628, 0.6618, 1.15, 1.846, 2.76, 3.911, 5.327, 7.008",\
                 "0.1702, 0.2142, 0.3634, 0.6614, 1.151, 1.845, 2.76, 3.91, 5.319, 7.001");
        }
      }
    }
  }

