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

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

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

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

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

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

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

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

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

    pin(CLK) {
      capacitance : 0.004956 ;
      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 : 0.991 ;
      min_pulse_width_high : 0.382 ;
      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.2069, 0.2062, 0.2094, 0.2254, 0.2573, 0.3064, 0.374, 0.461, \
                  0.5679, 0.696");
        }

        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.1346, 0.1343, 0.1368, 0.1501, 0.1767, 0.2195, 0.2786, 0.3558, \
                  0.4509, 0.5653");
        }
      }

      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.2138, 0.2132, 0.2165, 0.2323, 0.2642, 0.3134, 0.3809, 0.4677, \
                  0.5746, 0.7025");
        }

        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.1342, 0.134, 0.1365, 0.1498, 0.1766, 0.2192, 0.2786, 0.3557, \
                  0.4508, 0.5651");
        }
      }

      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.325");
        }
      }

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

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

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

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

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

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

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

    pin(D) {
      capacitance : 0.003759 ;
      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.1235, 0.1229, 0.1236, 0.1319, 0.1499, 0.1781, 0.2173, 0.2672, \
                  0.3282, 0.4008");
        }

        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.08315, 0.08336, 0.08507, 0.09242, 0.1073, 0.1312, 0.1644, 0.2074, \
                  0.2604, 0.3241");
        }
      }

      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.01203, 0.01203, 0.01203, 0.01204, 0.01203, 0.01203, 0.01205, \
                  0.01205, 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.01254, -0.01254, -0.01256, -0.0126, \
                  -0.01263, -0.01265, -0.01266");
        }
      }

      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.126, 0.129, 0.153, 0.195, 0.221, 0.243, 0.249, 0.235, 0.217, 0.168",\
                 "0.121, 0.121, 0.154, 0.19, 0.217, 0.239, 0.24, 0.229, 0.208, 0.161",\
                 "0.092, 0.101, 0.123, 0.16, 0.189, 0.21, 0.219, 0.208, 0.182, 0.132",\
                 "0.056, 0.054, 0.083, 0.119, 0.148, 0.173, 0.173, 0.162, 0.137, 0.092",\
                 "0.011, 0.008, 0.037, 0.073, 0.104, 0.119, 0.124, 0.117, 0.085, 0.037",\
                 "-0.04, -0.047, -0.012, 0.024, 0.048, 0.068, 0.077, 0.06, 0.034, -0.014",\
                 "-0.104, -0.114, -0.081, -0.047, -0.017, 0.008, 0.015, -0.002, -0.024, -0.078",\
                 "-0.168, -0.19, -0.153, -0.12, -0.09, -0.06, -0.058, -0.07, -0.089, -0.138",\
                 "-0.256, -0.276, -0.238, -0.202, -0.167, -0.143, -0.135, -0.142, -0.162, -0.217",\
                 "-0.342, -0.381, -0.331, -0.3, -0.265, -0.233, -0.22, -0.234, -0.252, -0.3");
        }

        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.011, 0.021, 0.048, 0.063, 0.07, 0.07, 0.045, 0.013, -0.03, -0.089",\
                 "0.005, 0.015, 0.041, 0.057, 0.065, 0.062, 0.044, 0.011, -0.032, -0.091",\
                 "-0.004, -0.003, 0.023, 0.038, 0.05, 0.053, 0.029, 0.006, -0.044, -0.106",\
                 "-0.023, -0.016, 0.01, 0.025, 0.037, 0.032, 0.009, -0.022, -0.068, -0.129",\
                 "-0.04, -0.029, -0.01, 0.011, 0.017, 0.008, -0.012, -0.049, -0.102, -0.161",\
                 "-0.033, -0.024, -0.004, 0.005, 0.009, -0.007, -0.033, -0.075, -0.134, -0.205",\
                 "-0.007, 0.001, 0.023, 0.029, 0.027, 0.008, -0.035, -0.08, -0.148, -0.227",\
                 "0.04, 0.05, 0.072, 0.072, 0.067, 0.034, -0.009, -0.063, -0.139, -0.226",\
                 "0.119, 0.123, 0.142, 0.139, 0.126, 0.089, 0.039, -0.026, -0.104, -0.206",\
                 "0.211, 0.221, 0.238, 0.231, 0.212, 0.173, 0.113, 0.04, -0.048, -0.157");
        }
      }

      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.189, 0.185, 0.162, 0.116, 0.082, 0.065, 0.052, 0.069, 0.1, 0.147",\
                 "0.193, 0.184, 0.167, 0.123, 0.092, 0.069, 0.061, 0.072, 0.103, 0.15",\
                 "0.222, 0.22, 0.188, 0.148, 0.118, 0.095, 0.086, 0.096, 0.126, 0.178",\
                 "0.294, 0.287, 0.258, 0.217, 0.191, 0.165, 0.155, 0.172, 0.193, 0.245",\
                 "0.404, 0.394, 0.37, 0.328, 0.295, 0.276, 0.264, 0.279, 0.301, 0.351",\
                 "0.543, 0.539, 0.516, 0.473, 0.437, 0.415, 0.403, 0.41, 0.439, 0.491",\
                 "0.706, 0.699, 0.679, 0.634, 0.606, 0.582, 0.567, 0.576, 0.6, 0.647",\
                 "0.895, 0.888, 0.87, 0.822, 0.791, 0.766, 0.758, 0.762, 0.787, 0.832",\
                 "1.108, 1.106, 1.076, 1.037, 1.004, 0.978, 0.966, 0.973, 0.992, 1.038",\
                 "1.344, 1.338, 1.317, 1.271, 1.24, 1.21, 1.201, 1.202, 1.227, 1.268");
        }

        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.252, 0.242, 0.232, 0.189, 0.168, 0.17, 0.181, 0.225, 0.278, 0.352",\
                 "0.264, 0.248, 0.233, 0.193, 0.181, 0.176, 0.192, 0.229, 0.282, 0.357",\
                 "0.284, 0.267, 0.253, 0.221, 0.194, 0.195, 0.207, 0.244, 0.296, 0.377",\
                 "0.314, 0.301, 0.29, 0.249, 0.233, 0.231, 0.238, 0.272, 0.334, 0.411",\
                 "0.343, 0.332, 0.312, 0.28, 0.269, 0.259, 0.271, 0.316, 0.36, 0.447",\
                 "0.363, 0.354, 0.343, 0.304, 0.286, 0.279, 0.302, 0.332, 0.393, 0.475",\
                 "0.373, 0.36, 0.34, 0.312, 0.29, 0.287, 0.306, 0.353, 0.41, 0.507",\
                 "0.354, 0.348, 0.333, 0.296, 0.283, 0.275, 0.306, 0.346, 0.413, 0.509",\
                 "0.326, 0.317, 0.3, 0.267, 0.255, 0.254, 0.274, 0.326, 0.391, 0.487",\
                 "0.271, 0.258, 0.245, 0.216, 0.205, 0.208, 0.229, 0.273, 0.351, 0.45");
        }
      }
    }

    pin(Q) {
      direction : output ;
      function : "IQ1" ;
      max_capacitance : 0.3773 ;
      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.003597, 0.01271, 0.03012, 0.05725, 0.09531, 0.1454, 0.2085, 0.2855, 0.3773");
          values("0.2233, 0.2206, 0.2156, 0.2124, 0.2105, 0.2093, 0.2085, 0.2081, 0.2076, 0.2074",\
                 "0.2232, 0.2205, 0.2156, 0.2124, 0.2105, 0.2092, 0.2085, 0.2079, 0.2076, 0.2073",\
                 "0.2235, 0.2208, 0.2159, 0.2126, 0.2108, 0.2095, 0.2088, 0.2083, 0.2079, 0.2077",\
                 "0.2248, 0.222, 0.2172, 0.2139, 0.212, 0.2108, 0.21, 0.2095, 0.2092, 0.2089",\
                 "0.2268, 0.2241, 0.2192, 0.2159, 0.214, 0.2129, 0.2121, 0.2116, 0.2112, 0.2109",\
                 "0.229, 0.2263, 0.2215, 0.2182, 0.2163, 0.215, 0.2144, 0.2138, 0.2135, 0.2132",\
                 "0.2322, 0.2295, 0.2246, 0.2214, 0.2196, 0.2184, 0.2176, 0.2171, 0.2167, 0.2164",\
                 "0.2358, 0.233, 0.2281, 0.2249, 0.2229, 0.2218, 0.2211, 0.2205, 0.2202, 0.22",\
                 "0.2396, 0.2369, 0.2321, 0.2289, 0.227, 0.2259, 0.225, 0.2246, 0.2242, 0.2239",\
                 "0.2439, 0.241, 0.2363, 0.233, 0.2312, 0.2299, 0.2291, 0.2287, 0.2283, 0.228");
        }

        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.003597, 0.01271, 0.03012, 0.05725, 0.09531, 0.1454, 0.2085, 0.2855, 0.3773");
          values("0.2009, 0.1989, 0.1956, 0.1934, 0.1925, 0.1927, 0.1934, 0.1942, 0.1946, 0.1956",\
                 "0.2008, 0.1989, 0.1954, 0.1933, 0.1924, 0.1926, 0.1932, 0.1938, 0.1945, 0.1951",\
                 "0.2009, 0.1989, 0.1955, 0.1933, 0.1924, 0.1929, 0.1934, 0.1939, 0.1945, 0.1951",\
                 "0.2019, 0.1999, 0.1965, 0.1944, 0.1935, 0.1938, 0.1945, 0.195, 0.1955, 0.1969",\
                 "0.2044, 0.2024, 0.199, 0.1969, 0.196, 0.1961, 0.1967, 0.1973, 0.198, 0.199",\
                 "0.2078, 0.2057, 0.2021, 0.2005, 0.1995, 0.1995, 0.2002, 0.2006, 0.201, 0.2017",\
                 "0.2127, 0.2109, 0.2073, 0.2048, 0.2044, 0.2048, 0.2052, 0.2055, 0.206, 0.2077",\
                 "0.2189, 0.2169, 0.2134, 0.211, 0.2097, 0.2103, 0.2125, 0.2124, 0.2129, 0.2127",\
                 "0.2265, 0.2244, 0.221, 0.2184, 0.2171, 0.2169, 0.2182, 0.2209, 0.2211, 0.222",\
                 "0.2352, 0.2331, 0.2294, 0.2269, 0.2253, 0.2254, 0.2259, 0.2278, 0.2306, 0.2322");
        }
      }

      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.003597, 0.01271, 0.03012, 0.05725, 0.09531, 0.1454, 0.2085, 0.2855, 0.3773");
          values("0.6362, 0.657, 0.7145, 0.8027, 0.9239, 1.086, 1.297, 1.562, 1.886, 2.273",\
                 "0.6429, 0.6635, 0.721, 0.8093, 0.9305, 1.092, 1.303, 1.569, 1.893, 2.279",\
                 "0.6689, 0.6895, 0.7471, 0.8353, 0.9565, 1.118, 1.329, 1.595, 1.918, 2.305",\
                 "0.7111, 0.7317, 0.7892, 0.8775, 0.9987, 1.161, 1.371, 1.637, 1.961, 2.347",\
                 "0.7479, 0.7685, 0.8261, 0.9143, 1.035, 1.197, 1.408, 1.674, 1.997, 2.384",\
                 "0.7748, 0.7954, 0.8529, 0.9412, 1.062, 1.224, 1.435, 1.7, 2.024, 2.411",\
                 "0.7879, 0.8085, 0.866, 0.9542, 1.076, 1.237, 1.448, 1.713, 2.037, 2.423",\
                 "0.786, 0.8066, 0.8639, 0.9521, 1.073, 1.235, 1.446, 1.712, 2.035, 2.422",\
                 "0.7663, 0.7869, 0.8445, 0.9328, 1.054, 1.216, 1.427, 1.692, 2.016, 2.402",\
                 "0.7287, 0.7493, 0.8068, 0.8951, 1.016, 1.178, 1.389, 1.654, 1.978, 2.364");
        }

        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.003597, 0.01271, 0.03012, 0.05725, 0.09531, 0.1454, 0.2085, 0.2855, 0.3773");
          values("0.5862, 0.6083, 0.6786, 0.8065, 1.007, 1.289, 1.661, 2.128, 2.699, 3.381",\
                 "0.5928, 0.615, 0.6851, 0.8132, 1.014, 1.295, 1.667, 2.135, 2.707, 3.39",\
                 "0.6181, 0.6404, 0.7105, 0.8384, 1.039, 1.321, 1.692, 2.16, 2.732, 3.413",\
                 "0.659, 0.6812, 0.7512, 0.8793, 1.079, 1.362, 1.733, 2.201, 2.773, 3.455",\
                 "0.6948, 0.717, 0.7873, 0.9153, 1.116, 1.398, 1.769, 2.237, 2.81, 3.492",\
                 "0.7212, 0.7434, 0.8135, 0.9415, 1.142, 1.424, 1.795, 2.264, 2.835, 3.518",\
                 "0.7352, 0.7574, 0.8277, 0.9557, 1.156, 1.438, 1.809, 2.277, 2.849, 3.531",\
                 "0.7352, 0.7575, 0.8275, 0.9556, 1.156, 1.438, 1.809, 2.277, 2.848, 3.53",\
                 "0.7192, 0.7414, 0.8113, 0.9394, 1.14, 1.422, 1.793, 2.26, 2.832, 3.513",\
                 "0.6859, 0.7081, 0.7781, 0.9062, 1.106, 1.388, 1.759, 2.227, 2.798, 3.48");
        }

        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.003597, 0.01271, 0.03012, 0.05725, 0.09531, 0.1454, 0.2085, 0.2855, 0.3773");
          values("0.09114, 0.1124, 0.1756, 0.2888, 0.4671, 0.7311, 1.087, 1.542, 2.097, 2.76",\
                 "0.09116, 0.1123, 0.1758, 0.2884, 0.4674, 0.7311, 1.088, 1.543, 2.099, 2.763",\
                 "0.09094, 0.1124, 0.1756, 0.2893, 0.4672, 0.7304, 1.087, 1.543, 2.097, 2.765",\
                 "0.09118, 0.1121, 0.1756, 0.289, 0.4674, 0.7316, 1.088, 1.543, 2.098, 2.76",\
                 "0.0912, 0.1124, 0.1754, 0.2888, 0.468, 0.731, 1.087, 1.543, 2.098, 2.76",\
                 "0.0908, 0.1118, 0.1754, 0.2886, 0.4672, 0.7302, 1.088, 1.542, 2.098, 2.765",\
                 "0.0908, 0.1118, 0.1754, 0.2886, 0.4672, 0.7302, 1.087, 1.541, 2.096, 2.761",\
                 "0.0908, 0.1118, 0.1758, 0.2884, 0.467, 0.7304, 1.087, 1.54, 2.095, 2.757",\
                 "0.0908, 0.1118, 0.1758, 0.2882, 0.467, 0.7304, 1.086, 1.54, 2.095, 2.758",\
                 "0.091, 0.112, 0.1758, 0.2886, 0.4668, 0.7306, 1.087, 1.542, 2.097, 2.761");
        }

        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.003597, 0.01271, 0.03012, 0.05725, 0.09531, 0.1454, 0.2085, 0.2855, 0.3773");
          values("0.09698, 0.1283, 0.2411, 0.4704, 0.8375, 1.354, 2.038, 2.896, 3.936, 5.185",\
                 "0.09696, 0.1284, 0.241, 0.4703, 0.8372, 1.356, 2.037, 2.895, 3.937, 5.181",\
                 "0.09674, 0.1283, 0.241, 0.4703, 0.8374, 1.355, 2.037, 2.895, 3.935, 5.184",\
                 "0.0969, 0.1283, 0.2413, 0.4704, 0.8372, 1.356, 2.037, 2.896, 3.937, 5.185",\
                 "0.0972, 0.1282, 0.2412, 0.4704, 0.8374, 1.354, 2.037, 2.896, 3.935, 5.184",\
                 "0.097, 0.1284, 0.2414, 0.4708, 0.8374, 1.357, 2.036, 2.893, 3.935, 5.184",\
                 "0.097, 0.1286, 0.2414, 0.4708, 0.8372, 1.354, 2.036, 2.895, 3.937, 5.185",\
                 "0.0974, 0.1286, 0.2418, 0.4706, 0.8384, 1.354, 2.035, 2.892, 3.943, 5.182",\
                 "0.0976, 0.1288, 0.242, 0.4706, 0.8388, 1.354, 2.038, 2.891, 3.937, 5.185",\
                 "0.0978, 0.1292, 0.2418, 0.4706, 0.8376, 1.354, 2.034, 2.892, 3.938, 5.184");
        }
      }
    }
  }

