/*
 * 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__dffnq_2) {
    area : 72.441600 ;

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

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

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

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

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

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

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

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

    pin(CLKN) {
      capacitance : 0.003465 ;
      clock : true ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 4 ;
      min_period : 0.92 ;
      min_pulse_width_high : 0.412 ;
      min_pulse_width_low : 0.456 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!D" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.3093, 0.3089, 0.3119, 0.3277, 0.3612, 0.4138, 0.4868, 0.5811, \
                 0.6971, 0.8361");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.1984, 0.1983, 0.2003, 0.2134, 0.2413, 0.2865, 0.3502, 0.4332, \
                 0.5364, 0.6609");
        }
      }

      internal_power() {
        when : "D" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.3094, 0.309, 0.3119, 0.3276, 0.3612, 0.4137, 0.4867, 0.581, \
                 0.6972, 0.8362");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.1987, 0.1984, 0.2006, 0.2136, 0.2416, 0.2867, 0.3504, 0.4334, \
                 0.5369, 0.661");
        }
      }

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

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

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

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

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

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

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

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

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

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

    pin(D) {
      capacitance : 0.002412 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 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.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.05712, 0.05686, 0.06195, 0.07556, 0.09954, 0.1349, 0.1824, 0.2427, \
                 0.3168, 0.4054");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.004981, 0.004979, 0.007974, 0.01828, 0.0378, 0.06742, 0.1078, \
                 0.1596, 0.2234, 0.3");
        }
      }

      internal_power() {
        when : "CLKN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.2043, 0.2042, 0.2074, 0.2191, 0.2431, 0.2805, 0.3324, 0.3994, \
                 0.4817, 0.5803");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.131, 0.1311, 0.1337, 0.1434, 0.1624, 0.1924, 0.2343, 0.2891, \
                 0.3575, 0.4399");
        }
      }

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

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.063, 0.07, 0.092, 0.134, 0.201, 0.276, 0.356, 0.447, 0.549, 0.672",\
                 "0.055, 0.068, 0.088, 0.127, 0.197, 0.274, 0.352, 0.439, 0.545, 0.665",\
                 "0.021, 0.032, 0.052, 0.101, 0.165, 0.236, 0.32, 0.408, 0.507, 0.629",\
                 "-0.036, -0.031, -0.004, 0.034, 0.098, 0.176, 0.246, 0.336, 0.441, 0.56",\
                 "-0.116, -0.109, -0.088, -0.047, 0.014, 0.082, 0.154, 0.243, 0.345, 0.462",\
                 "-0.22, -0.211, -0.189, -0.153, -0.09, -0.026, 0.047, 0.128, 0.227, 0.341",\
                 "-0.339, -0.334, -0.31, -0.272, -0.217, -0.152, -0.086, -0.003, 0.088, 0.197",\
                 "-0.483, -0.468, -0.451, -0.409, -0.359, -0.301, -0.234, -0.16, -0.07, 0.029",\
                 "-0.635, -0.622, -0.604, -0.569, -0.528, -0.469, -0.411, -0.337, -0.252, -0.147",\
                 "-0.818, -0.806, -0.789, -0.754, -0.708, -0.656, -0.606, -0.539, -0.452, -0.359");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.149, 0.157, 0.189, 0.238, 0.319, 0.41, 0.519, 0.635, 0.767, 0.908",\
                 "0.143, 0.149, 0.183, 0.235, 0.31, 0.405, 0.517, 0.628, 0.764, 0.902",\
                 "0.134, 0.135, 0.166, 0.219, 0.3, 0.39, 0.503, 0.617, 0.749, 0.887",\
                 "0.119, 0.126, 0.155, 0.207, 0.285, 0.38, 0.482, 0.606, 0.739, 0.878",\
                 "0.12, 0.125, 0.152, 0.208, 0.28, 0.375, 0.484, 0.598, 0.73, 0.874",\
                 "0.134, 0.138, 0.166, 0.217, 0.301, 0.394, 0.498, 0.611, 0.743, 0.885",\
                 "0.168, 0.172, 0.204, 0.25, 0.329, 0.425, 0.528, 0.649, 0.775, 0.913",\
                 "0.22, 0.225, 0.256, 0.308, 0.38, 0.479, 0.578, 0.693, 0.821, 0.963",\
                 "0.305, 0.31, 0.339, 0.391, 0.462, 0.546, 0.65, 0.767, 0.897, 1.033",\
                 "0.412, 0.422, 0.451, 0.5, 0.561, 0.65, 0.742, 0.858, 0.985, 1.123");
        }
      }

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

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.269, 0.261, 0.238, 0.188, 0.12, 0.042, -0.047, -0.137, -0.246, -0.366",\
                 "0.276, 0.271, 0.246, 0.192, 0.125, 0.051, -0.037, -0.131, -0.239, -0.361",\
                 "0.309, 0.294, 0.27, 0.224, 0.152, 0.079, -0.007, -0.101, -0.209, -0.329",\
                 "0.364, 0.361, 0.336, 0.285, 0.214, 0.141, 0.05, -0.041, -0.153, -0.27",\
                 "0.462, 0.458, 0.434, 0.381, 0.308, 0.239, 0.147, 0.054, -0.051, -0.176",\
                 "0.587, 0.58, 0.557, 0.509, 0.437, 0.356, 0.266, 0.175, 0.066, -0.05",\
                 "0.743, 0.735, 0.705, 0.653, 0.581, 0.504, 0.417, 0.323, 0.213, 0.095",\
                 "0.922, 0.913, 0.888, 0.836, 0.758, 0.685, 0.592, 0.495, 0.386, 0.266",\
                 "1.132, 1.117, 1.096, 1.044, 0.968, 0.879, 0.786, 0.692, 0.586, 0.472",\
                 "1.36, 1.347, 1.326, 1.271, 1.188, 1.108, 1.015, 0.918, 0.802, 0.687");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.155, 0.155, 0.126, 0.079, 0.01, -0.08, -0.184, -0.295, -0.417, -0.552",\
                 "0.163, 0.156, 0.135, 0.078, 0.012, -0.074, -0.168, -0.291, -0.411, -0.553",\
                 "0.189, 0.174, 0.151, 0.099, 0.027, -0.055, -0.154, -0.273, -0.402, -0.53",\
                 "0.209, 0.205, 0.177, 0.121, 0.049, -0.04, -0.136, -0.251, -0.374, -0.512",\
                 "0.234, 0.232, 0.204, 0.149, 0.077, -0.019, -0.12, -0.236, -0.354, -0.491",\
                 "0.251, 0.243, 0.216, 0.161, 0.091, -0.005, -0.106, -0.226, -0.353, -0.489",\
                 "0.253, 0.247, 0.219, 0.166, 0.086, -0.006, -0.11, -0.224, -0.36, -0.497",\
                 "0.242, 0.232, 0.205, 0.152, 0.076, -0.02, -0.125, -0.248, -0.376, -0.516",\
                 "0.208, 0.208, 0.177, 0.119, 0.042, -0.055, -0.156, -0.276, -0.407, -0.554",\
                 "0.155, 0.149, 0.122, 0.065, -0.013, -0.105, -0.211, -0.335, -0.463, -0.61");
        }
      }
    }

    pin(Q) {
      direction : output ;
      function : "IQ1" ;
      max_capacitance : 0.4283 ;
      max_transition : 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.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.003949, 0.0143, 0.03407, 0.06487, 0.1081, 0.1649, 0.2366, 0.324, 0.4283");
          values("0.5413, 0.5318, 0.5121, 0.4976, 0.4892, 0.4841, 0.4804, 0.4778, 0.4761, 0.4748",\
                 "0.5414, 0.532, 0.5117, 0.4975, 0.4891, 0.4839, 0.4802, 0.4776, 0.4759, 0.4746",\
                 "0.5414, 0.5315, 0.512, 0.4976, 0.4893, 0.484, 0.4804, 0.4779, 0.4761, 0.4748",\
                 "0.5422, 0.5326, 0.5128, 0.4982, 0.49, 0.4848, 0.4811, 0.4786, 0.4768, 0.4756",\
                 "0.5458, 0.5362, 0.5163, 0.5019, 0.4934, 0.4883, 0.4847, 0.4822, 0.4804, 0.4791",\
                 "0.5519, 0.5422, 0.5224, 0.5079, 0.4999, 0.4944, 0.4908, 0.4882, 0.4865, 0.4852",\
                 "0.56, 0.5504, 0.5301, 0.516, 0.5073, 0.502, 0.4984, 0.4958, 0.4941, 0.4927",\
                 "0.5705, 0.5607, 0.5407, 0.5261, 0.5176, 0.5123, 0.5084, 0.5059, 0.5041, 0.5028",\
                 "0.5828, 0.573, 0.5532, 0.5385, 0.5299, 0.5243, 0.5206, 0.5181, 0.5162, 0.5148",\
                 "0.5976, 0.5878, 0.5672, 0.5524, 0.5433, 0.5382, 0.5343, 0.5316, 0.5298, 0.5282");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.003949, 0.0143, 0.03407, 0.06487, 0.1081, 0.1649, 0.2366, 0.324, 0.4283");
          values("0.6407, 0.6345, 0.6224, 0.6139, 0.6077, 0.6052, 0.605, 0.6056, 0.6064, 0.6075",\
                 "0.6408, 0.6342, 0.6221, 0.6129, 0.6074, 0.605, 0.6049, 0.605, 0.6063, 0.6074",\
                 "0.641, 0.6341, 0.622, 0.6135, 0.6079, 0.6051, 0.605, 0.6056, 0.6069, 0.608",\
                 "0.643, 0.6367, 0.6244, 0.6159, 0.6092, 0.6065, 0.6058, 0.6074, 0.6092, 0.6103",\
                 "0.6463, 0.64, 0.6267, 0.6184, 0.6128, 0.6102, 0.6092, 0.6103, 0.612, 0.6132",\
                 "0.6508, 0.6442, 0.6324, 0.624, 0.6179, 0.6151, 0.6157, 0.6158, 0.6165, 0.6187",\
                 "0.6585, 0.6522, 0.6394, 0.6313, 0.6251, 0.6226, 0.6227, 0.6228, 0.6256, 0.6277",\
                 "0.6658, 0.6593, 0.6467, 0.6382, 0.6332, 0.6311, 0.6304, 0.6311, 0.6323, 0.634",\
                 "0.6764, 0.6701, 0.658, 0.6491, 0.6422, 0.6416, 0.6412, 0.6418, 0.6421, 0.6437",\
                 "0.6871, 0.6792, 0.6682, 0.6588, 0.6518, 0.6502, 0.6507, 0.6539, 0.6541, 0.6543");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.003949, 0.0143, 0.03407, 0.06487, 0.1081, 0.1649, 0.2366, 0.324, 0.4283");
          values("0.5954, 0.6141, 0.6652, 0.7414, 0.8413, 0.9712, 1.139, 1.349, 1.606, 1.913",\
                 "0.6016, 0.6203, 0.6717, 0.7479, 0.8477, 0.9776, 1.145, 1.356, 1.613, 1.919",\
                 "0.6283, 0.6471, 0.6982, 0.7744, 0.8743, 1.004, 1.172, 1.382, 1.639, 1.946",\
                 "0.6841, 0.7028, 0.7541, 0.8303, 0.9302, 1.06, 1.228, 1.438, 1.695, 2.002",\
                 "0.7662, 0.785, 0.8362, 0.9124, 1.012, 1.142, 1.31, 1.52, 1.777, 2.084",\
                 "0.8653, 0.8843, 0.9354, 1.011, 1.111, 1.241, 1.409, 1.619, 1.876, 2.183",\
                 "0.9788, 0.9976, 1.049, 1.125, 1.225, 1.355, 1.522, 1.733, 1.99, 2.297",\
                 "1.105, 1.124, 1.175, 1.251, 1.351, 1.481, 1.649, 1.859, 2.116, 2.423",\
                 "1.243, 1.262, 1.314, 1.39, 1.49, 1.619, 1.787, 1.997, 2.254, 2.561",\
                 "1.394, 1.413, 1.465, 1.541, 1.641, 1.771, 1.938, 2.149, 2.406, 2.712");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.003949, 0.0143, 0.03407, 0.06487, 0.1081, 0.1649, 0.2366, 0.324, 0.4283");
          values("0.6753, 0.694, 0.75, 0.8513, 1.009, 1.232, 1.526, 1.897, 2.351, 2.892",\
                 "0.6817, 0.7001, 0.7564, 0.8574, 1.015, 1.238, 1.532, 1.903, 2.357, 2.898",\
                 "0.7086, 0.7269, 0.783, 0.8843, 1.042, 1.265, 1.559, 1.93, 2.384, 2.925",\
                 "0.7658, 0.7843, 0.8404, 0.9417, 1.099, 1.322, 1.616, 1.988, 2.441, 2.982",\
                 "0.8502, 0.8687, 0.9245, 1.026, 1.184, 1.407, 1.701, 2.072, 2.525, 3.066",\
                 "0.9533, 0.9718, 1.028, 1.129, 1.287, 1.51, 1.804, 2.175, 2.628, 3.169",\
                 "1.073, 1.092, 1.148, 1.249, 1.406, 1.629, 1.924, 2.295, 2.749, 3.289",\
                 "1.206, 1.225, 1.281, 1.382, 1.54, 1.762, 2.057, 2.428, 2.882, 3.423",\
                 "1.352, 1.371, 1.427, 1.528, 1.686, 1.909, 2.203, 2.574, 3.027, 3.568",\
                 "1.51, 1.528, 1.584, 1.685, 1.843, 2.066, 2.36, 2.731, 3.184, 3.724");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.003949, 0.0143, 0.03407, 0.06487, 0.1081, 0.1649, 0.2366, 0.324, 0.4283");
          values("0.07864, 0.09768, 0.151, 0.2375, 0.3698, 0.5671, 0.8379, 1.187, 1.614, 2.125",\
                 "0.07884, 0.09738, 0.151, 0.2374, 0.3691, 0.5671, 0.8383, 1.187, 1.616, 2.124",\
                 "0.07872, 0.09734, 0.1509, 0.2375, 0.3698, 0.5671, 0.8372, 1.187, 1.614, 2.124",\
                 "0.07894, 0.09752, 0.151, 0.2376, 0.3698, 0.5672, 0.8372, 1.187, 1.614, 2.124",\
                 "0.0788, 0.0974, 0.151, 0.2374, 0.3698, 0.567, 0.8374, 1.187, 1.614, 2.124",\
                 "0.0788, 0.0976, 0.1512, 0.2376, 0.3696, 0.5668, 0.838, 1.186, 1.614, 2.125",\
                 "0.0786, 0.0974, 0.1512, 0.2378, 0.3696, 0.5666, 0.8384, 1.187, 1.615, 2.123",\
                 "0.079, 0.0978, 0.1516, 0.2376, 0.37, 0.567, 0.838, 1.186, 1.615, 2.125",\
                 "0.0788, 0.0978, 0.1516, 0.2378, 0.37, 0.567, 0.8372, 1.186, 1.613, 2.123",\
                 "0.0794, 0.0984, 0.1518, 0.2382, 0.3696, 0.5674, 0.8374, 1.185, 1.613, 2.122");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.003949, 0.0143, 0.03407, 0.06487, 0.1081, 0.1649, 0.2366, 0.324, 0.4283");
          values("0.07458, 0.09824, 0.1841, 0.3589, 0.6386, 1.038, 1.562, 2.223, 3.025, 3.985",\
                 "0.07376, 0.09824, 0.1843, 0.3588, 0.6392, 1.038, 1.562, 2.223, 3.025, 3.986",\
                 "0.07446, 0.09854, 0.1843, 0.3588, 0.639, 1.037, 1.562, 2.223, 3.026, 3.984",\
                 "0.07394, 0.09842, 0.184, 0.3588, 0.6392, 1.038, 1.561, 2.222, 3.025, 3.986",\
                 "0.074, 0.0984, 0.1842, 0.359, 0.639, 1.038, 1.561, 2.223, 3.024, 3.986",\
                 "0.074, 0.0976, 0.1838, 0.359, 0.639, 1.038, 1.559, 2.221, 3.026, 3.984",\
                 "0.0736, 0.0974, 0.1842, 0.359, 0.6388, 1.038, 1.562, 2.223, 3.025, 3.986",\
                 "0.0736, 0.0978, 0.1842, 0.3584, 0.6388, 1.036, 1.56, 2.219, 3.025, 3.986",\
                 "0.0736, 0.0978, 0.184, 0.359, 0.6392, 1.037, 1.561, 2.221, 3.03, 3.986",\
                 "0.074, 0.0978, 0.1844, 0.3586, 0.6388, 1.037, 1.561, 2.22, 3.026, 3.991");
        }
      }
    }
  }

