/*
 * 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__dffnq_4) {
    area : 98.784000 ;

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

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

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

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

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

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

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

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

    pin(CLKN) {
      capacitance : 0.004759 ;
      clock : true ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 8.4 ;
      min_period : 2.041 ;
      min_pulse_width_high : 0.757 ;
      min_pulse_width_low : 1.015 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!D" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("0.06143, 0.06118, 0.06087, 0.06166, 0.06436, 0.06893, 0.0755, \
                  0.08439, 0.09571, 0.1096");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("0.03956, 0.03941, 0.03925, 0.03992, 0.042, 0.04586, 0.05167, 0.05965, \
                  0.06978, 0.08222");
        }
      }

      internal_power() {
        when : "D" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("0.0615, 0.06121, 0.0609, 0.06171, 0.06444, 0.06899, 0.07559, 0.08445, \
                  0.09577, 0.1097");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("0.03951, 0.03936, 0.03918, 0.03988, 0.04195, 0.04579, 0.05162, \
                  0.05955, 0.06972, 0.08219");
        }
      }

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

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

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

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

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

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

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

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

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

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

    pin(D) {
      capacitance : 0.003686 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 8.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.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("0.01368, 0.0133, 0.01337, 0.01456, 0.01706, 0.02094, 0.02634, \
                  0.03336, 0.04212, 0.05267");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("0.002574, 0.002381, 0.002313, 0.003115, 0.005157, 0.008492, 0.01323, \
                  0.01945, 0.02718, 0.03653");
        }
      }

      internal_power() {
        when : "CLKN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("0.04594, 0.04573, 0.0457, 0.0465, 0.04872, 0.05237, 0.0576, 0.06463, \
                  0.07354, 0.08447");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("0.03123, 0.03108, 0.03106, 0.03172, 0.03337, 0.03629, 0.04065, \
                  0.04662, 0.05425, 0.06367");
        }
      }

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

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("-0, 0.022, 0.08, 0.186, 0.287, 0.402, 0.551, 0.728, 0.945, 1.188",\
                 "-0.015, 0.008, 0.063, 0.167, 0.265, 0.386, 0.532, 0.71, 0.927, 1.171",\
                 "-0.081, -0.064, -0.008, 0.101, 0.204, 0.315, 0.464, 0.644, 0.856, 1.106",\
                 "-0.204, -0.186, -0.13, -0.022, 0.073, 0.194, 0.338, 0.518, 0.732, 0.976",\
                 "-0.345, -0.326, -0.273, -0.17, -0.072, 0.047, 0.178, 0.352, 0.562, 0.802",\
                 "-0.521, -0.496, -0.447, -0.344, -0.244, -0.132, 0.002, 0.17, 0.372, 0.607",\
                 "-0.716, -0.692, -0.642, -0.533, -0.447, -0.331, -0.197, -0.031, 0.159, 0.388",\
                 "-0.941, -0.921, -0.87, -0.766, -0.678, -0.565, -0.436, -0.274, -0.082, 0.141",\
                 "-1.194, -1.17, -1.123, -1.022, -0.932, -0.828, -0.702, -0.538, -0.357, -0.133",\
                 "-1.472, -1.454, -1.404, -1.309, -1.226, -1.124, -1.001, -0.843, -0.659, -0.44");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("0.269, 0.287, 0.346, 0.481, 0.652, 0.848, 1.071, 1.311, 1.591, 1.89",\
                 "0.251, 0.268, 0.332, 0.461, 0.635, 0.836, 1.052, 1.3, 1.57, 1.874",\
                 "0.206, 0.223, 0.286, 0.414, 0.588, 0.79, 1.005, 1.252, 1.527, 1.828",\
                 "0.163, 0.175, 0.235, 0.368, 0.543, 0.738, 0.963, 1.203, 1.484, 1.78",\
                 "0.129, 0.152, 0.213, 0.342, 0.514, 0.716, 0.927, 1.17, 1.45, 1.751",\
                 "0.122, 0.145, 0.21, 0.336, 0.511, 0.707, 0.924, 1.166, 1.443, 1.744",\
                 "0.15, 0.164, 0.227, 0.356, 0.527, 0.723, 0.939, 1.18, 1.458, 1.762",\
                 "0.202, 0.218, 0.279, 0.404, 0.575, 0.768, 0.986, 1.219, 1.495, 1.802",\
                 "0.3, 0.321, 0.381, 0.498, 0.65, 0.836, 1.048, 1.29, 1.559, 1.865",\
                 "0.451, 0.472, 0.525, 0.632, 0.771, 0.948, 1.154, 1.379, 1.656, 1.95");
        }
      }

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

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("0.578, 0.564, 0.482, 0.359, 0.21, 0.043, -0.147, -0.358, -0.602, -0.872",\
                 "0.594, 0.576, 0.498, 0.374, 0.22, 0.058, -0.13, -0.342, -0.582, -0.854",\
                 "0.664, 0.648, 0.573, 0.44, 0.29, 0.128, -0.066, -0.28, -0.517, -0.786",\
                 "0.803, 0.783, 0.705, 0.579, 0.425, 0.257, 0.073, -0.145, -0.382, -0.659",\
                 "0.989, 0.97, 0.895, 0.766, 0.62, 0.451, 0.253, 0.038, -0.201, -0.476",\
                 "1.22, 1.2, 1.127, 0.996, 0.844, 0.671, 0.473, 0.258, 0.012, -0.259",\
                 "1.483, 1.463, 1.386, 1.257, 1.095, 0.924, 0.726, 0.509, 0.263, -0.011",\
                 "1.772, 1.761, 1.69, 1.55, 1.388, 1.216, 1.018, 0.794, 0.544, 0.272",\
                 "2.112, 2.096, 2.029, 1.894, 1.718, 1.54, 1.343, 1.118, 0.874, 0.6",\
                 "2.501, 2.479, 2.406, 2.267, 2.095, 1.915, 1.713, 1.49, 1.24, 0.96");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("0.298, 0.285, 0.222, 0.109, -0.031, -0.171, -0.32, -0.508, -0.68, -0.912",\
                 "0.308, 0.3, 0.24, 0.127, -0.015, -0.155, -0.306, -0.471, -0.668, -0.88",\
                 "0.356, 0.344, 0.286, 0.172, 0.026, -0.109, -0.261, -0.426, -0.637, -0.838",\
                 "0.437, 0.423, 0.363, 0.241, 0.083, -0.058, -0.221, -0.393, -0.57, -0.817",\
                 "0.513, 0.499, 0.434, 0.305, 0.145, -0.012, -0.194, -0.374, -0.589, -0.772",\
                 "0.571, 0.559, 0.49, 0.366, 0.193, 0.016, -0.173, -0.384, -0.593, -0.815",\
                 "0.609, 0.599, 0.535, 0.397, 0.223, 0.041, -0.158, -0.388, -0.638, -0.862",\
                 "0.63, 0.611, 0.541, 0.413, 0.236, 0.047, -0.165, -0.403, -0.663, -0.944",\
                 "0.626, 0.605, 0.54, 0.399, 0.22, 0.029, -0.182, -0.432, -0.692, -0.984",\
                 "0.582, 0.563, 0.498, 0.364, 0.179, -0.013, -0.233, -0.482, -0.749, -1.05");
        }
      }
    }

    pin(Q) {
      direction : output ;
      function : "IQ1" ;
      max_capacitance : 1.318 ;
      max_transition : 8.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.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.01009, 0.042, 0.1029, 0.1979, 0.3311, 0.5063, 0.7271, 0.9967, 1.318");
          values("0.1571, 0.153, 0.1468, 0.1438, 0.1425, 0.1418, 0.1414, 0.1412, 0.141, 0.1408",\
                 "0.1571, 0.1529, 0.1468, 0.1439, 0.1425, 0.1418, 0.1414, 0.1412, 0.141, 0.1409",\
                 "0.1571, 0.153, 0.1468, 0.1438, 0.1424, 0.1418, 0.1414, 0.1411, 0.141, 0.1408",\
                 "0.1571, 0.1529, 0.1468, 0.1437, 0.1424, 0.1417, 0.1414, 0.1411, 0.1409, 0.1408",\
                 "0.1573, 0.1531, 0.1469, 0.144, 0.1426, 0.142, 0.1416, 0.1413, 0.1412, 0.141",\
                 "0.1576, 0.1534, 0.1473, 0.1444, 0.143, 0.1423, 0.1419, 0.1416, 0.1414, 0.1413",\
                 "0.1582, 0.1539, 0.1478, 0.1448, 0.1435, 0.1427, 0.1424, 0.1421, 0.1419, 0.1418",\
                 "0.1587, 0.1547, 0.1484, 0.1453, 0.144, 0.1433, 0.1429, 0.1426, 0.1424, 0.1423",\
                 "0.1596, 0.1554, 0.1491, 0.1461, 0.1447, 0.144, 0.1436, 0.1434, 0.1432, 0.1431",\
                 "0.1605, 0.1564, 0.1501, 0.147, 0.1455, 0.1448, 0.1445, 0.1441, 0.144, 0.1439");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.01009, 0.042, 0.1029, 0.1979, 0.3311, 0.5063, 0.7271, 0.9967, 1.318");
          values("0.1583, 0.1562, 0.1534, 0.1524, 0.1528, 0.154, 0.1554, 0.1563, 0.1581, 0.1659",\
                 "0.1584, 0.1562, 0.1533, 0.1524, 0.1528, 0.1539, 0.1553, 0.1564, 0.1578, 0.1655",\
                 "0.1584, 0.1562, 0.1533, 0.1524, 0.1528, 0.154, 0.1552, 0.1563, 0.1581, 0.1659",\
                 "0.1585, 0.1563, 0.1534, 0.1527, 0.153, 0.1542, 0.1554, 0.1565, 0.1583, 0.1671",\
                 "0.1589, 0.1569, 0.154, 0.1531, 0.1535, 0.1546, 0.1558, 0.157, 0.1589, 0.17",\
                 "0.1595, 0.1573, 0.1545, 0.1536, 0.154, 0.1551, 0.1564, 0.1575, 0.1599, 0.1725",\
                 "0.16, 0.1579, 0.1549, 0.1542, 0.1546, 0.1557, 0.1569, 0.1582, 0.16, 0.1798",\
                 "0.1607, 0.1586, 0.1557, 0.1548, 0.1556, 0.1568, 0.1576, 0.1588, 0.1622, 0.1888",\
                 "0.1613, 0.1591, 0.1562, 0.1553, 0.1557, 0.1572, 0.1593, 0.1601, 0.1654, 0.2036",\
                 "0.1621, 0.16, 0.1571, 0.1562, 0.1566, 0.1576, 0.1591, 0.1624, 0.1716, 0.2329");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.01009, 0.042, 0.1029, 0.1979, 0.3311, 0.5063, 0.7271, 0.9967, 1.318");
          values("1.333, 1.378, 1.495, 1.659, 1.855, 2.094, 2.387, 2.748, 3.186, 3.706",\
                 "1.35, 1.396, 1.513, 1.676, 1.873, 2.111, 2.405, 2.766, 3.203, 3.723",\
                 "1.417, 1.462, 1.579, 1.742, 1.939, 2.177, 2.471, 2.832, 3.269, 3.79",\
                 "1.55, 1.596, 1.713, 1.876, 2.073, 2.311, 2.605, 2.966, 3.403, 3.924",\
                 "1.74, 1.786, 1.903, 2.066, 2.262, 2.501, 2.795, 3.156, 3.593, 4.113",\
                 "1.956, 2.002, 2.119, 2.282, 2.479, 2.717, 3.011, 3.372, 3.809, 4.329",\
                 "2.196, 2.242, 2.359, 2.523, 2.719, 2.958, 3.252, 3.612, 4.05, 4.57",\
                 "2.466, 2.512, 2.629, 2.792, 2.989, 3.227, 3.521, 3.882, 4.319, 4.84",\
                 "2.766, 2.812, 2.929, 3.093, 3.289, 3.528, 3.822, 4.182, 4.62, 5.14",\
                 "3.097, 3.143, 3.26, 3.424, 3.62, 3.859, 4.153, 4.513, 4.951, 5.472");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.01009, 0.042, 0.1029, 0.1979, 0.3311, 0.5063, 0.7271, 0.9967, 1.318");
          values("1.462, 1.512, 1.649, 1.875, 2.211, 2.68, 3.297, 4.073, 5.021, 6.152",\
                 "1.48, 1.529, 1.667, 1.892, 2.228, 2.697, 3.314, 4.09, 5.037, 6.168",\
                 "1.546, 1.595, 1.733, 1.958, 2.294, 2.763, 3.38, 4.156, 5.103, 6.235",\
                 "1.68, 1.729, 1.867, 2.093, 2.429, 2.898, 3.515, 4.291, 5.238, 6.369",\
                 "1.869, 1.919, 2.056, 2.282, 2.618, 3.087, 3.703, 4.48, 5.428, 6.558",\
                 "2.084, 2.134, 2.271, 2.497, 2.833, 3.301, 3.918, 4.694, 5.642, 6.773",\
                 "2.323, 2.372, 2.51, 2.735, 3.072, 3.541, 4.157, 4.934, 5.882, 7.012",\
                 "2.591, 2.64, 2.777, 3.003, 3.339, 3.808, 4.424, 5.201, 6.15, 7.28",\
                 "2.888, 2.938, 3.075, 3.301, 3.637, 4.106, 4.723, 5.498, 6.446, 7.576",\
                 "3.215, 3.264, 3.401, 3.627, 3.963, 4.432, 5.049, 5.825, 6.772, 7.901");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.01009, 0.042, 0.1029, 0.1979, 0.3311, 0.5063, 0.7271, 0.9967, 1.318");
          values("0.1806, 0.2228, 0.3374, 0.5062, 0.738, 1.071, 1.534, 2.138, 2.892, 3.793",\
                 "0.1804, 0.2224, 0.3372, 0.5066, 0.7382, 1.072, 1.534, 2.139, 2.891, 3.797",\
                 "0.1804, 0.2222, 0.3372, 0.5062, 0.7368, 1.071, 1.536, 2.139, 2.888, 3.797",\
                 "0.1804, 0.2224, 0.3372, 0.5064, 0.7378, 1.071, 1.534, 2.139, 2.893, 3.797",\
                 "0.1806, 0.2224, 0.3374, 0.5064, 0.738, 1.071, 1.536, 2.139, 2.891, 3.796",\
                 "0.1806, 0.2226, 0.3376, 0.5066, 0.7384, 1.072, 1.534, 2.138, 2.889, 3.798",\
                 "0.1808, 0.223, 0.3378, 0.5068, 0.737, 1.071, 1.535, 2.14, 2.891, 3.798",\
                 "0.1808, 0.2228, 0.338, 0.507, 0.737, 1.073, 1.533, 2.137, 2.888, 3.798",\
                 "0.1816, 0.2234, 0.3382, 0.5072, 0.7384, 1.072, 1.536, 2.137, 2.889, 3.792",\
                 "0.1818, 0.2242, 0.3384, 0.5078, 0.739, 1.072, 1.533, 2.138, 2.888, 3.792");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.01009, 0.042, 0.1029, 0.1979, 0.3311, 0.5063, 0.7271, 0.9967, 1.318");
          values("0.162, 0.221, 0.4028, 0.7588, 1.34, 2.179, 3.281, 4.666, 6.366, 8.406",\
                 "0.162, 0.2208, 0.4024, 0.7588, 1.34, 2.179, 3.282, 4.67, 6.368, 8.393",\
                 "0.1618, 0.2208, 0.4024, 0.759, 1.342, 2.179, 3.284, 4.67, 6.368, 8.393",\
                 "0.163, 0.2204, 0.4026, 0.7588, 1.342, 2.178, 3.284, 4.67, 6.368, 8.393",\
                 "0.163, 0.2204, 0.4024, 0.7588, 1.341, 2.179, 3.277, 4.667, 6.368, 8.412",\
                 "0.1614, 0.2196, 0.4026, 0.7588, 1.34, 2.179, 3.283, 4.668, 6.368, 8.393",\
                 "0.1616, 0.2208, 0.4018, 0.7576, 1.343, 2.179, 3.284, 4.667, 6.37, 8.408",\
                 "0.1616, 0.2196, 0.402, 0.7582, 1.341, 2.175, 3.284, 4.67, 6.363, 8.408",\
                 "0.1616, 0.221, 0.4022, 0.7582, 1.34, 2.178, 3.278, 4.67, 6.368, 8.411",\
                 "0.1614, 0.221, 0.4018, 0.7574, 1.341, 2.177, 3.277, 4.669, 6.368, 8.396");
        }
      }
    }
  }

