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

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

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!CLK&!D" ;
      value : "6.97356e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!CLK&D" ;
      value : "8.612802e-05" ;
    }

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

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

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

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

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

    pin(CLK) {
      capacitance : 0.004484 ;
      clock : true ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 6 ;
      min_period : 1.549 ;
      min_pulse_width_high : 0.764 ;
      min_pulse_width_low : 0.723 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!D" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("0.05675, 0.05646, 0.05593, 0.05568, 0.05608, 0.05711, 0.05878, \
                  0.06107, 0.06413, 0.06798");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("0.03729, 0.03717, 0.03679, 0.0365, 0.03659, 0.03735, 0.03879, \
                  0.04088, 0.04367, 0.04728");
        }
      }

      internal_power() {
        when : "D" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("0.05841, 0.05813, 0.05756, 0.05734, 0.05772, 0.05875, 0.06041, \
                  0.06271, 0.0658, 0.06961");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("0.03742, 0.03729, 0.03688, 0.03657, 0.03668, 0.03745, 0.03889, \
                  0.04098, 0.0438, 0.04743");
        }
      }

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

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

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

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

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

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

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

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

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

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

    pin(D) {
      capacitance : 0.003444 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 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.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("0.03195, 0.03172, 0.03119, 0.03096, 0.03123, 0.03197, 0.03308, \
                  0.03468, 0.03671, 0.03929");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("0.02209, 0.0221, 0.02188, 0.02167, 0.02171, 0.02221, 0.02312, \
                  0.02451, 0.02634, 0.02865");
        }
      }

      internal_power() {
        when : "CLK" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("0.003771, 0.003769, 0.003778, 0.00378, 0.003778, 0.003776, 0.003774, \
                  0.003776, 0.003773, 0.003769");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("-0.003185, -0.00319, -0.003204, -0.003245, -0.00326, -0.003278, \
                  -0.003297, -0.003298, -0.003311, -0.00332");
        }
      }

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

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("0.166, 0.176, 0.226, 0.292, 0.36, 0.41, 0.447, 0.463, 0.464, 0.451",\
                 "0.155, 0.167, 0.213, 0.283, 0.347, 0.4, 0.434, 0.457, 0.455, 0.438",\
                 "0.124, 0.136, 0.178, 0.248, 0.317, 0.369, 0.398, 0.415, 0.42, 0.403",\
                 "0.068, 0.08, 0.127, 0.196, 0.26, 0.308, 0.34, 0.357, 0.356, 0.344",\
                 "0.006, 0.019, 0.06, 0.129, 0.196, 0.237, 0.272, 0.287, 0.286, 0.27",\
                 "-0.071, -0.054, -0.024, 0.048, 0.112, 0.155, 0.192, 0.201, 0.202, 0.185",\
                 "-0.167, -0.15, -0.112, -0.046, 0.014, 0.057, 0.097, 0.108, 0.115, 0.087",\
                 "-0.268, -0.253, -0.22, -0.157, -0.092, -0.051, -0.019, -0.008, 0.002, -0.017",\
                 "-0.39, -0.375, -0.344, -0.282, -0.225, -0.179, -0.14, -0.126, -0.12, -0.141",\
                 "-0.526, -0.505, -0.479, -0.415, -0.363, -0.322, -0.284, -0.275, -0.258, -0.281");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("-0.011, 0.001, 0.041, 0.076, 0.101, 0.114, 0.112, 0.091, 0.057, 0.002",\
                 "-0.021, -0.008, 0.033, 0.071, 0.091, 0.106, 0.106, 0.082, 0.05, -0.007",\
                 "-0.06, -0.044, -0.007, 0.042, 0.063, 0.08, 0.079, 0.06, 0.027, -0.03",\
                 "-0.098, -0.079, -0.043, -0, 0.027, 0.042, 0.046, 0.033, -0.003, -0.06",\
                 "-0.124, -0.109, -0.07, -0.027, -0, 0.015, 0.018, -0.003, -0.036, -0.083",\
                 "-0.131, -0.115, -0.08, -0.037, -0.015, -0, -0, -0.021, -0.05, -0.107",\
                 "-0.131, -0.119, -0.079, -0.039, -0.018, -0.001, -0.006, -0.023, -0.061, -0.114",\
                 "-0.116, -0.099, -0.069, -0.024, -0.007, 0.009, 0.002, -0.016, -0.045, -0.107",\
                 "-0.085, -0.073, -0.039, 0.009, 0.023, 0.036, 0.027, 0.007, -0.033, -0.084",\
                 "-0.032, -0.016, 0.021, 0.059, 0.066, 0.079, 0.068, 0.051, 0.008, -0.044");
        }
      }

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

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("0.275, 0.265, 0.217, 0.14, 0.056, -0.012, -0.058, -0.083, -0.102, -0.091",\
                 "0.287, 0.269, 0.226, 0.149, 0.066, -0.002, -0.044, -0.073, -0.09, -0.075",\
                 "0.327, 0.313, 0.26, 0.181, 0.105, 0.041, -0.007, -0.034, -0.05, -0.039",\
                 "0.415, 0.405, 0.356, 0.277, 0.199, 0.128, 0.083, 0.052, 0.04, 0.051",\
                 "0.557, 0.545, 0.499, 0.424, 0.344, 0.276, 0.227, 0.198, 0.184, 0.201",\
                 "0.731, 0.72, 0.677, 0.595, 0.515, 0.449, 0.403, 0.373, 0.354, 0.371",\
                 "0.916, 0.904, 0.856, 0.778, 0.698, 0.634, 0.585, 0.555, 0.545, 0.551",\
                 "1.121, 1.115, 1.064, 0.986, 0.903, 0.84, 0.792, 0.76, 0.75, 0.753",\
                 "1.347, 1.339, 1.29, 1.212, 1.13, 1.069, 1.024, 0.993, 0.975, 0.99",\
                 "1.601, 1.587, 1.54, 1.466, 1.389, 1.325, 1.273, 1.246, 1.227, 1.236");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("0.321, 0.311, 0.263, 0.19, 0.129, 0.098, 0.089, 0.095, 0.119, 0.182",\
                 "0.326, 0.32, 0.276, 0.202, 0.141, 0.11, 0.098, 0.106, 0.133, 0.184",\
                 "0.364, 0.363, 0.305, 0.243, 0.177, 0.144, 0.136, 0.135, 0.167, 0.218",\
                 "0.436, 0.42, 0.373, 0.3, 0.246, 0.207, 0.198, 0.195, 0.226, 0.273",\
                 "0.506, 0.493, 0.447, 0.377, 0.314, 0.276, 0.26, 0.261, 0.285, 0.335",\
                 "0.554, 0.547, 0.499, 0.425, 0.363, 0.325, 0.316, 0.308, 0.332, 0.38",\
                 "0.587, 0.57, 0.523, 0.455, 0.395, 0.356, 0.338, 0.341, 0.361, 0.4",\
                 "0.598, 0.586, 0.54, 0.471, 0.408, 0.374, 0.35, 0.348, 0.379, 0.416",\
                 "0.6, 0.586, 0.544, 0.468, 0.413, 0.373, 0.357, 0.355, 0.367, 0.42",\
                 "0.584, 0.578, 0.524, 0.454, 0.396, 0.358, 0.338, 0.331, 0.359, 0.402");
        }
      }
    }

    pin(Q) {
      direction : output ;
      function : "IQ1" ;
      max_capacitance : 1.265 ;
      max_transition : 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.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.009726, 0.04036, 0.09885, 0.19, 0.3178, 0.4861, 0.698, 0.9568, 1.265");
          values("0.1243, 0.1245, 0.1255, 0.127, 0.1282, 0.1289, 0.1293, 0.1296, 0.1298, 0.1299",\
                 "0.1242, 0.1243, 0.1254, 0.1269, 0.1281, 0.1288, 0.1292, 0.1296, 0.1297, 0.1298",\
                 "0.1242, 0.1243, 0.1254, 0.127, 0.1281, 0.1288, 0.1292, 0.1295, 0.1297, 0.1298",\
                 "0.1243, 0.1244, 0.1255, 0.127, 0.1281, 0.1289, 0.1293, 0.1296, 0.1298, 0.1299",\
                 "0.1245, 0.1246, 0.1257, 0.1272, 0.1283, 0.1291, 0.1295, 0.1297, 0.13, 0.1301",\
                 "0.1247, 0.1248, 0.1259, 0.1274, 0.1286, 0.1293, 0.1297, 0.13, 0.1302, 0.1303",\
                 "0.1247, 0.1249, 0.126, 0.1275, 0.1288, 0.1294, 0.1298, 0.1301, 0.1303, 0.1304",\
                 "0.125, 0.1251, 0.1263, 0.1278, 0.1289, 0.1296, 0.1301, 0.1304, 0.1305, 0.1307",\
                 "0.1252, 0.1254, 0.1264, 0.128, 0.1291, 0.1298, 0.1303, 0.1305, 0.1307, 0.1309",\
                 "0.1254, 0.1256, 0.1266, 0.1281, 0.1293, 0.13, 0.1304, 0.1306, 0.1309, 0.131");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.009726, 0.04036, 0.09885, 0.19, 0.3178, 0.4861, 0.698, 0.9568, 1.265");
          values("0.1171, 0.1171, 0.1176, 0.1194, 0.1213, 0.123, 0.1246, 0.1254, 0.1268, 0.1284",\
                 "0.1171, 0.117, 0.1178, 0.1194, 0.1213, 0.1231, 0.1249, 0.126, 0.1269, 0.1278",\
                 "0.117, 0.1171, 0.1177, 0.1195, 0.121, 0.123, 0.1244, 0.1254, 0.1267, 0.1276",\
                 "0.1169, 0.117, 0.1176, 0.119, 0.1208, 0.1228, 0.1245, 0.1257, 0.127, 0.1294",\
                 "0.1167, 0.1169, 0.1173, 0.1189, 0.121, 0.1228, 0.1246, 0.1252, 0.1265, 0.1279",\
                 "0.1166, 0.1167, 0.1173, 0.1189, 0.1206, 0.1226, 0.1242, 0.1254, 0.1269, 0.1291",\
                 "0.1165, 0.1165, 0.1169, 0.1187, 0.1207, 0.1224, 0.1239, 0.1252, 0.1263, 0.1276",\
                 "0.1164, 0.1165, 0.117, 0.1186, 0.1203, 0.123, 0.1242, 0.1248, 0.1262, 0.1279",\
                 "0.1165, 0.1166, 0.1169, 0.1188, 0.1202, 0.1219, 0.1248, 0.1266, 0.1267, 0.1293",\
                 "0.1164, 0.1165, 0.117, 0.1185, 0.1205, 0.1214, 0.1235, 0.1263, 0.128, 0.1283");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.009726, 0.04036, 0.09885, 0.19, 0.3178, 0.4861, 0.698, 0.9568, 1.265");
          values("0.9716, 0.9991, 1.064, 1.155, 1.275, 1.435, 1.644, 1.905, 2.224, 2.605",\
                 "0.9841, 1.011, 1.077, 1.167, 1.288, 1.448, 1.656, 1.918, 2.237, 2.617",\
                 "1.029, 1.056, 1.121, 1.212, 1.332, 1.492, 1.7, 1.962, 2.281, 2.662",\
                 "1.107, 1.135, 1.2, 1.29, 1.411, 1.571, 1.779, 2.041, 2.36, 2.74",\
                 "1.187, 1.215, 1.28, 1.37, 1.49, 1.651, 1.859, 2.12, 2.439, 2.82",\
                 "1.252, 1.28, 1.345, 1.435, 1.556, 1.716, 1.924, 2.186, 2.505, 2.885",\
                 "1.302, 1.33, 1.395, 1.485, 1.606, 1.766, 1.974, 2.236, 2.555, 2.935",\
                 "1.335, 1.362, 1.427, 1.518, 1.638, 1.799, 2.007, 2.268, 2.587, 2.968",\
                 "1.351, 1.378, 1.444, 1.534, 1.654, 1.814, 2.023, 2.284, 2.603, 2.983",\
                 "1.348, 1.375, 1.44, 1.53, 1.651, 1.811, 2.019, 2.281, 2.6, 2.98");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.009726, 0.04036, 0.09885, 0.19, 0.3178, 0.4861, 0.698, 0.9568, 1.265");
          values("1.012, 1.046, 1.14, 1.303, 1.554, 1.906, 2.367, 2.947, 3.655, 4.499",\
                 "1.025, 1.059, 1.152, 1.315, 1.567, 1.918, 2.379, 2.959, 3.668, 4.511",\
                 "1.069, 1.103, 1.196, 1.359, 1.611, 1.962, 2.423, 3.004, 3.712, 4.555",\
                 "1.145, 1.179, 1.272, 1.435, 1.687, 2.038, 2.499, 3.08, 3.788, 4.631",\
                 "1.222, 1.255, 1.349, 1.512, 1.763, 2.115, 2.576, 3.156, 3.864, 4.708",\
                 "1.284, 1.319, 1.412, 1.575, 1.826, 2.178, 2.639, 3.219, 3.927, 4.771",\
                 "1.331, 1.365, 1.459, 1.622, 1.873, 2.225, 2.686, 3.266, 3.974, 4.818",\
                 "1.362, 1.396, 1.489, 1.652, 1.904, 2.255, 2.716, 3.297, 4.005, 4.848",\
                 "1.377, 1.411, 1.504, 1.667, 1.919, 2.27, 2.731, 3.312, 4.019, 4.863",\
                 "1.374, 1.408, 1.501, 1.664, 1.916, 2.268, 2.728, 3.309, 4.017, 4.86");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.009726, 0.04036, 0.09885, 0.19, 0.3178, 0.4861, 0.698, 0.9568, 1.265");
          values("0.08666, 0.1077, 0.1666, 0.2734, 0.4472, 0.7032, 1.051, 1.492, 2.032, 2.674",\
                 "0.0864, 0.1078, 0.1666, 0.2732, 0.4466, 0.7032, 1.05, 1.493, 2.031, 2.677",\
                 "0.0866, 0.1078, 0.167, 0.2734, 0.4466, 0.704, 1.051, 1.492, 2.03, 2.677",\
                 "0.0866, 0.1078, 0.167, 0.2734, 0.4466, 0.7034, 1.052, 1.493, 2.03, 2.677",\
                 "0.0866, 0.1078, 0.1666, 0.2738, 0.4472, 0.704, 1.051, 1.492, 2.03, 2.677",\
                 "0.0866, 0.108, 0.1668, 0.2734, 0.447, 0.7048, 1.052, 1.493, 2.032, 2.677",\
                 "0.0866, 0.1076, 0.1668, 0.2732, 0.4474, 0.703, 1.05, 1.491, 2.033, 2.677",\
                 "0.0864, 0.108, 0.1666, 0.2732, 0.4468, 0.7032, 1.051, 1.49, 2.029, 2.672",\
                 "0.0864, 0.108, 0.1666, 0.2734, 0.447, 0.7032, 1.05, 1.49, 2.028, 2.671",\
                 "0.0866, 0.1076, 0.1666, 0.2732, 0.4472, 0.704, 1.051, 1.491, 2.031, 2.674");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.009726, 0.04036, 0.09885, 0.19, 0.3178, 0.4861, 0.698, 0.9568, 1.265");
          values("0.0988, 0.1326, 0.2578, 0.5254, 0.955, 1.555, 2.346, 3.347, 4.564, 6.021",\
                 "0.0992, 0.1332, 0.2574, 0.5256, 0.9538, 1.556, 2.348, 3.343, 4.565, 6.016",\
                 "0.0992, 0.1332, 0.2576, 0.5252, 0.9538, 1.556, 2.345, 3.347, 4.564, 6.021",\
                 "0.099, 0.1334, 0.2574, 0.5254, 0.9536, 1.556, 2.348, 3.343, 4.565, 6.017",\
                 "0.0992, 0.1334, 0.2574, 0.5256, 0.955, 1.555, 2.349, 3.347, 4.565, 6.021",\
                 "0.099, 0.133, 0.2576, 0.5252, 0.9542, 1.556, 2.348, 3.343, 4.566, 6.017",\
                 "0.099, 0.1334, 0.2578, 0.5254, 0.9528, 1.554, 2.349, 3.348, 4.569, 6.025",\
                 "0.0992, 0.1334, 0.2576, 0.5252, 0.953, 1.553, 2.344, 3.347, 4.563, 6.02",\
                 "0.099, 0.1332, 0.2574, 0.5252, 0.9534, 1.555, 2.347, 3.342, 4.567, 6.02",\
                 "0.0988, 0.133, 0.2576, 0.5248, 0.955, 1.554, 2.345, 3.343, 4.559, 6.021");
        }
      }
    }
  }

