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

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

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

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

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

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

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

    pin(CLK) {
      capacitance : 0.00478 ;
      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 ;
      min_pulse_width_high : 0.784 ;
      min_pulse_width_low : 0.994 ;
      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.06122, 0.06094, 0.06062, 0.06147, 0.06422, 0.0688, 0.07546, \
                  0.08438, 0.09573, 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.03959, 0.03944, 0.03925, 0.0399, 0.04195, 0.04578, 0.05161, \
                  0.05952, 0.06966, 0.08206");
        }
      }

      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.06325, 0.06297, 0.06266, 0.0635, 0.06624, 0.0708, 0.07747, 0.08631, \
                  0.09769, 0.1116");
        }

        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.03957, 0.03942, 0.03922, 0.03988, 0.04195, 0.04581, 0.05162, \
                  0.05959, 0.06972, 0.08217");
        }
      }

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

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

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

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

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

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

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

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

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

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

    pin(D) {
      capacitance : 0.003755 ;
      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 : "!CLK" ;

        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.03636, 0.03615, 0.03576, 0.03612, 0.03774, 0.04053, 0.04453, \
                  0.04985, 0.05657, 0.06475");
        }

        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.02337, 0.02341, 0.02338, 0.02377, 0.02496, 0.02719, 0.0306, \
                  0.0352, 0.04106, 0.04821");
        }
      }

      internal_power() {
        when : "CLK" ;

        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.003797, 0.003803, 0.003804, 0.003803, 0.003811, 0.003805, 0.003801, \
                  0.003796, 0.003785, 0.003771");
        }

        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.003473, -0.003475, -0.00347, -0.00348, -0.003491, -0.003511, \
                  -0.003527, -0.003536, -0.00355, -0.003564");
        }
      }

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

        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.206, 0.219, 0.271, 0.356, 0.434, 0.475, 0.501, 0.508, 0.486, 0.429",\
                 "0.196, 0.205, 0.262, 0.347, 0.417, 0.461, 0.49, 0.494, 0.471, 0.419",\
                 "0.153, 0.164, 0.217, 0.3, 0.375, 0.421, 0.446, 0.45, 0.427, 0.377",\
                 "0.091, 0.099, 0.149, 0.233, 0.3, 0.344, 0.377, 0.374, 0.356, 0.298",\
                 "0.005, 0.015, 0.068, 0.145, 0.224, 0.261, 0.284, 0.295, 0.266, 0.214",\
                 "-0.086, -0.075, -0.034, 0.05, 0.134, 0.164, 0.186, 0.203, 0.173, 0.12",\
                 "-0.188, -0.18, -0.137, -0.064, 0.024, 0.058, 0.079, 0.092, 0.072, 0.018",\
                 "-0.306, -0.307, -0.274, -0.191, -0.114, -0.071, -0.054, -0.028, -0.049, -0.092",\
                 "-0.439, -0.448, -0.42, -0.339, -0.257, -0.224, -0.199, -0.168, -0.183, -0.23",\
                 "-0.597, -0.614, -0.587, -0.516, -0.417, -0.398, -0.374, -0.328, -0.342, -0.38");
        }

        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, 0.015, 0.054, 0.106, 0.127, 0.126, 0.105, 0.064, -0.005, -0.1",\
                 "-0.015, -0, 0.04, 0.091, 0.114, 0.115, 0.096, 0.056, -0.008, -0.103",\
                 "-0.054, -0.04, 0.007, 0.055, 0.085, 0.084, 0.074, 0.03, -0.034, -0.132",\
                 "-0.088, -0.072, -0.033, 0.023, 0.047, 0.051, 0.035, -0.005, -0.071, -0.161",\
                 "-0.112, -0.098, -0.051, -0.005, 0.02, 0.021, 0.005, -0.039, -0.104, -0.199",\
                 "-0.12, -0.109, -0.065, -0.015, 0.005, 0.005, -0.012, -0.06, -0.13, -0.228",\
                 "-0.114, -0.096, -0.057, -0.006, 0.006, 0.005, -0.024, -0.07, -0.141, -0.247",\
                 "-0.07, -0.05, -0.013, 0.031, 0.039, 0.027, 0.003, -0.056, -0.135, -0.241",\
                 "0.012, 0.023, 0.066, 0.105, 0.104, 0.083, 0.049, -0.01, -0.099, -0.212",\
                 "0.126, 0.139, 0.179, 0.211, 0.206, 0.177, 0.142, 0.069, -0.025, -0.14");
        }
      }

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

        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.401, 0.387, 0.328, 0.234, 0.151, 0.094, 0.051, 0.04, 0.059, 0.105",\
                 "0.41, 0.402, 0.34, 0.241, 0.159, 0.099, 0.063, 0.049, 0.07, 0.114",\
                 "0.457, 0.443, 0.387, 0.286, 0.205, 0.147, 0.112, 0.097, 0.114, 0.158",\
                 "0.571, 0.556, 0.5, 0.406, 0.326, 0.264, 0.229, 0.214, 0.225, 0.271",\
                 "0.755, 0.742, 0.682, 0.585, 0.508, 0.451, 0.41, 0.394, 0.41, 0.457",\
                 "0.977, 0.963, 0.908, 0.809, 0.733, 0.671, 0.631, 0.62, 0.631, 0.677",\
                 "1.236, 1.228, 1.164, 1.071, 0.995, 0.93, 0.892, 0.881, 0.886, 0.93",\
                 "1.536, 1.522, 1.465, 1.373, 1.293, 1.232, 1.19, 1.175, 1.178, 1.223",\
                 "1.879, 1.861, 1.802, 1.706, 1.626, 1.566, 1.522, 1.508, 1.513, 1.55",\
                 "2.256, 2.238, 2.18, 2.087, 2.002, 1.94, 1.901, 1.88, 1.891, 1.93");
        }

        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.561, 0.537, 0.482, 0.404, 0.341, 0.314, 0.324, 0.357, 0.425, 0.518",\
                 "0.573, 0.552, 0.498, 0.412, 0.364, 0.33, 0.332, 0.37, 0.439, 0.529",\
                 "0.622, 0.601, 0.542, 0.457, 0.409, 0.372, 0.377, 0.413, 0.478, 0.567",\
                 "0.696, 0.679, 0.619, 0.533, 0.476, 0.45, 0.454, 0.482, 0.541, 0.638",\
                 "0.762, 0.75, 0.69, 0.605, 0.547, 0.528, 0.516, 0.553, 0.613, 0.701",\
                 "0.808, 0.79, 0.733, 0.652, 0.596, 0.56, 0.565, 0.604, 0.662, 0.753",\
                 "0.832, 0.809, 0.757, 0.68, 0.62, 0.588, 0.584, 0.623, 0.69, 0.777",\
                 "0.837, 0.821, 0.76, 0.681, 0.627, 0.598, 0.598, 0.632, 0.696, 0.787",\
                 "0.82, 0.801, 0.743, 0.664, 0.608, 0.577, 0.581, 0.617, 0.684, 0.776",\
                 "0.775, 0.757, 0.697, 0.621, 0.558, 0.531, 0.541, 0.578, 0.65, 0.74");
        }
      }
    }

    pin(Q) {
      direction : output ;
      function : "IQ1" ;
      max_capacitance : 0.6602 ;
      max_transition : 8.4 ;
      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.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.001, 0.00555, 0.02152, 0.05202, 0.09953, 0.1662, 0.2539, 0.3644, 0.4994, 0.6602");
          values("0.08454, 0.08375, 0.08297, 0.08283, 0.08288, 0.08296, 0.083, 0.08302, 0.08304, 0.08305",\
                 "0.08454, 0.08374, 0.08295, 0.08284, 0.08289, 0.08294, 0.083, 0.08301, 0.08302, 0.08304",\
                 "0.08454, 0.08375, 0.08298, 0.08285, 0.0829, 0.08294, 0.08299, 0.08301, 0.08302, 0.08304",\
                 "0.08472, 0.08391, 0.08312, 0.083, 0.08305, 0.08312, 0.08317, 0.08319, 0.0832, 0.08321",\
                 "0.08503, 0.0842, 0.08344, 0.08329, 0.08335, 0.08342, 0.08345, 0.08348, 0.08349, 0.08351",\
                 "0.08528, 0.0845, 0.08375, 0.08363, 0.08366, 0.08373, 0.08376, 0.08377, 0.08378, 0.08379",\
                 "0.08562, 0.08481, 0.08404, 0.08391, 0.08397, 0.08403, 0.08406, 0.08407, 0.08409, 0.0841",\
                 "0.08607, 0.08525, 0.08449, 0.08432, 0.08438, 0.08446, 0.08451, 0.08454, 0.08455, 0.08455",\
                 "0.08648, 0.08565, 0.08491, 0.08474, 0.08477, 0.08485, 0.08488, 0.08492, 0.08494, 0.08496",\
                 "0.08695, 0.08617, 0.0854, 0.08525, 0.08529, 0.08538, 0.08542, 0.08547, 0.08545, 0.08547");
        }

        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.00555, 0.02152, 0.05202, 0.09953, 0.1662, 0.2539, 0.3644, 0.4994, 0.6602");
          values("0.07807, 0.07757, 0.07702, 0.0772, 0.0778, 0.07869, 0.07934, 0.07998, 0.08062, 0.0841",\
                 "0.07803, 0.07752, 0.07701, 0.0772, 0.07778, 0.0787, 0.07942, 0.07992, 0.08078, 0.08431",\
                 "0.07798, 0.07751, 0.07696, 0.07714, 0.07776, 0.07864, 0.0795, 0.07992, 0.08058, 0.08418",\
                 "0.07791, 0.07747, 0.07691, 0.07711, 0.07771, 0.07859, 0.07931, 0.07985, 0.08071, 0.0845",\
                 "0.07797, 0.07753, 0.07696, 0.07714, 0.07774, 0.07862, 0.07926, 0.08012, 0.08062, 0.08538",\
                 "0.07802, 0.07753, 0.07709, 0.0774, 0.07784, 0.07874, 0.07944, 0.08014, 0.08092, 0.08631",\
                 "0.07831, 0.07779, 0.07726, 0.07737, 0.0784, 0.07903, 0.07961, 0.08023, 0.08125, 0.08799",\
                 "0.07871, 0.07818, 0.07757, 0.07762, 0.07823, 0.07942, 0.08033, 0.08087, 0.08159, 0.09091",\
                 "0.07926, 0.07874, 0.07819, 0.07828, 0.07874, 0.0795, 0.08083, 0.08191, 0.08334, 0.09512",\
                 "0.07985, 0.07932, 0.07881, 0.07886, 0.07945, 0.0799, 0.08066, 0.08202, 0.08534, 0.103");
        }
      }

      timing() {
        related_pin : "CLK" ;
        timing_type : rising_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.00555, 0.02152, 0.05202, 0.09953, 0.1662, 0.2539, 0.3644, 0.4994, 0.6602");
          values("1.198, 1.235, 1.33, 1.464, 1.636, 1.86, 2.146, 2.504, 2.94, 3.46",\
                 "1.213, 1.25, 1.345, 1.479, 1.652, 1.875, 2.161, 2.519, 2.955, 3.476",\
                 "1.269, 1.305, 1.4, 1.534, 1.707, 1.93, 2.216, 2.574, 3.01, 3.53",\
                 "1.361, 1.398, 1.493, 1.626, 1.799, 2.022, 2.308, 2.666, 3.103, 3.623",\
                 "1.445, 1.482, 1.577, 1.71, 1.883, 2.107, 2.393, 2.75, 3.187, 3.708",\
                 "1.508, 1.545, 1.64, 1.774, 1.947, 2.17, 2.456, 2.814, 3.251, 3.771",\
                 "1.552, 1.589, 1.684, 1.817, 1.99, 2.213, 2.499, 2.857, 3.294, 3.814",\
                 "1.573, 1.609, 1.704, 1.838, 2.011, 2.234, 2.52, 2.878, 3.314, 3.834",\
                 "1.567, 1.604, 1.699, 1.832, 2.005, 2.228, 2.514, 2.872, 3.309, 3.829",\
                 "1.532, 1.569, 1.664, 1.797, 1.97, 2.194, 2.48, 2.838, 3.274, 3.794");
        }

        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.00555, 0.02152, 0.05202, 0.09953, 0.1662, 0.2539, 0.3644, 0.4994, 0.6602");
          values("1.134, 1.178, 1.304, 1.521, 1.857, 2.327, 2.944, 3.72, 4.668, 5.799",\
                 "1.149, 1.193, 1.319, 1.537, 1.873, 2.342, 2.959, 3.736, 4.684, 5.814",\
                 "1.203, 1.247, 1.373, 1.591, 1.926, 2.396, 3.013, 3.789, 4.737, 5.868",\
                 "1.291, 1.335, 1.46, 1.678, 2.014, 2.484, 3.1, 3.877, 4.825, 5.956",\
                 "1.371, 1.415, 1.54, 1.758, 2.094, 2.564, 3.18, 3.957, 4.906, 6.034",\
                 "1.431, 1.475, 1.6, 1.818, 2.155, 2.624, 3.241, 4.017, 4.964, 6.096",\
                 "1.473, 1.516, 1.642, 1.86, 2.196, 2.665, 3.282, 4.059, 5.007, 6.138",\
                 "1.493, 1.537, 1.663, 1.881, 2.217, 2.686, 3.304, 4.079, 5.027, 6.159",\
                 "1.49, 1.534, 1.66, 1.878, 2.213, 2.683, 3.3, 4.076, 5.023, 6.152",\
                 "1.459, 1.503, 1.629, 1.847, 2.183, 2.652, 3.269, 4.045, 4.993, 6.122");
        }

        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.00555, 0.02152, 0.05202, 0.09953, 0.1662, 0.2539, 0.3644, 0.4994, 0.6602");
          values("0.1298, 0.1638, 0.2606, 0.415, 0.656, 1.009, 1.49, 2.11, 2.87, 3.774",\
                 "0.1296, 0.1636, 0.261, 0.4156, 0.656, 1.008, 1.492, 2.111, 2.868, 3.78",\
                 "0.1298, 0.1642, 0.2612, 0.4154, 0.6562, 1.009, 1.49, 2.111, 2.868, 3.779",\
                 "0.1296, 0.1636, 0.2602, 0.4156, 0.656, 1.008, 1.492, 2.108, 2.872, 3.779",\
                 "0.13, 0.1636, 0.2602, 0.4158, 0.6562, 1.008, 1.49, 2.111, 2.868, 3.78",\
                 "0.1298, 0.1638, 0.2598, 0.4156, 0.6554, 1.009, 1.492, 2.11, 2.871, 3.78",\
                 "0.1302, 0.1636, 0.2602, 0.4154, 0.6556, 1.01, 1.49, 2.108, 2.868, 3.776",\
                 "0.13, 0.1636, 0.26, 0.4154, 0.6554, 1.008, 1.49, 2.109, 2.866, 3.773",\
                 "0.1298, 0.1636, 0.2602, 0.4152, 0.6556, 1.008, 1.49, 2.108, 2.867, 3.773",\
                 "0.1296, 0.1638, 0.26, 0.416, 0.656, 1.008, 1.491, 2.111, 2.871, 3.772");
        }

        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.00555, 0.02152, 0.05202, 0.09953, 0.1662, 0.2539, 0.3644, 0.4994, 0.6602");
          values("0.141, 0.1946, 0.3726, 0.741, 1.336, 2.177, 3.277, 4.668, 6.364, 8.393",\
                 "0.1412, 0.1946, 0.3726, 0.7414, 1.336, 2.174, 3.282, 4.667, 6.363, 8.417",\
                 "0.1412, 0.1946, 0.3728, 0.741, 1.336, 2.174, 3.282, 4.668, 6.365, 8.393",\
                 "0.1418, 0.1946, 0.3724, 0.7414, 1.335, 2.175, 3.282, 4.668, 6.364, 8.393",\
                 "0.1416, 0.1946, 0.3726, 0.7408, 1.336, 2.177, 3.276, 4.668, 6.369, 8.39",\
                 "0.1412, 0.1944, 0.3734, 0.7418, 1.336, 2.177, 3.282, 4.667, 6.366, 8.393",\
                 "0.1408, 0.1938, 0.3728, 0.7414, 1.336, 2.175, 3.282, 4.667, 6.363, 8.416",\
                 "0.1408, 0.1942, 0.3724, 0.7414, 1.338, 2.177, 3.276, 4.676, 6.367, 8.413",\
                 "0.141, 0.1942, 0.3726, 0.7414, 1.336, 2.177, 3.279, 4.667, 6.37, 8.385",\
                 "0.1418, 0.1946, 0.373, 0.7414, 1.338, 2.176, 3.277, 4.669, 6.363, 8.387");
        }
      }
    }
  }

