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

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

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

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

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

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

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

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

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

    pin(CLKN) {
      capacitance : 0.00498 ;
      clock : true ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 3.6 ;
      min_period : 0.714 ;
      min_pulse_width_high : 0.321 ;
      min_pulse_width_low : 0.345 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!D" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("0.5018, 0.5021, 0.5162, 0.5685, 0.6699, 0.8237, 1.032, 1.297, \
                  1.621, 2.007");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("0.3237, 0.3234, 0.3342, 0.3785, 0.4648, 0.5993, 0.7843, 1.022, \
                  1.314, 1.663");
        }
      }

      internal_power() {
        when : "D" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("0.5026, 0.5028, 0.5169, 0.569, 0.6705, 0.8241, 1.033, 1.297, 1.621, \
                  2.007");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("0.3232, 0.3233, 0.3336, 0.378, 0.4641, 0.5989, 0.7835, 1.021, \
                  1.313, 1.663");
        }
      }

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

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

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

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

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

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

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

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

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

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

    pin(D) {
      capacitance : 0.003879 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 3.6 ;
      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.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("0.1121, 0.1134, 0.1297, 0.1715, 0.2425, 0.3452, 0.4821, 0.6558, \
                  0.8686, 1.123");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("0.007846, 0.008286, 0.01953, 0.05336, 0.115, 0.2062, 0.3292, 0.4859, \
                  0.6784, 0.9087");
        }
      }

      internal_power() {
        when : "CLKN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("0.3968, 0.3981, 0.4107, 0.4501, 0.5265, 0.6432, 0.802, 1.004, \
                  1.251, 1.546");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("0.2775, 0.2779, 0.2876, 0.3199, 0.3828, 0.4814, 0.6176, 0.7934, \
                  1.011, 1.271");
        }
      }

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

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("0.063, 0.069, 0.089, 0.122, 0.163, 0.22, 0.279, 0.343, 0.428, 0.527",\
                 "0.055, 0.06, 0.077, 0.115, 0.159, 0.212, 0.274, 0.341, 0.423, 0.52",\
                 "0.028, 0.031, 0.049, 0.089, 0.136, 0.186, 0.242, 0.31, 0.394, 0.49",\
                 "-0.018, -0.012, 0.009, 0.041, 0.08, 0.134, 0.193, 0.258, 0.346, 0.434",\
                 "-0.069, -0.062, -0.046, -0.011, 0.026, 0.075, 0.125, 0.188, 0.27, 0.356",\
                 "-0.13, -0.126, -0.106, -0.078, -0.042, 0.01, 0.048, 0.109, 0.183, 0.263",\
                 "-0.2, -0.194, -0.174, -0.146, -0.12, -0.078, -0.036, 0.015, 0.08, 0.16",\
                 "-0.279, -0.27, -0.26, -0.228, -0.208, -0.168, -0.126, -0.09, -0.029, 0.047",\
                 "-0.364, -0.359, -0.343, -0.323, -0.304, -0.265, -0.239, -0.199, -0.141, -0.079",\
                 "-0.463, -0.456, -0.443, -0.424, -0.413, -0.381, -0.357, -0.322, -0.269, -0.219");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("0.092, 0.093, 0.12, 0.166, 0.234, 0.305, 0.397, 0.488, 0.597, 0.709",\
                 "0.086, 0.093, 0.118, 0.16, 0.232, 0.304, 0.393, 0.486, 0.594, 0.712",\
                 "0.075, 0.08, 0.109, 0.147, 0.216, 0.291, 0.376, 0.473, 0.585, 0.696",\
                 "0.064, 0.067, 0.093, 0.137, 0.206, 0.279, 0.367, 0.462, 0.569, 0.687",\
                 "0.057, 0.06, 0.087, 0.13, 0.2, 0.278, 0.358, 0.458, 0.57, 0.677",\
                 "0.062, 0.064, 0.091, 0.137, 0.211, 0.286, 0.368, 0.466, 0.577, 0.684",\
                 "0.091, 0.094, 0.119, 0.156, 0.228, 0.296, 0.386, 0.478, 0.588, 0.702",\
                 "0.132, 0.135, 0.16, 0.197, 0.267, 0.331, 0.413, 0.509, 0.614, 0.727",\
                 "0.207, 0.203, 0.235, 0.263, 0.328, 0.376, 0.46, 0.549, 0.657, 0.771",\
                 "0.302, 0.296, 0.334, 0.347, 0.405, 0.449, 0.524, 0.612, 0.719, 0.822");
        }
      }

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

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("0.212, 0.21, 0.185, 0.141, 0.097, 0.034, -0.034, -0.108, -0.195, -0.29",\
                 "0.223, 0.213, 0.196, 0.147, 0.101, 0.041, -0.026, -0.103, -0.188, -0.282",\
                 "0.245, 0.242, 0.218, 0.178, 0.123, 0.06, 0.002, -0.08, -0.16, -0.256",\
                 "0.297, 0.291, 0.271, 0.226, 0.172, 0.11, 0.046, -0.03, -0.107, -0.2",\
                 "0.368, 0.362, 0.341, 0.295, 0.245, 0.186, 0.119, 0.043, -0.038, -0.128",\
                 "0.468, 0.459, 0.439, 0.39, 0.343, 0.276, 0.212, 0.137, 0.056, -0.033",\
                 "0.578, 0.569, 0.552, 0.504, 0.452, 0.386, 0.322, 0.25, 0.167, 0.08",\
                 "0.701, 0.697, 0.68, 0.63, 0.577, 0.511, 0.443, 0.369, 0.297, 0.207",\
                 "0.844, 0.843, 0.819, 0.77, 0.719, 0.65, 0.578, 0.509, 0.429, 0.349",\
                 "1, 1.005, 0.977, 0.922, 0.869, 0.796, 0.727, 0.658, 0.586, 0.498");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("0.155, 0.154, 0.13, 0.091, 0.042, -0.006, -0.05, -0.103, -0.146, -0.217",\
                 "0.161, 0.159, 0.138, 0.096, 0.044, 0.001, -0.042, -0.108, -0.146, -0.208",\
                 "0.175, 0.176, 0.158, 0.113, 0.061, 0.011, -0.04, -0.097, -0.146, -0.2",\
                 "0.204, 0.2, 0.174, 0.137, 0.078, 0.033, -0.018, -0.09, -0.13, -0.19",\
                 "0.234, 0.224, 0.207, 0.159, 0.103, 0.04, -0.011, -0.069, -0.129, -0.195",\
                 "0.254, 0.252, 0.229, 0.182, 0.123, 0.059, -0.006, -0.086, -0.155, -0.218",\
                 "0.271, 0.266, 0.242, 0.193, 0.135, 0.072, 0, -0.083, -0.157, -0.246",\
                 "0.279, 0.276, 0.249, 0.199, 0.142, 0.072, -0.002, -0.08, -0.176, -0.26",\
                 "0.272, 0.273, 0.241, 0.199, 0.137, 0.063, -0.018, -0.11, -0.188, -0.292",\
                 "0.263, 0.254, 0.227, 0.18, 0.112, 0.039, -0.037, -0.125, -0.218, -0.324");
        }
      }
    }

    pin(Q) {
      direction : output ;
      function : "IQ1" ;
      max_capacitance : 0.7224 ;
      max_transition : 3.6 ;
      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.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.00598, 0.02346, 0.05684, 0.1088, 0.1818, 0.2778, 0.3988, 0.5464, 0.7224");
          values("1.109, 1.084, 1.031, 0.9896, 0.9655, 0.9501, 0.9397, 0.9327, 0.9277, 0.9242",\
                 "1.109, 1.084, 1.031, 0.9897, 0.9658, 0.9503, 0.9398, 0.9327, 0.9277, 0.9241",\
                 "1.109, 1.083, 1.031, 0.9893, 0.9656, 0.95, 0.9398, 0.9327, 0.9276, 0.924",\
                 "1.113, 1.088, 1.035, 0.9933, 0.9695, 0.954, 0.9435, 0.9364, 0.9316, 0.928",\
                 "1.126, 1.102, 1.048, 1.006, 0.9823, 0.9672, 0.9569, 0.9499, 0.9448, 0.9412",\
                 "1.149, 1.124, 1.071, 1.029, 1.005, 0.9888, 0.9785, 0.9713, 0.9663, 0.9626",\
                 "1.18, 1.155, 1.101, 1.059, 1.034, 1.018, 1.008, 1.001, 0.9956, 0.992",\
                 "1.217, 1.191, 1.137, 1.094, 1.07, 1.054, 1.043, 1.036, 1.03, 1.027",\
                 "1.259, 1.234, 1.18, 1.136, 1.11, 1.094, 1.083, 1.076, 1.07, 1.066",\
                 "1.308, 1.283, 1.227, 1.182, 1.157, 1.14, 1.129, 1.121, 1.116, 1.112");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.00598, 0.02346, 0.05684, 0.1088, 0.1818, 0.2778, 0.3988, 0.5464, 0.7224");
          values("1.216, 1.191, 1.149, 1.121, 1.102, 1.091, 1.087, 1.087, 1.086, 1.088",\
                 "1.216, 1.192, 1.15, 1.121, 1.102, 1.092, 1.087, 1.087, 1.087, 1.088",\
                 "1.218, 1.194, 1.151, 1.123, 1.104, 1.093, 1.089, 1.088, 1.088, 1.09",\
                 "1.223, 1.2, 1.157, 1.128, 1.109, 1.098, 1.094, 1.093, 1.093, 1.095",\
                 "1.234, 1.211, 1.169, 1.14, 1.12, 1.11, 1.106, 1.105, 1.104, 1.107",\
                 "1.25, 1.226, 1.185, 1.155, 1.136, 1.125, 1.121, 1.12, 1.12, 1.121",\
                 "1.271, 1.248, 1.205, 1.176, 1.157, 1.145, 1.141, 1.14, 1.14, 1.142",\
                 "1.294, 1.27, 1.227, 1.197, 1.179, 1.171, 1.165, 1.162, 1.162, 1.163",\
                 "1.319, 1.294, 1.252, 1.221, 1.202, 1.192, 1.191, 1.191, 1.191, 1.191",\
                 "1.344, 1.32, 1.278, 1.248, 1.224, 1.214, 1.211, 1.215, 1.219, 1.219");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.00598, 0.02346, 0.05684, 0.1088, 0.1818, 0.2778, 0.3988, 0.5464, 0.7224");
          values("0.4654, 0.4836, 0.5319, 0.6041, 0.7023, 0.8336, 1.005, 1.222, 1.487, 1.803",\
                 "0.4708, 0.489, 0.5372, 0.6094, 0.7076, 0.839, 1.011, 1.227, 1.492, 1.808",\
                 "0.4944, 0.5125, 0.5607, 0.633, 0.7311, 0.8625, 1.034, 1.251, 1.515, 1.831",\
                 "0.5433, 0.5614, 0.6097, 0.6819, 0.7801, 0.9114, 1.083, 1.3, 1.564, 1.88",\
                 "0.6132, 0.6313, 0.6796, 0.7518, 0.8499, 0.9813, 1.153, 1.37, 1.634, 1.95",\
                 "0.6971, 0.7153, 0.7635, 0.8358, 0.934, 1.065, 1.237, 1.453, 1.718, 2.034",\
                 "0.7924, 0.8106, 0.8588, 0.9311, 1.029, 1.161, 1.332, 1.549, 1.813, 2.129",\
                 "0.8976, 0.9157, 0.964, 1.036, 1.134, 1.266, 1.437, 1.654, 1.918, 2.234",\
                 "1.013, 1.031, 1.08, 1.152, 1.25, 1.381, 1.553, 1.769, 2.034, 2.349",\
                 "1.139, 1.157, 1.206, 1.278, 1.376, 1.507, 1.679, 1.895, 2.16, 2.475");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.00598, 0.02346, 0.05684, 0.1088, 0.1818, 0.2778, 0.3988, 0.5464, 0.7224");
          values("0.5096, 0.5278, 0.5784, 0.6668, 0.8038, 0.998, 1.255, 1.579, 1.976, 2.448",\
                 "0.5151, 0.5335, 0.584, 0.6722, 0.8092, 1.003, 1.26, 1.584, 1.981, 2.454",\
                 "0.5392, 0.5575, 0.6079, 0.6963, 0.8333, 1.028, 1.284, 1.609, 2.005, 2.477",\
                 "0.5889, 0.6072, 0.6577, 0.746, 0.883, 1.077, 1.334, 1.658, 2.055, 2.528",\
                 "0.6591, 0.6775, 0.728, 0.8162, 0.9532, 1.147, 1.404, 1.728, 2.125, 2.598",\
                 "0.7431, 0.7614, 0.812, 0.9002, 1.037, 1.232, 1.488, 1.813, 2.209, 2.681",\
                 "0.8385, 0.8569, 0.9073, 0.9954, 1.132, 1.326, 1.583, 1.908, 2.304, 2.777",\
                 "0.9426, 0.9609, 1.011, 1.1, 1.236, 1.43, 1.687, 2.011, 2.408, 2.882",\
                 "1.056, 1.074, 1.124, 1.213, 1.35, 1.544, 1.8, 2.124, 2.52, 2.993",\
                 "1.178, 1.197, 1.247, 1.335, 1.472, 1.666, 1.923, 2.247, 2.643, 3.115");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.00598, 0.02346, 0.05684, 0.1088, 0.1818, 0.2778, 0.3988, 0.5464, 0.7224");
          values("0.06318, 0.0833, 0.138, 0.2269, 0.3706, 0.5832, 0.8725, 1.242, 1.695, 2.234",\
                 "0.0631, 0.08322, 0.1378, 0.2272, 0.3704, 0.5827, 0.8727, 1.243, 1.693, 2.235",\
                 "0.0631, 0.08324, 0.1377, 0.2271, 0.37, 0.5822, 0.8734, 1.243, 1.693, 2.235",\
                 "0.0632, 0.08344, 0.1381, 0.2269, 0.3705, 0.5826, 0.8728, 1.242, 1.693, 2.235",\
                 "0.06328, 0.08366, 0.1378, 0.227, 0.3698, 0.5828, 0.873, 1.243, 1.695, 2.234",\
                 "0.0632, 0.0832, 0.1382, 0.2274, 0.3702, 0.583, 0.8726, 1.242, 1.694, 2.235",\
                 "0.0634, 0.0834, 0.1382, 0.2272, 0.37, 0.5826, 0.8728, 1.242, 1.695, 2.231",\
                 "0.0636, 0.0838, 0.1384, 0.2274, 0.3702, 0.5824, 0.8718, 1.241, 1.693, 2.233",\
                 "0.064, 0.084, 0.1386, 0.2278, 0.37, 0.5822, 0.8726, 1.241, 1.691, 2.231",\
                 "0.0644, 0.0848, 0.1388, 0.2278, 0.37, 0.5824, 0.8734, 1.241, 1.691, 2.229");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.00598, 0.02346, 0.05684, 0.1088, 0.1818, 0.2778, 0.3988, 0.5464, 0.7224");
          values("0.06422, 0.08632, 0.1611, 0.3158, 0.5684, 0.9271, 1.402, 2.001, 2.725, 3.591",\
                 "0.06396, 0.08666, 0.1612, 0.316, 0.5684, 0.9272, 1.402, 2.001, 2.726, 3.592",\
                 "0.06366, 0.08684, 0.1611, 0.3158, 0.5683, 0.9272, 1.402, 2.001, 2.725, 3.591",\
                 "0.0636, 0.08658, 0.1612, 0.316, 0.5682, 0.9274, 1.401, 2.001, 2.724, 3.594",\
                 "0.06426, 0.0866, 0.1614, 0.316, 0.5682, 0.9276, 1.403, 2, 2.725, 3.594",\
                 "0.0636, 0.0858, 0.1614, 0.3158, 0.5678, 0.9274, 1.401, 2, 2.725, 3.594",\
                 "0.0636, 0.0862, 0.1608, 0.3158, 0.5684, 0.9276, 1.402, 2.001, 2.725, 3.594",\
                 "0.064, 0.0862, 0.1614, 0.3162, 0.5682, 0.928, 1.401, 2, 2.725, 3.592",\
                 "0.0636, 0.0862, 0.1612, 0.3168, 0.5682, 0.929, 1.401, 1.997, 2.73, 3.593",\
                 "0.0634, 0.0862, 0.161, 0.3166, 0.5694, 0.9274, 1.401, 1.997, 2.725, 3.594");
        }
      }
    }
  }

