/*
 * 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_2) {
    area : 68.051200 ;

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

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

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

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

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

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

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

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

    pin(CLK) {
      capacitance : 0.003181 ;
      clock : true ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 15.6 ;
      min_period : 3.626 ;
      min_pulse_width_high : 1.608 ;
      min_pulse_width_low : 1.813 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!D" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          values("0.102, 0.1017, 0.1017, 0.1044, 0.1109, 0.1212, 0.1361, 0.1556, \
                  0.1801, 0.2098");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          values("0.07955, 0.07928, 0.07917, 0.08127, 0.08632, 0.09518, 0.1081, \
                  0.1253, 0.1469, 0.1733");
        }
      }

      internal_power() {
        when : "D" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          values("0.1036, 0.1032, 0.1033, 0.106, 0.1124, 0.1228, 0.1375, 0.1571, \
                  0.1816, 0.2113");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          values("0.07947, 0.07925, 0.07913, 0.08126, 0.08635, 0.09522, 0.1082, \
                  0.1254, 0.1472, 0.1735");
        }
      }

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

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

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

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

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

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

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

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

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

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

    pin(D) {
      capacitance : 0.002342 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 15.6 ;
      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.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          values("0.05552, 0.05519, 0.05471, 0.0556, 0.05865, 0.06374, 0.07062, \
                  0.07957, 0.09074, 0.1043");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          values("0.03947, 0.0396, 0.03979, 0.04078, 0.04292, 0.04663, 0.05201, \
                  0.05917, 0.06824, 0.07935");
        }
      }

      internal_power() {
        when : "CLK" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          values("0.003418, 0.003416, 0.003417, 0.003415, 0.003415, 0.003415, 0.003406, \
                  0.003394, 0.003374, 0.003327");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          values("-0.001976, -0.001981, -0.001987, -0.001995, -0.00202, -0.002035, \
                  -0.00205, -0.002068, -0.002095, -0.00216");
        }
      }

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

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          values("0.12, 0.149, 0.249, 0.399, 0.515, 0.602, 0.658, 0.668, 0.628, 0.549",\
                 "0.106, 0.136, 0.228, 0.377, 0.493, 0.581, 0.634, 0.645, 0.607, 0.528",\
                 "0.025, 0.049, 0.143, 0.29, 0.405, 0.493, 0.551, 0.56, 0.526, 0.446",\
                 "-0.2, -0.172, -0.074, 0.07, 0.19, 0.284, 0.339, 0.35, 0.311, 0.235",\
                 "-0.528, -0.506, -0.412, -0.262, -0.139, -0.044, 0.016, 0.032, -0.008, -0.084",\
                 "-0.946, -0.92, -0.834, -0.677, -0.56, -0.465, -0.407, -0.385, -0.421, -0.502",\
                 "-1.453, -1.428, -1.343, -1.19, -1.075, -0.983, -0.919, -0.902, -0.94, -1.015",\
                 "-2.055, -2.028, -1.946, -1.801, -1.682, -1.587, -1.529, -1.517, -1.55, -1.632",\
                 "-2.759, -2.728, -2.654, -2.507, -2.399, -2.305, -2.241, -2.225, -2.266, -2.336",\
                 "-3.574, -3.546, -3.467, -3.328, -3.219, -3.133, -3.065, -3.044, -3.086, -3.162");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          values("0.063, 0.087, 0.175, 0.27, 0.343, 0.385, 0.386, 0.356, 0.295, 0.186",\
                 "0.044, 0.068, 0.153, 0.255, 0.326, 0.364, 0.372, 0.344, 0.285, 0.182",\
                 "-0.012, 0.015, 0.102, 0.206, 0.28, 0.328, 0.336, 0.318, 0.261, 0.158",\
                 "-0.037, -0.013, 0.075, 0.179, 0.253, 0.303, 0.313, 0.291, 0.234, 0.13",\
                 "-0.021, 0.008, 0.093, 0.197, 0.268, 0.316, 0.319, 0.295, 0.237, 0.135",\
                 "0.06, 0.086, 0.167, 0.263, 0.328, 0.371, 0.375, 0.35, 0.281, 0.177",\
                 "0.226, 0.249, 0.322, 0.415, 0.474, 0.504, 0.496, 0.466, 0.394, 0.279",\
                 "0.483, 0.51, 0.577, 0.662, 0.711, 0.731, 0.711, 0.671, 0.588, 0.469",\
                 "0.845, 0.871, 0.939, 1.012, 1.047, 1.058, 1.024, 0.974, 0.888, 0.76",\
                 "1.313, 1.345, 1.406, 1.468, 1.493, 1.488, 1.451, 1.387, 1.29, 1.161");
        }
      }

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

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          values("0.876, 0.849, 0.744, 0.572, 0.423, 0.317, 0.24, 0.212, 0.236, 0.317",\
                 "0.9, 0.868, 0.756, 0.587, 0.439, 0.334, 0.257, 0.23, 0.257, 0.333",\
                 "0.983, 0.961, 0.849, 0.674, 0.531, 0.426, 0.346, 0.319, 0.343, 0.418",\
                 "1.221, 1.196, 1.085, 0.917, 0.773, 0.663, 0.592, 0.561, 0.576, 0.656",\
                 "1.627, 1.605, 1.494, 1.324, 1.175, 1.072, 0.994, 0.968, 0.988, 1.055",\
                 "2.17, 2.14, 2.034, 1.858, 1.718, 1.607, 1.536, 1.503, 1.518, 1.586",\
                 "2.816, 2.784, 2.676, 2.507, 2.358, 2.249, 2.177, 2.14, 2.157, 2.226",\
                 "3.577, 3.551, 3.44, 3.274, 3.123, 3.02, 2.941, 2.904, 2.918, 2.987",\
                 "4.473, 4.443, 4.333, 4.166, 4.012, 3.907, 3.828, 3.793, 3.81, 3.876",\
                 "5.5, 5.467, 5.357, 5.177, 5.028, 4.925, 4.852, 4.814, 4.828, 4.895");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          values("0.853, 0.826, 0.707, 0.536, 0.392, 0.307, 0.255, 0.249, 0.299, 0.401",\
                 "0.877, 0.858, 0.731, 0.556, 0.419, 0.324, 0.279, 0.272, 0.314, 0.417",\
                 "0.953, 0.935, 0.813, 0.637, 0.495, 0.404, 0.346, 0.346, 0.38, 0.475",\
                 "1.065, 1.037, 0.926, 0.752, 0.611, 0.51, 0.46, 0.443, 0.475, 0.566",\
                 "1.127, 1.103, 0.99, 0.82, 0.675, 0.574, 0.519, 0.507, 0.54, 0.623",\
                 "1.125, 1.097, 0.983, 0.811, 0.668, 0.571, 0.51, 0.506, 0.534, 0.624",\
                 "1.049, 1.024, 0.908, 0.734, 0.597, 0.494, 0.439, 0.432, 0.464, 0.548",\
                 "0.893, 0.866, 0.752, 0.581, 0.439, 0.335, 0.283, 0.276, 0.313, 0.405",\
                 "0.635, 0.614, 0.504, 0.327, 0.194, 0.085, 0.034, 0.031, 0.063, 0.164",\
                 "0.279, 0.257, 0.148, -0.03, -0.169, -0.264, -0.317, -0.32, -0.278, -0.175");
        }
      }
    }

    pin(Q) {
      direction : output ;
      function : "IQ1" ;
      max_capacitance : 0.7099 ;
      max_transition : 15.6 ;
      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.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.005893, 0.02307, 0.05587, 0.107, 0.1787, 0.273, 0.3919, 0.537, 0.7099");
          values("0.1221, 0.1198, 0.1178, 0.1172, 0.1172, 0.1171, 0.117, 0.117, 0.117, 0.117",\
                 "0.1222, 0.1198, 0.1179, 0.1173, 0.1172, 0.1172, 0.1171, 0.1171, 0.1171, 0.1171",\
                 "0.1222, 0.1198, 0.1178, 0.1173, 0.1172, 0.1171, 0.1171, 0.117, 0.117, 0.117",\
                 "0.1224, 0.1201, 0.118, 0.1176, 0.1174, 0.1174, 0.1173, 0.1173, 0.1173, 0.1173",\
                 "0.1228, 0.1205, 0.1185, 0.118, 0.1178, 0.1178, 0.1178, 0.1177, 0.1177, 0.1177",\
                 "0.1231, 0.1208, 0.1189, 0.1183, 0.1182, 0.1181, 0.1181, 0.118, 0.118, 0.118",\
                 "0.1235, 0.1213, 0.1193, 0.1187, 0.1186, 0.1185, 0.1184, 0.1184, 0.1184, 0.1184",\
                 "0.124, 0.1217, 0.1197, 0.1192, 0.1191, 0.119, 0.1189, 0.1189, 0.1189, 0.1188",\
                 "0.1246, 0.1223, 0.1203, 0.1197, 0.1196, 0.1196, 0.1195, 0.1195, 0.1195, 0.1193",\
                 "0.1251, 0.1228, 0.1208, 0.1202, 0.1201, 0.1201, 0.12, 0.12, 0.1199, 0.1194");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.005893, 0.02307, 0.05587, 0.107, 0.1787, 0.273, 0.3919, 0.537, 0.7099");
          values("0.1185, 0.1163, 0.1136, 0.1126, 0.113, 0.1139, 0.115, 0.1222, 0.1881, 0.4663",\
                 "0.1183, 0.1162, 0.1135, 0.1125, 0.1129, 0.1138, 0.115, 0.1223, 0.1897, 0.4719",\
                 "0.1183, 0.1163, 0.1135, 0.1124, 0.1129, 0.1139, 0.1149, 0.1234, 0.196, 0.4937",\
                 "0.1184, 0.1163, 0.1137, 0.1125, 0.1132, 0.1138, 0.1152, 0.1247, 0.208, 0.5315",\
                 "0.1186, 0.1166, 0.1138, 0.1128, 0.1134, 0.1141, 0.1159, 0.1284, 0.228, 0.5937",\
                 "0.119, 0.1169, 0.1141, 0.1133, 0.1136, 0.1151, 0.1166, 0.1342, 0.2607, 0.68",\
                 "0.1194, 0.1173, 0.1144, 0.1135, 0.1144, 0.1152, 0.1169, 0.1446, 0.3134, 0.8053",\
                 "0.1201, 0.118, 0.1151, 0.114, 0.1141, 0.116, 0.1204, 0.1661, 0.4023, 0.9801",\
                 "0.1209, 0.1188, 0.116, 0.1147, 0.1148, 0.1154, 0.1252, 0.2101, 0.5507, 1.208",\
                 "0.1218, 0.1197, 0.1169, 0.1157, 0.1158, 0.1162, 0.1391, 0.3056, 0.7807, 1.466");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.005893, 0.02307, 0.05587, 0.107, 0.1787, 0.273, 0.3919, 0.537, 0.7099");
          values("1.827, 1.903, 2.093, 2.36, 2.715, 3.186, 3.797, 4.566, 5.505, 6.623",\
                 "1.854, 1.931, 2.121, 2.388, 2.743, 3.213, 3.825, 4.593, 5.532, 6.651",\
                 "1.955, 2.032, 2.222, 2.488, 2.843, 3.314, 3.925, 4.694, 5.633, 6.751",\
                 "2.121, 2.198, 2.388, 2.654, 3.01, 3.48, 4.092, 4.861, 5.799, 6.917",\
                 "2.269, 2.346, 2.536, 2.802, 3.157, 3.628, 4.24, 5.008, 5.947, 7.065",\
                 "2.385, 2.461, 2.651, 2.918, 3.273, 3.744, 4.355, 5.124, 6.062, 7.182",\
                 "2.467, 2.543, 2.733, 3, 3.355, 3.825, 4.437, 5.206, 6.144, 7.262",\
                 "2.51, 2.587, 2.777, 3.044, 3.399, 3.87, 4.481, 5.25, 6.188, 7.305",\
                 "2.51, 2.587, 2.776, 3.043, 3.398, 3.869, 4.48, 5.249, 6.187, 7.305",\
                 "2.46, 2.536, 2.726, 2.993, 3.348, 3.819, 4.43, 5.199, 6.138, 7.254");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.005893, 0.02307, 0.05587, 0.107, 0.1787, 0.273, 0.3919, 0.537, 0.7099");
          values("2.126, 2.219, 2.468, 2.881, 3.514, 4.401, 5.567, 7.036, 8.831, 10.97",\
                 "2.154, 2.247, 2.496, 2.909, 3.541, 4.428, 5.595, 7.063, 8.858, 11",\
                 "2.254, 2.346, 2.595, 3.008, 3.641, 4.528, 5.694, 7.164, 8.958, 11.1",\
                 "2.418, 2.511, 2.76, 3.173, 3.806, 4.692, 5.859, 7.328, 9.123, 11.26",\
                 "2.568, 2.661, 2.91, 3.323, 3.955, 4.842, 6.009, 7.478, 9.272, 11.41",\
                 "2.688, 2.78, 3.03, 3.443, 4.075, 4.962, 6.129, 7.598, 9.394, 11.53",\
                 "2.777, 2.87, 3.119, 3.532, 4.164, 5.051, 6.218, 7.687, 9.481, 11.62",\
                 "2.833, 2.926, 3.175, 3.588, 4.22, 5.107, 6.272, 7.742, 9.535, 11.68",\
                 "2.849, 2.941, 3.19, 3.603, 4.235, 5.122, 6.288, 7.757, 9.55, 11.69",\
                 "2.818, 2.91, 3.159, 3.572, 4.205, 5.091, 6.258, 7.728, 9.52, 11.66");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.005893, 0.02307, 0.05587, 0.107, 0.1787, 0.273, 0.3919, 0.537, 0.7099");
          values("0.202, 0.2734, 0.4678, 0.79, 1.304, 2.063, 3.092, 4.396, 6, 7.905",\
                 "0.202, 0.2734, 0.4684, 0.79, 1.306, 2.063, 3.092, 4.398, 5.999, 7.906",\
                 "0.202, 0.2734, 0.4678, 0.7898, 1.306, 2.061, 3.092, 4.398, 5.999, 7.906",\
                 "0.202, 0.2734, 0.468, 0.7898, 1.304, 2.062, 3.091, 4.399, 5.999, 7.908",\
                 "0.202, 0.2736, 0.468, 0.7898, 1.304, 2.062, 3.092, 4.399, 5.999, 7.908",\
                 "0.202, 0.2734, 0.4682, 0.7896, 1.303, 2.064, 3.091, 4.399, 5.999, 7.904",\
                 "0.2018, 0.274, 0.4684, 0.7898, 1.305, 2.062, 3.089, 4.395, 5.988, 7.905",\
                 "0.202, 0.2738, 0.4684, 0.7916, 1.303, 2.063, 3.093, 4.391, 5.986, 7.886",\
                 "0.2018, 0.2734, 0.4684, 0.7894, 1.304, 2.066, 3.09, 4.394, 5.986, 7.888",\
                 "0.202, 0.274, 0.468, 0.79, 1.304, 2.062, 3.088, 4.392, 5.994, 7.894");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.005893, 0.02307, 0.05587, 0.107, 0.1787, 0.273, 0.3919, 0.537, 0.7099");
          values("0.2312, 0.3384, 0.6698, 1.345, 2.449, 4.014, 6.075, 8.66, 11.82, 15.61",\
                 "0.2316, 0.338, 0.669, 1.345, 2.447, 4.015, 6.075, 8.657, 11.83, 15.61",\
                 "0.2318, 0.3394, 0.669, 1.345, 2.448, 4.017, 6.076, 8.661, 11.83, 15.63",\
                 "0.2312, 0.3384, 0.6702, 1.342, 2.447, 4.017, 6.074, 8.661, 11.82, 15.6",\
                 "0.2312, 0.3382, 0.6696, 1.343, 2.449, 4.015, 6.065, 8.663, 11.83, 15.62",\
                 "0.2316, 0.3388, 0.6688, 1.345, 2.448, 4.013, 6.068, 8.661, 11.83, 15.61",\
                 "0.231, 0.3382, 0.6696, 1.343, 2.448, 4.012, 6.075, 8.66, 11.83, 15.61",\
                 "0.2314, 0.3388, 0.6698, 1.345, 2.448, 4.011, 6.066, 8.664, 11.83, 15.61",\
                 "0.2308, 0.3392, 0.67, 1.344, 2.448, 4.01, 6.066, 8.658, 11.83, 15.6",\
                 "0.232, 0.338, 0.672, 1.344, 2.45, 4.016, 6.07, 8.656, 11.82, 15.59");
        }
      }
    }
  }

