/*
 * 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__sdffq_4) {
    area : 96.588800 ;

    ff(IQ1,IQN1) {
      clocked_on : "CLK" ;
      next_state : "((D&(!SE))|(SE&SI))" ;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "CLK&D&SE&SI" ;
      value : "0.00012452616" ;
    }

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

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

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

    pin(CLK) {
      capacitance : 0.003219 ;
      clock : true ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 6.8 ;
      min_period : 2.463 ;
      min_pulse_width_high : 0.76 ;
      min_pulse_width_low : 1.229 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!D&!SE&!SI" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.04434, 0.04416, 0.04384, 0.04374, 0.04418, 0.04511, 0.04657, \
                  0.04863, 0.05133, 0.05472");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.03158, 0.03146, 0.03122, 0.03109, 0.03129, 0.03203, 0.03331, \
                  0.03514, 0.03764, 0.04074");
        }
      }

      internal_power() {
        when : "!D&!SE&SI" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.04435, 0.04417, 0.04384, 0.04374, 0.04419, 0.04513, 0.04659, \
                  0.04864, 0.05133, 0.05473");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.03156, 0.03147, 0.03121, 0.0311, 0.03129, 0.03203, 0.03331, \
                  0.03514, 0.03765, 0.04074");
        }
      }

      internal_power() {
        when : "!D&SE&!SI" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.04435, 0.04418, 0.04386, 0.04376, 0.0442, 0.04514, 0.04661, \
                  0.04866, 0.05133, 0.05474");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.03154, 0.03146, 0.03119, 0.03108, 0.03129, 0.03202, 0.03329, \
                  0.03513, 0.03762, 0.04073");
        }
      }

      internal_power() {
        when : "!D&SE&SI" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.04373, 0.04355, 0.04324, 0.04313, 0.04356, 0.0445, 0.04597, \
                  0.04803, 0.05073, 0.05413");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.03182, 0.03173, 0.03147, 0.03135, 0.03157, 0.03225, 0.03355, \
                  0.03542, 0.03791, 0.04101");
        }
      }

      internal_power() {
        when : "D&!SE&!SI" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.04088, 0.04069, 0.04037, 0.04028, 0.0407, 0.04165, 0.04312, \
                  0.0452, 0.04785, 0.0513");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.03181, 0.03171, 0.03146, 0.03134, 0.03156, 0.03228, 0.03358, \
                  0.03543, 0.03791, 0.04102");
        }
      }

      internal_power() {
        when : "D&!SE&SI" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.04374, 0.04357, 0.04324, 0.04314, 0.04359, 0.04452, 0.04598, \
                  0.04804, 0.05073, 0.05413");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.03181, 0.03172, 0.03146, 0.03132, 0.03154, 0.03228, 0.03355, \
                  0.03544, 0.03791, 0.04101");
        }
      }

      internal_power() {
        when : "D&SE&!SI" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.04436, 0.04418, 0.04386, 0.04375, 0.04421, 0.04514, 0.0466, \
                  0.04864, 0.05135, 0.05472");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.03155, 0.03146, 0.0312, 0.03107, 0.03129, 0.03201, 0.03329, \
                  0.03512, 0.03763, 0.04076");
        }
      }

      internal_power() {
        when : "D&SE&SI" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.04373, 0.04355, 0.04323, 0.04313, 0.04357, 0.0445, 0.04595, \
                  0.04803, 0.05071, 0.05413");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.03183, 0.03173, 0.03147, 0.03135, 0.03157, 0.03228, 0.03358, \
                  0.03544, 0.03791, 0.04102");
        }
      }

      timing() {
        related_pin : "CLK" ;
        sdf_cond : "ENABLE_NOT_D_AND_NOT_SE_AND_NOT_SI === 1'b1" ;
        timing_type : min_pulse_width ;
        when : "!D&!SE&!SI" ;

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

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

      timing() {
        related_pin : "CLK" ;
        sdf_cond : "ENABLE_NOT_D_AND_NOT_SE_AND_SI === 1'b1" ;
        timing_type : min_pulse_width ;
        when : "!D&!SE&SI" ;

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

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

      timing() {
        related_pin : "CLK" ;
        sdf_cond : "ENABLE_NOT_D_AND_SE_AND_NOT_SI === 1'b1" ;
        timing_type : min_pulse_width ;
        when : "!D&SE&!SI" ;

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

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

      timing() {
        related_pin : "CLK" ;
        sdf_cond : "ENABLE_NOT_D_AND_SE_AND_SI === 1'b1" ;
        timing_type : min_pulse_width ;
        when : "!D&SE&SI" ;

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

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

      timing() {
        related_pin : "CLK" ;
        sdf_cond : "ENABLE_D_AND_NOT_SE_AND_NOT_SI === 1'b1" ;
        timing_type : min_pulse_width ;
        when : "D&!SE&!SI" ;

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

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

      timing() {
        related_pin : "CLK" ;
        sdf_cond : "ENABLE_D_AND_NOT_SE_AND_SI === 1'b1" ;
        timing_type : min_pulse_width ;
        when : "D&!SE&SI" ;

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

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

      timing() {
        related_pin : "CLK" ;
        sdf_cond : "ENABLE_D_AND_SE_AND_NOT_SI === 1'b1" ;
        timing_type : min_pulse_width ;
        when : "D&SE&!SI" ;

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

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

      timing() {
        related_pin : "CLK" ;
        sdf_cond : "ENABLE_D_AND_SE_AND_SI === 1'b1" ;
        timing_type : min_pulse_width ;
        when : "D&SE&SI" ;

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

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

      timing() {
        related_pin : "CLK" ;
        sdf_cond : "ENABLE_NOT_D_AND_NOT_SE_AND_NOT_SI === 1'b1" ;
        timing_type : minimum_period ;
        when : "!D&!SE&!SI" ;

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

      timing() {
        related_pin : "CLK" ;
        sdf_cond : "ENABLE_NOT_D_AND_NOT_SE_AND_SI === 1'b1" ;
        timing_type : minimum_period ;
        when : "!D&!SE&SI" ;

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

      timing() {
        related_pin : "CLK" ;
        sdf_cond : "ENABLE_NOT_D_AND_SE_AND_NOT_SI === 1'b1" ;
        timing_type : minimum_period ;
        when : "!D&SE&!SI" ;

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

      timing() {
        related_pin : "CLK" ;
        sdf_cond : "ENABLE_NOT_D_AND_SE_AND_SI === 1'b1" ;
        timing_type : minimum_period ;
        when : "!D&SE&SI" ;

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

      timing() {
        related_pin : "CLK" ;
        sdf_cond : "ENABLE_D_AND_NOT_SE_AND_NOT_SI === 1'b1" ;
        timing_type : minimum_period ;
        when : "D&!SE&!SI" ;

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

      timing() {
        related_pin : "CLK" ;
        sdf_cond : "ENABLE_D_AND_NOT_SE_AND_SI === 1'b1" ;
        timing_type : minimum_period ;
        when : "D&!SE&SI" ;

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

      timing() {
        related_pin : "CLK" ;
        sdf_cond : "ENABLE_D_AND_SE_AND_NOT_SI === 1'b1" ;
        timing_type : minimum_period ;
        when : "D&SE&!SI" ;

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

      timing() {
        related_pin : "CLK" ;
        sdf_cond : "ENABLE_D_AND_SE_AND_SI === 1'b1" ;
        timing_type : minimum_period ;
        when : "D&SE&SI" ;

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

    pin(D) {
      capacitance : 0.002563 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 6.8 ;
      nextstate_type : data ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!CLK&!SE&!SI" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.04002, 0.03992, 0.03978, 0.03965, 0.03955, 0.03959, 0.03988, \
                  0.04053, 0.04172, 0.04364");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.02463, 0.0245, 0.02436, 0.02422, 0.02416, 0.02419, 0.02449, \
                  0.02517, 0.02629, 0.02794");
        }
      }

      internal_power() {
        when : "!CLK&!SE&SI" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.04003, 0.03992, 0.03979, 0.03965, 0.03956, 0.03959, 0.03986, \
                  0.04051, 0.04172, 0.04364");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.02462, 0.0245, 0.02437, 0.02422, 0.02416, 0.02419, 0.02449, \
                  0.02517, 0.0263, 0.02794");
        }
      }

      internal_power() {
        when : "!CLK&SE&!SI" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.002899, 0.002884, 0.002883, 0.002883, 0.002887, 0.002884, 0.002888, \
                  0.00289, 0.002888, 0.002887");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("-0.002657, -0.002661, -0.002729, -0.002766, -0.002785, -0.002798, \
                  -0.002812, -0.002818, -0.002824, -0.002828");
        }
      }

      internal_power() {
        when : "!CLK&SE&SI" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.002886, 0.002884, 0.002878, 0.002879, 0.002878, 0.002887, 0.002889, \
                  0.002889, 0.002888, 0.002887");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("-0.002569, -0.002646, -0.002729, -0.002766, -0.002783, -0.002803, \
                  -0.002815, -0.00282, -0.002823, -0.002827");
        }
      }

      internal_power() {
        when : "CLK&!SE&!SI" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.00871, 0.008694, 0.008669, 0.008644, 0.008621, 0.008618, 0.008617, \
                  0.008616, 0.008614, 0.008624");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("-0.0008226, -0.0008765, -0.0009714, -0.001063, -0.00113, -0.001176, \
                  -0.001218, -0.001238, -0.001257, -0.001269");
        }
      }

      internal_power() {
        when : "CLK&!SE&SI" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.008712, 0.008706, 0.00867, 0.008641, 0.008631, 0.008616, 0.008618, \
                  0.008615, 0.008621, 0.00862");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("-0.0008226, -0.0008766, -0.0009717, -0.001063, -0.00113, -0.001176, \
                  -0.001218, -0.001238, -0.001257, -0.001271");
        }
      }

      internal_power() {
        when : "CLK&SE&!SI" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.002887, 0.002888, 0.002883, 0.002878, 0.002878, 0.002883, 0.002889, \
                  0.002888, 0.002888, 0.002886");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("-0.00266, -0.002661, -0.002725, -0.002768, -0.002786, -0.0028, \
                  -0.002813, -0.002821, -0.002825, -0.002829");
        }
      }

      internal_power() {
        when : "CLK&SE&SI" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.002887, 0.002888, 0.002882, 0.002884, 0.00289, 0.002883, 0.002886, \
                  0.002888, 0.002888, 0.002888");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("-0.002567, -0.002652, -0.002729, -0.002765, -0.002793, -0.002797, \
                  -0.002814, -0.00282, -0.002821, -0.002827");
        }
      }

      timing() {
        related_pin : "CLK" ;
        sdf_cond : "ENABLE_NOT_SE_AND_NOT_SI === 1'b1" ;
        timing_type : hold_rising ;
        when : "!SE&!SI" ;

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("-0.126, -0.111, -0.073, -0.01, 0.056, 0.118, 0.147, 0.169, 0.161, 0.136",\
                 "-0.14, -0.127, -0.086, -0.021, 0.043, 0.1, 0.133, 0.15, 0.147, 0.118",\
                 "-0.189, -0.178, -0.137, -0.07, -0.001, 0.048, 0.082, 0.098, 0.097, 0.07",\
                 "-0.27, -0.259, -0.213, -0.153, -0.083, -0.035, 0.004, 0.016, 0.011, -0.013",\
                 "-0.372, -0.357, -0.315, -0.246, -0.186, -0.131, -0.098, -0.08, -0.086, -0.112",\
                 "-0.475, -0.464, -0.422, -0.356, -0.293, -0.243, -0.21, -0.191, -0.19, -0.218",\
                 "-0.59, -0.576, -0.535, -0.47, -0.407, -0.357, -0.323, -0.307, -0.304, -0.327",\
                 "-0.71, -0.696, -0.667, -0.6, -0.536, -0.488, -0.449, -0.429, -0.432, -0.451",\
                 "-0.848, -0.833, -0.805, -0.744, -0.685, -0.629, -0.6, -0.572, -0.575, -0.589",\
                 "-1, -0.979, -0.96, -0.906, -0.847, -0.801, -0.763, -0.736, -0.735, -0.74");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("-0.372, -0.362, -0.324, -0.291, -0.29, -0.295, -0.33, -0.38, -0.457, -0.553",\
                 "-0.384, -0.366, -0.334, -0.301, -0.296, -0.304, -0.345, -0.397, -0.463, -0.559",\
                 "-0.402, -0.395, -0.355, -0.324, -0.324, -0.336, -0.364, -0.42, -0.492, -0.588",\
                 "-0.449, -0.431, -0.399, -0.369, -0.359, -0.373, -0.399, -0.455, -0.527, -0.62",\
                 "-0.495, -0.479, -0.444, -0.41, -0.404, -0.414, -0.438, -0.489, -0.561, -0.653",\
                 "-0.531, -0.513, -0.479, -0.445, -0.435, -0.442, -0.469, -0.514, -0.582, -0.676",\
                 "-0.549, -0.535, -0.499, -0.462, -0.453, -0.454, -0.478, -0.525, -0.586, -0.685",\
                 "-0.549, -0.533, -0.498, -0.461, -0.448, -0.448, -0.473, -0.511, -0.578, -0.666",\
                 "-0.517, -0.506, -0.467, -0.437, -0.42, -0.42, -0.44, -0.486, -0.55, -0.632",\
                 "-0.461, -0.445, -0.413, -0.38, -0.363, -0.369, -0.395, -0.432, -0.492, -0.577");
        }
      }

      timing() {
        related_pin : "CLK" ;
        sdf_cond : "ENABLE_NOT_SE_AND_SI === 1'b1" ;
        timing_type : hold_rising ;
        when : "!SE&SI" ;

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("-0.126, -0.111, -0.073, -0.01, 0.056, 0.118, 0.147, 0.169, 0.161, 0.128",\
                 "-0.14, -0.127, -0.091, -0.021, 0.043, 0.1, 0.133, 0.159, 0.147, 0.118",\
                 "-0.189, -0.178, -0.137, -0.07, -0.009, 0.048, 0.082, 0.108, 0.097, 0.07",\
                 "-0.27, -0.259, -0.213, -0.153, -0.083, -0.035, 0.004, 0.021, 0.011, -0.013",\
                 "-0.372, -0.357, -0.315, -0.246, -0.186, -0.131, -0.098, -0.08, -0.086, -0.112",\
                 "-0.475, -0.455, -0.422, -0.356, -0.293, -0.243, -0.21, -0.185, -0.19, -0.218",\
                 "-0.59, -0.576, -0.535, -0.47, -0.407, -0.357, -0.323, -0.299, -0.304, -0.333",\
                 "-0.71, -0.696, -0.667, -0.605, -0.536, -0.488, -0.449, -0.42, -0.438, -0.457",\
                 "-0.848, -0.833, -0.805, -0.744, -0.685, -0.629, -0.591, -0.562, -0.575, -0.596",\
                 "-1, -0.979, -0.96, -0.906, -0.847, -0.801, -0.763, -0.723, -0.735, -0.748");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("-0.372, -0.362, -0.324, -0.291, -0.29, -0.295, -0.33, -0.38, -0.457, -0.553",\
                 "-0.384, -0.366, -0.334, -0.301, -0.296, -0.304, -0.345, -0.397, -0.463, -0.559",\
                 "-0.402, -0.395, -0.355, -0.324, -0.324, -0.336, -0.364, -0.42, -0.492, -0.588",\
                 "-0.449, -0.431, -0.399, -0.369, -0.359, -0.373, -0.399, -0.455, -0.527, -0.62",\
                 "-0.495, -0.479, -0.444, -0.41, -0.404, -0.414, -0.438, -0.489, -0.561, -0.653",\
                 "-0.522, -0.513, -0.479, -0.445, -0.435, -0.442, -0.469, -0.514, -0.582, -0.676",\
                 "-0.549, -0.535, -0.499, -0.462, -0.453, -0.454, -0.478, -0.525, -0.586, -0.685",\
                 "-0.539, -0.533, -0.498, -0.461, -0.448, -0.448, -0.473, -0.511, -0.578, -0.666",\
                 "-0.517, -0.506, -0.467, -0.437, -0.42, -0.42, -0.44, -0.486, -0.55, -0.632",\
                 "-0.461, -0.445, -0.413, -0.38, -0.363, -0.369, -0.395, -0.432, -0.492, -0.577");
        }
      }

      timing() {
        related_pin : "CLK" ;
        sdf_cond : "ENABLE_NOT_SE_AND_NOT_SI === 1'b1" ;
        timing_type : setup_rising ;
        when : "!SE&!SI" ;

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("1.071, 1.055, 1.002, 0.882, 0.772, 0.681, 0.616, 0.57, 0.553, 0.561",\
                 "1.084, 1.07, 1.01, 0.901, 0.782, 0.689, 0.628, 0.588, 0.56, 0.575",\
                 "1.138, 1.118, 1.057, 0.948, 0.833, 0.736, 0.678, 0.639, 0.617, 0.622",\
                 "1.219, 1.196, 1.14, 1.022, 0.912, 0.818, 0.76, 0.712, 0.694, 0.708",\
                 "1.324, 1.311, 1.254, 1.136, 1.028, 0.931, 0.87, 0.827, 0.811, 0.823",\
                 "1.481, 1.465, 1.403, 1.287, 1.178, 1.085, 1.02, 0.979, 0.959, 0.969",\
                 "1.659, 1.642, 1.58, 1.467, 1.353, 1.264, 1.2, 1.155, 1.141, 1.144",\
                 "1.856, 1.847, 1.783, 1.67, 1.561, 1.471, 1.407, 1.358, 1.34, 1.344",\
                 "2.102, 2.086, 2.028, 1.909, 1.803, 1.707, 1.636, 1.593, 1.578, 1.583",\
                 "2.378, 2.366, 2.31, 2.19, 2.08, 1.985, 1.915, 1.871, 1.844, 1.852");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.819, 0.804, 0.75, 0.664, 0.587, 0.549, 0.541, 0.57, 0.623, 0.71",\
                 "0.827, 0.815, 0.762, 0.67, 0.597, 0.555, 0.552, 0.579, 0.63, 0.717",\
                 "0.857, 0.838, 0.784, 0.695, 0.625, 0.58, 0.575, 0.599, 0.657, 0.741",\
                 "0.892, 0.883, 0.828, 0.737, 0.662, 0.617, 0.615, 0.637, 0.694, 0.779",\
                 "0.947, 0.933, 0.881, 0.79, 0.716, 0.669, 0.668, 0.684, 0.735, 0.823",\
                 "0.992, 0.984, 0.926, 0.836, 0.767, 0.721, 0.706, 0.723, 0.775, 0.856",\
                 "1.026, 1.012, 0.958, 0.872, 0.802, 0.746, 0.736, 0.75, 0.793, 0.871",\
                 "1.041, 1.032, 0.976, 0.889, 0.815, 0.764, 0.745, 0.757, 0.798, 0.868",\
                 "1.033, 1.02, 0.97, 0.883, 0.806, 0.755, 0.732, 0.744, 0.78, 0.853",\
                 "1.008, 0.996, 0.934, 0.852, 0.78, 0.724, 0.7, 0.704, 0.742, 0.812");
        }
      }

      timing() {
        related_pin : "CLK" ;
        sdf_cond : "ENABLE_NOT_SE_AND_SI === 1'b1" ;
        timing_type : setup_rising ;
        when : "!SE&SI" ;

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("1.071, 1.055, 1.002, 0.882, 0.772, 0.681, 0.616, 0.57, 0.553, 0.561",\
                 "1.084, 1.07, 1.01, 0.901, 0.782, 0.699, 0.628, 0.588, 0.566, 0.575",\
                 "1.138, 1.118, 1.057, 0.948, 0.833, 0.736, 0.678, 0.639, 0.617, 0.622",\
                 "1.219, 1.204, 1.14, 1.029, 0.912, 0.824, 0.76, 0.712, 0.694, 0.708",\
                 "1.33, 1.311, 1.254, 1.144, 1.028, 0.931, 0.87, 0.827, 0.811, 0.823",\
                 "1.481, 1.465, 1.403, 1.287, 1.171, 1.085, 1.02, 0.979, 0.959, 0.969",\
                 "1.652, 1.642, 1.58, 1.467, 1.353, 1.264, 1.2, 1.155, 1.141, 1.144",\
                 "1.866, 1.847, 1.783, 1.676, 1.561, 1.471, 1.399, 1.358, 1.34, 1.35",\
                 "2.102, 2.086, 2.028, 1.909, 1.803, 1.707, 1.636, 1.593, 1.578, 1.583",\
                 "2.378, 2.366, 2.31, 2.19, 2.08, 1.985, 1.915, 1.871, 1.844, 1.852");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.819, 0.804, 0.75, 0.664, 0.587, 0.549, 0.541, 0.57, 0.623, 0.71",\
                 "0.827, 0.815, 0.762, 0.67, 0.597, 0.555, 0.552, 0.579, 0.63, 0.717",\
                 "0.857, 0.838, 0.784, 0.695, 0.625, 0.58, 0.575, 0.599, 0.657, 0.741",\
                 "0.892, 0.883, 0.828, 0.737, 0.662, 0.617, 0.615, 0.637, 0.694, 0.779",\
                 "0.947, 0.933, 0.881, 0.79, 0.716, 0.669, 0.668, 0.69, 0.735, 0.823",\
                 "0.992, 0.984, 0.926, 0.836, 0.767, 0.721, 0.706, 0.723, 0.775, 0.856",\
                 "1.026, 1.012, 0.958, 0.872, 0.802, 0.746, 0.736, 0.75, 0.793, 0.871",\
                 "1.041, 1.032, 0.976, 0.889, 0.815, 0.764, 0.745, 0.757, 0.798, 0.875",\
                 "1.033, 1.02, 0.97, 0.883, 0.806, 0.755, 0.741, 0.75, 0.78, 0.853",\
                 "1.008, 0.996, 0.934, 0.852, 0.78, 0.724, 0.7, 0.704, 0.742, 0.812");
        }
      }
    }

    pin(Q) {
      direction : output ;
      function : "IQ1" ;
      max_capacitance : 0.9446 ;
      max_transition : 6.8 ;
      min_capacitance : 0.001 ;
      output_voltage : default ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        related_pin : "CLK" ;
        when : "!D&SI" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.007513, 0.03037, 0.07403, 0.142, 0.2375, 0.363, 0.5213, 0.7144, 0.9446");
          values("0.08279, 0.08219, 0.08209, 0.08265, 0.08323, 0.08369, 0.08397, 0.08415, 0.08425, 0.08434",\
                 "0.08282, 0.08222, 0.08206, 0.08261, 0.0832, 0.08366, 0.08393, 0.08412, 0.08422, 0.08432",\
                 "0.08279, 0.08223, 0.08204, 0.08259, 0.08322, 0.08368, 0.08395, 0.08411, 0.08427, 0.08434",\
                 "0.08287, 0.08226, 0.08214, 0.08267, 0.0833, 0.08373, 0.084, 0.0842, 0.08432, 0.0844",\
                 "0.08305, 0.08247, 0.08234, 0.08284, 0.08346, 0.08391, 0.08417, 0.08436, 0.08448, 0.08456",\
                 "0.08322, 0.08261, 0.08247, 0.08302, 0.08363, 0.08407, 0.08435, 0.08452, 0.08463, 0.08472",\
                 "0.08342, 0.08278, 0.08267, 0.08322, 0.08381, 0.08424, 0.08453, 0.08471, 0.08481, 0.0849",\
                 "0.08354, 0.08299, 0.08286, 0.08343, 0.08401, 0.08445, 0.08477, 0.08493, 0.08504, 0.08508",\
                 "0.08375, 0.08316, 0.08301, 0.08355, 0.08415, 0.08461, 0.08488, 0.08506, 0.08518, 0.08526",\
                 "0.08395, 0.08338, 0.08331, 0.08383, 0.08443, 0.08485, 0.0851, 0.08529, 0.08541, 0.0855");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.007513, 0.03037, 0.07403, 0.142, 0.2375, 0.363, 0.5213, 0.7144, 0.9446");
          values("0.07522, 0.07512, 0.07524, 0.07623, 0.07736, 0.07858, 0.07953, 0.08025, 0.08166, 0.08226",\
                 "0.07511, 0.07502, 0.07516, 0.07608, 0.07713, 0.07837, 0.07936, 0.08053, 0.08115, 0.08255",\
                 "0.07513, 0.07504, 0.07527, 0.07602, 0.07731, 0.07845, 0.07972, 0.08079, 0.08161, 0.08221",\
                 "0.07507, 0.075, 0.07518, 0.07605, 0.07724, 0.07846, 0.0793, 0.08013, 0.08154, 0.08215",\
                 "0.07512, 0.07488, 0.07503, 0.07588, 0.07725, 0.07849, 0.07935, 0.0805, 0.08151, 0.0821",\
                 "0.07516, 0.07508, 0.07507, 0.07602, 0.07703, 0.07827, 0.07929, 0.08002, 0.08084, 0.08261",\
                 "0.07512, 0.07506, 0.07515, 0.07596, 0.07725, 0.07833, 0.07927, 0.0803, 0.08112, 0.08227",\
                 "0.07518, 0.07515, 0.07512, 0.07574, 0.07675, 0.0789, 0.07972, 0.08041, 0.08123, 0.08219",\
                 "0.07508, 0.07501, 0.07507, 0.07612, 0.07712, 0.07826, 0.07994, 0.08129, 0.08072, 0.08243",\
                 "0.07531, 0.07521, 0.07527, 0.07607, 0.07722, 0.07808, 0.07886, 0.08116, 0.08305, 0.08361");
        }
      }

      internal_power() {
        related_pin : "CLK" ;
        when : "!SE&!SI" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.007513, 0.03037, 0.07403, 0.142, 0.2375, 0.363, 0.5213, 0.7144, 0.9446");
          values("0.08283, 0.08223, 0.0821, 0.08265, 0.08324, 0.08371, 0.08397, 0.08415, 0.08426, 0.08435",\
                 "0.08288, 0.08226, 0.08211, 0.08266, 0.08325, 0.08372, 0.084, 0.08416, 0.08428, 0.08436",\
                 "0.08286, 0.08224, 0.08211, 0.08265, 0.08325, 0.08368, 0.08398, 0.08416, 0.08425, 0.08434",\
                 "0.0829, 0.08231, 0.08216, 0.08274, 0.08333, 0.08375, 0.08404, 0.08421, 0.08433, 0.08441",\
                 "0.08307, 0.08256, 0.08236, 0.08295, 0.08348, 0.08394, 0.08423, 0.08442, 0.08453, 0.0846",\
                 "0.08324, 0.08264, 0.0825, 0.08305, 0.08366, 0.0841, 0.08438, 0.08455, 0.08466, 0.08474",\
                 "0.08341, 0.08281, 0.08271, 0.08327, 0.08387, 0.08429, 0.08454, 0.08472, 0.08484, 0.08492",\
                 "0.08362, 0.08299, 0.0829, 0.08345, 0.08404, 0.08449, 0.08474, 0.08491, 0.08502, 0.08512",\
                 "0.08376, 0.08324, 0.08307, 0.08366, 0.08421, 0.08462, 0.0849, 0.08507, 0.0852, 0.08534",\
                 "0.08404, 0.08342, 0.0833, 0.08384, 0.08443, 0.08487, 0.08513, 0.08531, 0.08542, 0.08549");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.007513, 0.03037, 0.07403, 0.142, 0.2375, 0.363, 0.5213, 0.7144, 0.9446");
          values("0.07529, 0.07513, 0.07525, 0.07622, 0.07716, 0.0784, 0.07941, 0.08026, 0.08128, 0.08228",\
                 "0.07516, 0.07504, 0.07515, 0.07608, 0.07716, 0.0784, 0.07941, 0.08056, 0.08118, 0.08238",\
                 "0.0752, 0.07503, 0.07532, 0.07591, 0.07729, 0.07837, 0.07958, 0.08021, 0.08103, 0.08223",\
                 "0.07509, 0.07493, 0.07507, 0.07598, 0.07721, 0.07861, 0.07931, 0.08014, 0.08116, 0.08235",\
                 "0.07512, 0.07495, 0.07509, 0.07594, 0.07694, 0.07849, 0.07948, 0.08032, 0.08153, 0.08251",\
                 "0.07502, 0.07494, 0.07509, 0.07603, 0.07704, 0.07826, 0.07925, 0.07999, 0.08081, 0.08277",\
                 "0.07499, 0.0749, 0.07506, 0.07592, 0.07729, 0.07823, 0.0793, 0.08027, 0.08109, 0.08304",\
                 "0.07517, 0.07507, 0.07509, 0.07571, 0.07676, 0.07891, 0.07985, 0.0804, 0.08162, 0.08218",\
                 "0.0752, 0.07513, 0.07531, 0.07616, 0.07698, 0.07782, 0.0799, 0.08129, 0.08132, 0.08243",\
                 "0.07533, 0.07519, 0.07529, 0.07602, 0.07708, 0.07816, 0.07862, 0.08135, 0.08285, 0.0838");
        }
      }

      internal_power() {
        related_pin : "CLK" ;
        when : "D&!SE&SI | !D&SE&!SI" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.007513, 0.03037, 0.07403, 0.142, 0.2375, 0.363, 0.5213, 0.7144, 0.9446");
          values("0.08281, 0.08223, 0.0821, 0.08263, 0.08322, 0.08367, 0.08394, 0.08413, 0.08425, 0.08432",\
                 "0.08281, 0.0822, 0.08205, 0.08259, 0.08319, 0.08365, 0.08392, 0.08411, 0.08421, 0.08431",\
                 "0.08279, 0.08221, 0.08205, 0.08262, 0.08319, 0.08365, 0.08392, 0.08411, 0.08422, 0.08431",\
                 "0.08283, 0.08225, 0.08213, 0.08267, 0.08326, 0.08373, 0.08399, 0.08418, 0.08431, 0.08437",\
                 "0.083, 0.08246, 0.08231, 0.08285, 0.08343, 0.0839, 0.08417, 0.08438, 0.08446, 0.08454",\
                 "0.08322, 0.08261, 0.08249, 0.08302, 0.08365, 0.08407, 0.08435, 0.08451, 0.08466, 0.08474",\
                 "0.08341, 0.08279, 0.08266, 0.08323, 0.08381, 0.08424, 0.0845, 0.0847, 0.08482, 0.0849",\
                 "0.08355, 0.08293, 0.08288, 0.08342, 0.084, 0.08448, 0.08476, 0.0849, 0.08502, 0.08509",\
                 "0.08371, 0.08314, 0.08302, 0.08357, 0.08415, 0.08462, 0.08486, 0.08505, 0.08517, 0.08526",\
                 "0.08397, 0.08339, 0.08327, 0.08383, 0.08439, 0.08484, 0.08509, 0.08527, 0.0854, 0.08549");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.007513, 0.03037, 0.07403, 0.142, 0.2375, 0.363, 0.5213, 0.7144, 0.9446");
          values("0.07514, 0.07516, 0.07517, 0.0761, 0.07733, 0.07839, 0.0795, 0.08026, 0.08128, 0.08267",\
                 "0.07515, 0.07503, 0.07514, 0.07608, 0.07715, 0.07839, 0.0794, 0.08055, 0.08117, 0.08237",\
                 "0.07518, 0.07504, 0.07524, 0.07608, 0.07727, 0.07857, 0.07938, 0.08022, 0.08104, 0.08203",\
                 "0.07513, 0.0749, 0.0751, 0.07603, 0.07721, 0.07858, 0.07936, 0.08035, 0.08117, 0.08197",\
                 "0.07513, 0.07497, 0.0751, 0.07595, 0.07695, 0.0785, 0.0795, 0.08033, 0.08154, 0.08252",\
                 "0.07511, 0.07488, 0.07511, 0.07594, 0.07706, 0.07842, 0.07931, 0.08018, 0.081, 0.08277",\
                 "0.0752, 0.07502, 0.07498, 0.07585, 0.0773, 0.07822, 0.07945, 0.0807, 0.08112, 0.08228",\
                 "0.07511, 0.07496, 0.07517, 0.07594, 0.07676, 0.07893, 0.07974, 0.0802, 0.08102, 0.08334",\
                 "0.07527, 0.07503, 0.07513, 0.07572, 0.07694, 0.07788, 0.08002, 0.08169, 0.08151, 0.08262",\
                 "0.07532, 0.07503, 0.0752, 0.07607, 0.0771, 0.07793, 0.0789, 0.08136, 0.08285, 0.08342");
        }
      }

      internal_power() {
        related_pin : "CLK" ;
        when : "D&SE" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.007513, 0.03037, 0.07403, 0.142, 0.2375, 0.363, 0.5213, 0.7144, 0.9446");
          values("0.08281, 0.08217, 0.08208, 0.08262, 0.08322, 0.08365, 0.08394, 0.08412, 0.08422, 0.08431",\
                 "0.08275, 0.08215, 0.08205, 0.08261, 0.08319, 0.08366, 0.08392, 0.08411, 0.08421, 0.0843",\
                 "0.08277, 0.08218, 0.08207, 0.0826, 0.0832, 0.08365, 0.08391, 0.08411, 0.08422, 0.08432",\
                 "0.08281, 0.08227, 0.08211, 0.08266, 0.08324, 0.08372, 0.08398, 0.08417, 0.08427, 0.08436",\
                 "0.08307, 0.08246, 0.08233, 0.08287, 0.08344, 0.0839, 0.08417, 0.08436, 0.08447, 0.08454",\
                 "0.08324, 0.08262, 0.08251, 0.08304, 0.08366, 0.08409, 0.08437, 0.08455, 0.08467, 0.08475",\
                 "0.08337, 0.08277, 0.08266, 0.08322, 0.08382, 0.08421, 0.08452, 0.08471, 0.08482, 0.0849",\
                 "0.08356, 0.08298, 0.08287, 0.08339, 0.084, 0.08445, 0.0847, 0.0849, 0.08501, 0.08508",\
                 "0.08374, 0.0832, 0.08304, 0.08357, 0.08415, 0.08462, 0.08487, 0.08503, 0.08515, 0.08524",\
                 "0.08391, 0.08334, 0.08326, 0.08379, 0.08438, 0.08484, 0.08506, 0.08524, 0.08537, 0.08546");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.007513, 0.03037, 0.07403, 0.142, 0.2375, 0.363, 0.5213, 0.7144, 0.9446");
          values("0.0752, 0.07506, 0.07519, 0.07606, 0.07714, 0.07837, 0.07939, 0.08044, 0.08106, 0.08245",\
                 "0.07519, 0.07503, 0.07524, 0.07602, 0.07729, 0.07833, 0.07952, 0.08034, 0.08175, 0.08215",\
                 "0.07519, 0.07502, 0.07515, 0.0761, 0.07735, 0.07833, 0.07937, 0.0804, 0.08161, 0.08202",\
                 "0.07508, 0.075, 0.07504, 0.07617, 0.07726, 0.07856, 0.07997, 0.08092, 0.08114, 0.08214",\
                 "0.0751, 0.07499, 0.07519, 0.0759, 0.0772, 0.07859, 0.07963, 0.0805, 0.08152, 0.0821",\
                 "0.07512, 0.07504, 0.07509, 0.07596, 0.07694, 0.0784, 0.07927, 0.07999, 0.0808, 0.08257",\
                 "0.07509, 0.07503, 0.07512, 0.07593, 0.07722, 0.0782, 0.07928, 0.08027, 0.08109, 0.08224",\
                 "0.07509, 0.0749, 0.075, 0.07601, 0.07679, 0.0787, 0.07966, 0.08019, 0.08081, 0.08216",\
                 "0.07516, 0.07493, 0.07495, 0.07606, 0.07725, 0.07806, 0.0799, 0.08149, 0.08072, 0.08322",\
                 "0.0753, 0.07506, 0.07539, 0.07604, 0.07747, 0.07802, 0.07889, 0.08095, 0.08285, 0.08341");
        }
      }

      timing() {
        related_pin : "CLK" ;
        sdf_cond : "D===1'b0 && SI===1'b1" ;
        timing_type : rising_edge ;
        when : "!D&SI" ;

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.007513, 0.03037, 0.07403, 0.142, 0.2375, 0.363, 0.5213, 0.7144, 0.9446");
          values("1.156, 1.195, 1.29, 1.414, 1.568, 1.761, 2.005, 2.309, 2.679, 3.119",\
                 "1.169, 1.209, 1.304, 1.428, 1.582, 1.775, 2.019, 2.322, 2.692, 3.133",\
                 "1.219, 1.258, 1.353, 1.477, 1.631, 1.824, 2.068, 2.372, 2.741, 3.182",\
                 "1.305, 1.344, 1.44, 1.563, 1.717, 1.91, 2.154, 2.458, 2.828, 3.269",\
                 "1.39, 1.429, 1.525, 1.649, 1.802, 1.995, 2.239, 2.543, 2.913, 3.354",\
                 "1.458, 1.497, 1.592, 1.716, 1.87, 2.063, 2.307, 2.611, 2.981, 3.422",\
                 "1.506, 1.546, 1.641, 1.765, 1.919, 2.112, 2.356, 2.659, 3.029, 3.47",\
                 "1.535, 1.574, 1.669, 1.793, 1.947, 2.14, 2.384, 2.688, 3.058, 3.498",\
                 "1.543, 1.583, 1.678, 1.801, 1.955, 2.148, 2.392, 2.696, 3.066, 3.506",\
                 "1.529, 1.569, 1.664, 1.788, 1.941, 2.135, 2.379, 2.682, 3.052, 3.493");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.007513, 0.03037, 0.07403, 0.142, 0.2375, 0.363, 0.5213, 0.7144, 0.9446");
          values("1.066, 1.108, 1.221, 1.407, 1.69, 2.085, 2.604, 3.257, 4.054, 5.005",\
                 "1.079, 1.122, 1.235, 1.421, 1.704, 2.099, 2.618, 3.271, 4.067, 5.017",\
                 "1.128, 1.171, 1.283, 1.47, 1.752, 2.147, 2.666, 3.319, 4.117, 5.068",\
                 "1.213, 1.255, 1.368, 1.554, 1.837, 2.232, 2.751, 3.404, 4.201, 5.152",\
                 "1.296, 1.339, 1.452, 1.638, 1.92, 2.316, 2.834, 3.488, 4.285, 5.235",\
                 "1.363, 1.406, 1.518, 1.705, 1.987, 2.382, 2.901, 3.554, 4.352, 5.3",\
                 "1.411, 1.454, 1.567, 1.753, 2.036, 2.431, 2.95, 3.603, 4.399, 5.35",\
                 "1.441, 1.483, 1.596, 1.782, 2.065, 2.46, 2.978, 3.631, 4.428, 5.379",\
                 "1.449, 1.492, 1.605, 1.791, 2.074, 2.469, 2.987, 3.64, 4.437, 5.386",\
                 "1.437, 1.48, 1.593, 1.779, 2.062, 2.457, 2.975, 3.628, 4.425, 5.374");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.007513, 0.03037, 0.07403, 0.142, 0.2375, 0.363, 0.5213, 0.7144, 0.9446");
          values("0.136, 0.169, 0.2472, 0.3722, 0.5646, 0.8482, 1.24, 1.744, 2.37, 3.116",\
                 "0.136, 0.1688, 0.247, 0.3718, 0.5636, 0.8482, 1.237, 1.745, 2.37, 3.117",\
                 "0.136, 0.169, 0.2472, 0.3716, 0.5648, 0.848, 1.238, 1.743, 2.369, 3.113",\
                 "0.136, 0.169, 0.2472, 0.372, 0.566, 0.8486, 1.24, 1.745, 2.37, 3.116",\
                 "0.136, 0.169, 0.247, 0.372, 0.5634, 0.848, 1.238, 1.744, 2.369, 3.113",\
                 "0.1362, 0.169, 0.247, 0.3732, 0.5644, 0.8474, 1.238, 1.744, 2.37, 3.114",\
                 "0.1362, 0.169, 0.2468, 0.3716, 0.564, 0.8472, 1.239, 1.745, 2.366, 3.114",\
                 "0.136, 0.169, 0.2468, 0.373, 0.5634, 0.8486, 1.238, 1.743, 2.366, 3.114",\
                 "0.1358, 0.1688, 0.247, 0.373, 0.5644, 0.849, 1.239, 1.745, 2.368, 3.111",\
                 "0.1362, 0.169, 0.2472, 0.373, 0.565, 0.848, 1.237, 1.744, 2.368, 3.111");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.007513, 0.03037, 0.07403, 0.142, 0.2375, 0.363, 0.5213, 0.7144, 0.9446");
          values("0.1262, 0.1684, 0.308, 0.5998, 1.08, 1.759, 2.654, 3.781, 5.159, 6.793",\
                 "0.126, 0.1686, 0.308, 0.5994, 1.08, 1.758, 2.649, 3.778, 5.15, 6.802",\
                 "0.126, 0.1684, 0.3082, 0.5998, 1.079, 1.759, 2.654, 3.781, 5.159, 6.794",\
                 "0.1258, 0.1688, 0.3084, 0.5996, 1.081, 1.758, 2.652, 3.778, 5.158, 6.797",\
                 "0.1264, 0.1692, 0.3078, 0.6008, 1.079, 1.758, 2.653, 3.781, 5.159, 6.802",\
                 "0.1262, 0.1684, 0.3078, 0.5998, 1.079, 1.759, 2.652, 3.776, 5.155, 6.799",\
                 "0.126, 0.1688, 0.3082, 0.5996, 1.079, 1.757, 2.649, 3.777, 5.156, 6.801",\
                 "0.1262, 0.1686, 0.3078, 0.6002, 1.08, 1.756, 2.648, 3.777, 5.149, 6.802",\
                 "0.1264, 0.1684, 0.3078, 0.5998, 1.079, 1.757, 2.651, 3.773, 5.152, 6.788",\
                 "0.1264, 0.1684, 0.3076, 0.6006, 1.079, 1.758, 2.65, 3.775, 5.147, 6.794");
        }
      }

      timing() {
        related_pin : "CLK" ;
        sdf_cond : "SE===1'b0 && SI===1'b0" ;
        timing_type : rising_edge ;
        when : "!SE&!SI" ;

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.007513, 0.03037, 0.07403, 0.142, 0.2375, 0.363, 0.5213, 0.7144, 0.9446");
          values("1.156, 1.195, 1.29, 1.414, 1.568, 1.761, 2.005, 2.309, 2.679, 3.12",\
                 "1.169, 1.209, 1.304, 1.428, 1.582, 1.775, 2.019, 2.323, 2.693, 3.133",\
                 "1.219, 1.258, 1.354, 1.477, 1.631, 1.824, 2.068, 2.372, 2.742, 3.183",\
                 "1.305, 1.345, 1.44, 1.563, 1.717, 1.91, 2.154, 2.458, 2.828, 3.269",\
                 "1.39, 1.43, 1.525, 1.649, 1.802, 1.995, 2.239, 2.543, 2.913, 3.354",\
                 "1.458, 1.498, 1.593, 1.717, 1.87, 2.063, 2.307, 2.611, 2.981, 3.422",\
                 "1.506, 1.546, 1.641, 1.765, 1.919, 2.112, 2.356, 2.66, 3.03, 3.47",\
                 "1.535, 1.574, 1.67, 1.793, 1.947, 2.14, 2.384, 2.688, 3.057, 3.498",\
                 "1.543, 1.583, 1.678, 1.802, 1.955, 2.148, 2.392, 2.696, 3.066, 3.507",\
                 "1.529, 1.569, 1.664, 1.788, 1.942, 2.135, 2.379, 2.682, 3.053, 3.493");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.007513, 0.03037, 0.07403, 0.142, 0.2375, 0.363, 0.5213, 0.7144, 0.9446");
          values("1.066, 1.108, 1.221, 1.407, 1.69, 2.085, 2.604, 3.257, 4.053, 5.004",\
                 "1.08, 1.122, 1.235, 1.421, 1.704, 2.099, 2.618, 3.271, 4.068, 5.017",\
                 "1.128, 1.171, 1.283, 1.47, 1.753, 2.148, 2.666, 3.319, 4.117, 5.068",\
                 "1.213, 1.255, 1.368, 1.554, 1.837, 2.232, 2.751, 3.404, 4.201, 5.15",\
                 "1.296, 1.339, 1.451, 1.637, 1.92, 2.316, 2.834, 3.487, 4.285, 5.236",\
                 "1.363, 1.406, 1.518, 1.705, 1.988, 2.383, 2.902, 3.554, 4.352, 5.301",\
                 "1.411, 1.454, 1.567, 1.753, 2.036, 2.431, 2.95, 3.603, 4.4, 5.349",\
                 "1.441, 1.483, 1.596, 1.782, 2.065, 2.46, 2.978, 3.631, 4.429, 5.38",\
                 "1.449, 1.492, 1.605, 1.791, 2.074, 2.469, 2.987, 3.64, 4.437, 5.386",\
                 "1.438, 1.48, 1.593, 1.779, 2.062, 2.457, 2.975, 3.628, 4.425, 5.374");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.007513, 0.03037, 0.07403, 0.142, 0.2375, 0.363, 0.5213, 0.7144, 0.9446");
          values("0.1364, 0.1692, 0.247, 0.3718, 0.5638, 0.848, 1.238, 1.744, 2.37, 3.117",\
                 "0.1362, 0.169, 0.247, 0.3716, 0.5648, 0.848, 1.239, 1.744, 2.37, 3.115",\
                 "0.1364, 0.169, 0.247, 0.3714, 0.5648, 0.847, 1.239, 1.745, 2.37, 3.117",\
                 "0.1362, 0.1692, 0.247, 0.3718, 0.5658, 0.848, 1.238, 1.744, 2.37, 3.118",\
                 "0.1362, 0.1692, 0.247, 0.3726, 0.5644, 0.848, 1.24, 1.745, 2.37, 3.115",\
                 "0.136, 0.169, 0.2474, 0.3728, 0.5646, 0.8476, 1.238, 1.743, 2.37, 3.115",\
                 "0.1362, 0.169, 0.247, 0.3722, 0.564, 0.8488, 1.239, 1.744, 2.369, 3.118",\
                 "0.1362, 0.1692, 0.2472, 0.3718, 0.5648, 0.8492, 1.238, 1.743, 2.366, 3.115",\
                 "0.1362, 0.1692, 0.247, 0.3718, 0.5642, 0.847, 1.239, 1.743, 2.365, 3.111",\
                 "0.1364, 0.1692, 0.247, 0.3716, 0.565, 0.8476, 1.239, 1.745, 2.37, 3.111");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.007513, 0.03037, 0.07403, 0.142, 0.2375, 0.363, 0.5213, 0.7144, 0.9446");
          values("0.1262, 0.1684, 0.3078, 0.5998, 1.08, 1.758, 2.65, 3.775, 5.151, 6.803",\
                 "0.126, 0.1688, 0.308, 0.5994, 1.08, 1.758, 2.65, 3.777, 5.151, 6.802",\
                 "0.126, 0.1684, 0.3074, 0.5992, 1.081, 1.759, 2.654, 3.778, 5.159, 6.791",\
                 "0.1262, 0.1684, 0.3074, 0.5998, 1.081, 1.759, 2.65, 3.778, 5.151, 6.802",\
                 "0.126, 0.1688, 0.308, 0.5996, 1.08, 1.757, 2.653, 3.781, 5.159, 6.793",\
                 "0.1264, 0.169, 0.3076, 0.5998, 1.08, 1.758, 2.65, 3.777, 5.156, 6.798",\
                 "0.1264, 0.1686, 0.3074, 0.601, 1.079, 1.757, 2.651, 3.78, 5.154, 6.802",\
                 "0.126, 0.1688, 0.3076, 0.6002, 1.08, 1.756, 2.649, 3.779, 5.159, 6.793",\
                 "0.126, 0.1682, 0.3078, 0.5998, 1.079, 1.758, 2.649, 3.773, 5.149, 6.794",\
                 "0.1264, 0.1684, 0.3078, 0.6, 1.08, 1.757, 2.652, 3.774, 5.147, 6.787");
        }
      }

      timing() {
        related_pin : "CLK" ;
        sdf_cond : "D===1'b1 && SE===1'b0 && SI===1'b1 || D===1'b0 && SE===1'b1 && SI===1'b0" ;
        timing_type : rising_edge ;
        when : "D&!SE&SI | !D&SE&!SI" ;

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.007513, 0.03037, 0.07403, 0.142, 0.2375, 0.363, 0.5213, 0.7144, 0.9446");
          values("1.156, 1.195, 1.29, 1.414, 1.568, 1.761, 2.005, 2.309, 2.679, 3.119",\
                 "1.169, 1.209, 1.304, 1.428, 1.582, 1.775, 2.019, 2.322, 2.692, 3.133",\
                 "1.219, 1.258, 1.353, 1.477, 1.631, 1.824, 2.068, 2.372, 2.742, 3.183",\
                 "1.305, 1.344, 1.44, 1.563, 1.717, 1.91, 2.154, 2.458, 2.828, 3.269",\
                 "1.39, 1.43, 1.525, 1.648, 1.802, 1.995, 2.239, 2.543, 2.913, 3.354",\
                 "1.458, 1.498, 1.592, 1.716, 1.87, 2.063, 2.307, 2.611, 2.98, 3.422",\
                 "1.506, 1.546, 1.641, 1.765, 1.918, 2.112, 2.356, 2.659, 3.029, 3.47",\
                 "1.534, 1.574, 1.67, 1.793, 1.947, 2.14, 2.384, 2.688, 3.057, 3.498",\
                 "1.543, 1.582, 1.678, 1.802, 1.955, 2.148, 2.392, 2.696, 3.066, 3.507",\
                 "1.529, 1.569, 1.664, 1.788, 1.941, 2.135, 2.379, 2.682, 3.052, 3.493");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.007513, 0.03037, 0.07403, 0.142, 0.2375, 0.363, 0.5213, 0.7144, 0.9446");
          values("1.066, 1.108, 1.221, 1.407, 1.69, 2.085, 2.604, 3.257, 4.054, 5.002",\
                 "1.08, 1.122, 1.235, 1.421, 1.704, 2.099, 2.618, 3.271, 4.068, 5.017",\
                 "1.128, 1.171, 1.283, 1.47, 1.753, 2.148, 2.667, 3.319, 4.117, 5.067",\
                 "1.213, 1.255, 1.368, 1.554, 1.837, 2.232, 2.751, 3.404, 4.201, 5.151",\
                 "1.296, 1.339, 1.451, 1.637, 1.92, 2.316, 2.834, 3.487, 4.285, 5.236",\
                 "1.363, 1.405, 1.518, 1.705, 1.987, 2.382, 2.901, 3.554, 4.352, 5.302",\
                 "1.412, 1.454, 1.567, 1.753, 2.036, 2.431, 2.95, 3.603, 4.399, 5.35",\
                 "1.44, 1.483, 1.596, 1.782, 2.065, 2.46, 2.978, 3.631, 4.429, 5.377",\
                 "1.449, 1.492, 1.605, 1.791, 2.073, 2.469, 2.987, 3.641, 4.437, 5.386",\
                 "1.438, 1.48, 1.593, 1.779, 2.062, 2.457, 2.976, 3.628, 4.425, 5.374");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.007513, 0.03037, 0.07403, 0.142, 0.2375, 0.363, 0.5213, 0.7144, 0.9446");
          values("0.136, 0.169, 0.247, 0.3722, 0.564, 0.8486, 1.24, 1.745, 2.367, 3.116",\
                 "0.136, 0.1688, 0.247, 0.3716, 0.5636, 0.848, 1.238, 1.744, 2.369, 3.116",\
                 "0.136, 0.1688, 0.247, 0.3714, 0.564, 0.8472, 1.238, 1.745, 2.37, 3.114",\
                 "0.1358, 0.169, 0.2472, 0.3722, 0.5648, 0.8484, 1.24, 1.744, 2.37, 3.116",\
                 "0.136, 0.169, 0.2468, 0.3716, 0.5634, 0.847, 1.238, 1.743, 2.37, 3.117",\
                 "0.1358, 0.1688, 0.247, 0.3716, 0.565, 0.8478, 1.238, 1.745, 2.369, 3.117",\
                 "0.1362, 0.169, 0.2472, 0.3724, 0.5642, 0.8476, 1.239, 1.745, 2.369, 3.114",\
                 "0.136, 0.1688, 0.247, 0.3734, 0.5648, 0.8474, 1.238, 1.742, 2.365, 3.113",\
                 "0.1358, 0.1688, 0.2468, 0.3734, 0.5642, 0.8478, 1.24, 1.744, 2.366, 3.111",\
                 "0.1362, 0.1688, 0.247, 0.3714, 0.5648, 0.8478, 1.237, 1.743, 2.37, 3.114");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.007513, 0.03037, 0.07403, 0.142, 0.2375, 0.363, 0.5213, 0.7144, 0.9446");
          values("0.126, 0.1688, 0.3078, 0.5994, 1.08, 1.759, 2.653, 3.776, 5.154, 6.801",\
                 "0.126, 0.1688, 0.308, 0.5992, 1.08, 1.758, 2.65, 3.777, 5.151, 6.802",\
                 "0.126, 0.1684, 0.3074, 0.5996, 1.081, 1.758, 2.653, 3.781, 5.159, 6.792",\
                 "0.1262, 0.1684, 0.3076, 0.6006, 1.08, 1.759, 2.652, 3.777, 5.151, 6.803",\
                 "0.126, 0.1688, 0.308, 0.5996, 1.08, 1.757, 2.653, 3.781, 5.159, 6.793",\
                 "0.126, 0.169, 0.3074, 0.5998, 1.08, 1.759, 2.653, 3.779, 5.157, 6.797",\
                 "0.126, 0.1686, 0.3082, 0.5998, 1.079, 1.756, 2.653, 3.781, 5.157, 6.802",\
                 "0.126, 0.1682, 0.3078, 0.6002, 1.08, 1.755, 2.649, 3.779, 5.155, 6.802",\
                 "0.126, 0.1686, 0.3076, 0.6006, 1.081, 1.756, 2.655, 3.773, 5.149, 6.79",\
                 "0.127, 0.1682, 0.308, 0.6004, 1.081, 1.758, 2.65, 3.775, 5.146, 6.792");
        }
      }

      timing() {
        related_pin : "CLK" ;
        sdf_cond : "D===1'b1 && SE===1'b1" ;
        timing_type : rising_edge ;
        when : "D&SE" ;

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.007513, 0.03037, 0.07403, 0.142, 0.2375, 0.363, 0.5213, 0.7144, 0.9446");
          values("1.156, 1.195, 1.29, 1.414, 1.568, 1.761, 2.005, 2.308, 2.679, 3.119",\
                 "1.169, 1.209, 1.304, 1.428, 1.582, 1.775, 2.019, 2.323, 2.692, 3.133",\
                 "1.219, 1.258, 1.353, 1.477, 1.631, 1.824, 2.068, 2.372, 2.742, 3.182",\
                 "1.305, 1.344, 1.44, 1.563, 1.717, 1.91, 2.154, 2.458, 2.828, 3.269",\
                 "1.39, 1.43, 1.525, 1.648, 1.802, 1.995, 2.239, 2.543, 2.913, 3.354",\
                 "1.458, 1.498, 1.592, 1.716, 1.87, 2.063, 2.307, 2.611, 2.98, 3.421",\
                 "1.506, 1.546, 1.641, 1.765, 1.918, 2.112, 2.356, 2.659, 3.029, 3.47",\
                 "1.534, 1.574, 1.669, 1.793, 1.947, 2.14, 2.384, 2.688, 3.057, 3.498",\
                 "1.543, 1.583, 1.678, 1.802, 1.955, 2.148, 2.392, 2.696, 3.066, 3.507",\
                 "1.529, 1.569, 1.664, 1.788, 1.941, 2.135, 2.379, 2.682, 3.052, 3.493");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.007513, 0.03037, 0.07403, 0.142, 0.2375, 0.363, 0.5213, 0.7144, 0.9446");
          values("1.066, 1.108, 1.221, 1.407, 1.69, 2.085, 2.604, 3.257, 4.054, 5.003",\
                 "1.08, 1.122, 1.235, 1.421, 1.704, 2.099, 2.617, 3.271, 4.068, 5.019",\
                 "1.128, 1.171, 1.283, 1.47, 1.752, 2.147, 2.666, 3.32, 4.117, 5.068",\
                 "1.213, 1.255, 1.368, 1.554, 1.836, 2.232, 2.751, 3.404, 4.2, 5.152",\
                 "1.296, 1.339, 1.451, 1.638, 1.921, 2.315, 2.834, 3.488, 4.285, 5.235",\
                 "1.363, 1.406, 1.518, 1.705, 1.987, 2.382, 2.901, 3.554, 4.352, 5.301",\
                 "1.411, 1.454, 1.567, 1.753, 2.036, 2.431, 2.95, 3.603, 4.399, 5.35",\
                 "1.44, 1.483, 1.596, 1.782, 2.065, 2.459, 2.978, 3.631, 4.429, 5.38",\
                 "1.449, 1.492, 1.605, 1.791, 2.074, 2.469, 2.987, 3.64, 4.437, 5.386",\
                 "1.437, 1.48, 1.593, 1.779, 2.062, 2.457, 2.975, 3.628, 4.425, 5.374");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.007513, 0.03037, 0.07403, 0.142, 0.2375, 0.363, 0.5213, 0.7144, 0.9446");
          values("0.1358, 0.1688, 0.2472, 0.3714, 0.5642, 0.8482, 1.239, 1.745, 2.369, 3.116",\
                 "0.136, 0.1688, 0.2472, 0.3714, 0.565, 0.848, 1.238, 1.744, 2.37, 3.117",\
                 "0.136, 0.169, 0.2474, 0.3736, 0.565, 0.8484, 1.239, 1.744, 2.37, 3.117",\
                 "0.136, 0.1688, 0.247, 0.372, 0.5638, 0.8478, 1.237, 1.743, 2.369, 3.117",\
                 "0.1362, 0.169, 0.2466, 0.372, 0.5636, 0.8484, 1.239, 1.743, 2.37, 3.117",\
                 "0.1358, 0.1686, 0.2472, 0.3712, 0.5658, 0.8488, 1.24, 1.745, 2.369, 3.112",\
                 "0.136, 0.169, 0.2472, 0.3718, 0.5638, 0.848, 1.239, 1.745, 2.37, 3.114",\
                 "0.136, 0.169, 0.247, 0.372, 0.5638, 0.8492, 1.238, 1.743, 2.365, 3.113",\
                 "0.1358, 0.169, 0.2472, 0.3718, 0.564, 0.8478, 1.239, 1.744, 2.368, 3.11",\
                 "0.1362, 0.169, 0.247, 0.3734, 0.565, 0.8484, 1.239, 1.743, 2.37, 3.114");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.007513, 0.03037, 0.07403, 0.142, 0.2375, 0.363, 0.5213, 0.7144, 0.9446");
          values("0.1262, 0.1688, 0.308, 0.5994, 1.08, 1.758, 2.65, 3.777, 5.151, 6.802",\
                 "0.126, 0.1688, 0.308, 0.5998, 1.081, 1.758, 2.653, 3.781, 5.159, 6.79",\
                 "0.126, 0.1682, 0.308, 0.5998, 1.081, 1.759, 2.653, 3.778, 5.159, 6.79",\
                 "0.1258, 0.169, 0.308, 0.5996, 1.079, 1.759, 2.65, 3.78, 5.156, 6.796",\
                 "0.1262, 0.169, 0.3082, 0.5998, 1.079, 1.759, 2.653, 3.781, 5.159, 6.802",\
                 "0.1264, 0.1684, 0.3074, 0.5998, 1.079, 1.759, 2.653, 3.779, 5.157, 6.797",\
                 "0.126, 0.1688, 0.3082, 0.5996, 1.079, 1.756, 2.651, 3.777, 5.152, 6.801",\
                 "0.126, 0.1686, 0.308, 0.6, 1.08, 1.756, 2.649, 3.777, 5.158, 6.79",\
                 "0.1262, 0.1682, 0.3078, 0.5998, 1.079, 1.757, 2.654, 3.773, 5.149, 6.796",\
                 "0.126, 0.1686, 0.3078, 0.6002, 1.08, 1.758, 2.652, 3.776, 5.146, 6.793");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.007513, 0.03037, 0.07403, 0.142, 0.2375, 0.363, 0.5213, 0.7144, 0.9446");
          values("1.156, 1.195, 1.29, 1.414, 1.568, 1.761, 2.005, 2.309, 2.679, 3.12",\
                 "1.169, 1.209, 1.304, 1.428, 1.582, 1.775, 2.019, 2.323, 2.693, 3.133",\
                 "1.219, 1.258, 1.354, 1.477, 1.631, 1.824, 2.068, 2.372, 2.742, 3.183",\
                 "1.305, 1.345, 1.44, 1.563, 1.717, 1.91, 2.154, 2.458, 2.828, 3.269",\
                 "1.39, 1.43, 1.525, 1.649, 1.802, 1.995, 2.239, 2.543, 2.913, 3.354",\
                 "1.458, 1.498, 1.593, 1.717, 1.87, 2.063, 2.307, 2.611, 2.981, 3.422",\
                 "1.506, 1.546, 1.641, 1.765, 1.919, 2.112, 2.356, 2.66, 3.03, 3.47",\
                 "1.535, 1.574, 1.67, 1.793, 1.947, 2.14, 2.384, 2.688, 3.057, 3.498",\
                 "1.543, 1.583, 1.678, 1.802, 1.955, 2.148, 2.392, 2.696, 3.066, 3.507",\
                 "1.529, 1.569, 1.664, 1.788, 1.942, 2.135, 2.379, 2.682, 3.053, 3.493");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.007513, 0.03037, 0.07403, 0.142, 0.2375, 0.363, 0.5213, 0.7144, 0.9446");
          values("1.066, 1.108, 1.221, 1.407, 1.69, 2.085, 2.604, 3.257, 4.054, 5.002",\
                 "1.08, 1.122, 1.235, 1.421, 1.704, 2.099, 2.618, 3.271, 4.068, 5.017",\
                 "1.128, 1.171, 1.283, 1.47, 1.753, 2.148, 2.667, 3.319, 4.117, 5.067",\
                 "1.213, 1.255, 1.368, 1.554, 1.837, 2.232, 2.751, 3.404, 4.201, 5.151",\
                 "1.296, 1.339, 1.451, 1.637, 1.92, 2.316, 2.834, 3.487, 4.285, 5.236",\
                 "1.363, 1.405, 1.518, 1.705, 1.987, 2.382, 2.901, 3.554, 4.352, 5.302",\
                 "1.412, 1.454, 1.567, 1.753, 2.036, 2.431, 2.95, 3.603, 4.399, 5.35",\
                 "1.44, 1.483, 1.596, 1.782, 2.065, 2.46, 2.978, 3.631, 4.429, 5.377",\
                 "1.449, 1.492, 1.605, 1.791, 2.073, 2.469, 2.987, 3.641, 4.437, 5.386",\
                 "1.438, 1.48, 1.593, 1.779, 2.062, 2.457, 2.976, 3.628, 4.425, 5.374");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.007513, 0.03037, 0.07403, 0.142, 0.2375, 0.363, 0.5213, 0.7144, 0.9446");
          values("0.1364, 0.1692, 0.247, 0.3718, 0.5638, 0.848, 1.238, 1.744, 2.37, 3.117",\
                 "0.1362, 0.169, 0.247, 0.3716, 0.5648, 0.848, 1.239, 1.744, 2.37, 3.115",\
                 "0.1364, 0.169, 0.247, 0.3714, 0.5648, 0.847, 1.239, 1.745, 2.37, 3.117",\
                 "0.1362, 0.1692, 0.247, 0.3718, 0.5658, 0.848, 1.238, 1.744, 2.37, 3.118",\
                 "0.1362, 0.1692, 0.247, 0.3726, 0.5644, 0.848, 1.24, 1.745, 2.37, 3.115",\
                 "0.136, 0.169, 0.2474, 0.3728, 0.5646, 0.8476, 1.238, 1.743, 2.37, 3.115",\
                 "0.1362, 0.169, 0.247, 0.3722, 0.564, 0.8488, 1.239, 1.744, 2.369, 3.118",\
                 "0.1362, 0.1692, 0.2472, 0.3718, 0.5648, 0.8492, 1.238, 1.743, 2.366, 3.115",\
                 "0.1362, 0.1692, 0.247, 0.3718, 0.5642, 0.847, 1.239, 1.743, 2.365, 3.111",\
                 "0.1364, 0.1692, 0.247, 0.3716, 0.565, 0.8476, 1.239, 1.745, 2.37, 3.111");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.007513, 0.03037, 0.07403, 0.142, 0.2375, 0.363, 0.5213, 0.7144, 0.9446");
          values("0.126, 0.1688, 0.3078, 0.5994, 1.08, 1.759, 2.653, 3.776, 5.154, 6.801",\
                 "0.126, 0.1688, 0.308, 0.5992, 1.08, 1.758, 2.65, 3.777, 5.151, 6.802",\
                 "0.126, 0.1684, 0.3074, 0.5996, 1.081, 1.758, 2.653, 3.781, 5.159, 6.792",\
                 "0.1262, 0.1684, 0.3076, 0.6006, 1.08, 1.759, 2.652, 3.777, 5.151, 6.803",\
                 "0.126, 0.1688, 0.308, 0.5996, 1.08, 1.757, 2.653, 3.781, 5.159, 6.793",\
                 "0.126, 0.169, 0.3074, 0.5998, 1.08, 1.759, 2.653, 3.779, 5.157, 6.797",\
                 "0.126, 0.1686, 0.3082, 0.5998, 1.079, 1.756, 2.653, 3.781, 5.157, 6.802",\
                 "0.126, 0.1682, 0.3078, 0.6002, 1.08, 1.755, 2.649, 3.779, 5.155, 6.802",\
                 "0.126, 0.1686, 0.3076, 0.6006, 1.081, 1.756, 2.655, 3.773, 5.149, 6.79",\
                 "0.127, 0.1682, 0.308, 0.6004, 1.081, 1.758, 2.65, 3.775, 5.146, 6.792");
        }
      }
    }

    pin(SE) {
      capacitance : 0.005579 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 6.8 ;
      nextstate_type : data ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!CLK&!D&!SI" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.0174, 0.01719, 0.01694, 0.01711, 0.01766, 0.01865, 0.02015, \
                  0.02215, 0.02475, 0.02799");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.0005526, 0.0004493, 0.000299, 0.0003364, 0.0007484, 0.0016, \
                  0.00289, 0.004688, 0.007016, 0.009877");
        }
      }

      internal_power() {
        when : "!CLK&!D&SI" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.05219, 0.05189, 0.05143, 0.05137, 0.05181, 0.05298, 0.05488, \
                  0.05775, 0.06169, 0.06681");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.02359, 0.02352, 0.0233, 0.0232, 0.02354, 0.02446, 0.02611, 0.02867, \
                  0.0321, 0.03651");
        }
      }

      internal_power() {
        when : "!CLK&D&!SI" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.04319, 0.04299, 0.04279, 0.04294, 0.04347, 0.04447, 0.04594, \
                  0.04788, 0.05044, 0.05364");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.038, 0.03792, 0.03769, 0.03757, 0.03779, 0.03846, 0.03962, 0.04128, \
                  0.04348, 0.04625");
        }
      }

      internal_power() {
        when : "!CLK&D&SI" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.01774, 0.0175, 0.01729, 0.01747, 0.01803, 0.01908, 0.02058, \
                  0.02261, 0.02526, 0.02852");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.0008268, 0.000732, 0.0005757, 0.0006081, 0.001012, 0.001842, \
                  0.003118, 0.004892, 0.007203, 0.01006");
        }
      }

      internal_power() {
        when : "CLK&!D&!SI" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.01735, 0.01712, 0.01689, 0.01705, 0.0176, 0.0186, 0.02008, 0.0221, \
                  0.02472, 0.02798");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.0004768, 0.000376, 0.0002275, 0.0002676, 0.0006763, 0.001537, \
                  0.002839, 0.004647, 0.006969, 0.009843");
        }
      }

      internal_power() {
        when : "CLK&!D&SI" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.02236, 0.02212, 0.02183, 0.022, 0.02258, 0.02362, 0.0252, 0.02745, \
                  0.03032, 0.03381");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("-0.0002042, -0.000307, -0.0005572, -0.0006499, -0.0003073, 0.0005341, \
                  0.001902, 0.003858, 0.006426, 0.009597");
        }
      }

      internal_power() {
        when : "CLK&D&!SI" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.01865, 0.01844, 0.01821, 0.01835, 0.01887, 0.01982, 0.02127, \
                  0.02324, 0.02579, 0.02899");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.006015, 0.005918, 0.005769, 0.005803, 0.006184, 0.007016, 0.0083, \
                  0.01009, 0.0124, 0.01528");
        }
      }

      internal_power() {
        when : "CLK&D&SI" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.01757, 0.01734, 0.01712, 0.01731, 0.01788, 0.01891, 0.02043, \
                  0.02248, 0.02512, 0.0284");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.0007581, 0.0006547, 0.0004966, 0.0005412, 0.0009387, 0.001771, \
                  0.003043, 0.00483, 0.007143, 0.01001");
        }
      }

      timing() {
        related_pin : "CLK" ;
        sdf_cond : "ENABLE_NOT_D_AND_SI === 1'b1" ;
        timing_type : hold_rising ;
        when : "!D&SI" ;

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("-0.052, -0.038, 0.005, 0.075, 0.143, 0.203, 0.235, 0.255, 0.243, 0.219",\
                 "-0.061, -0.052, -0.007, 0.061, 0.133, 0.186, 0.223, 0.246, 0.23, 0.21",\
                 "-0.112, -0.099, -0.055, 0.017, 0.085, 0.136, 0.169, 0.188, 0.183, 0.156",\
                 "-0.208, -0.193, -0.145, -0.083, -0.014, 0.042, 0.076, 0.096, 0.088, 0.067",\
                 "-0.316, -0.306, -0.264, -0.194, -0.126, -0.074, -0.034, -0.015, -0.025, -0.046",\
                 "-0.447, -0.426, -0.391, -0.326, -0.258, -0.199, -0.167, -0.144, -0.148, -0.172",\
                 "-0.583, -0.569, -0.535, -0.47, -0.398, -0.351, -0.317, -0.283, -0.294, -0.31",\
                 "-0.748, -0.735, -0.697, -0.638, -0.572, -0.522, -0.48, -0.447, -0.459, -0.47",\
                 "-0.93, -0.917, -0.884, -0.827, -0.768, -0.721, -0.685, -0.648, -0.656, -0.66",\
                 "-1.133, -1.122, -1.097, -1.049, -0.989, -0.951, -0.911, -0.869, -0.871, -0.878");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("-0.309, -0.296, -0.257, -0.228, -0.228, -0.239, -0.269, -0.314, -0.387, -0.478",\
                 "-0.325, -0.307, -0.276, -0.243, -0.238, -0.247, -0.282, -0.33, -0.399, -0.492",\
                 "-0.354, -0.347, -0.307, -0.275, -0.274, -0.284, -0.313, -0.361, -0.432, -0.528",\
                 "-0.418, -0.398, -0.369, -0.337, -0.325, -0.338, -0.366, -0.412, -0.478, -0.566",\
                 "-0.483, -0.472, -0.436, -0.401, -0.388, -0.393, -0.42, -0.465, -0.524, -0.615",\
                 "-0.541, -0.522, -0.489, -0.456, -0.435, -0.442, -0.463, -0.501, -0.566, -0.65",\
                 "-0.576, -0.562, -0.528, -0.487, -0.472, -0.47, -0.484, -0.525, -0.586, -0.668",\
                 "-0.587, -0.572, -0.538, -0.498, -0.483, -0.475, -0.496, -0.529, -0.588, -0.673",\
                 "-0.574, -0.557, -0.52, -0.485, -0.466, -0.462, -0.478, -0.513, -0.569, -0.653",\
                 "-0.527, -0.511, -0.473, -0.442, -0.42, -0.426, -0.44, -0.476, -0.528, -0.61");
        }
      }

      timing() {
        related_pin : "CLK" ;
        sdf_cond : "ENABLE_D_AND_NOT_SI === 1'b1" ;
        timing_type : hold_rising ;
        when : "D&!SI" ;

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("-0.544, -0.534, -0.499, -0.462, -0.457, -0.464, -0.501, -0.551, -0.622, -0.719",\
                 "-0.562, -0.546, -0.508, -0.481, -0.475, -0.487, -0.518, -0.569, -0.636, -0.726",\
                 "-0.615, -0.606, -0.573, -0.539, -0.532, -0.544, -0.576, -0.63, -0.696, -0.793",\
                 "-0.737, -0.727, -0.691, -0.661, -0.653, -0.664, -0.696, -0.744, -0.813, -0.905",\
                 "-0.885, -0.876, -0.838, -0.807, -0.798, -0.81, -0.843, -0.892, -0.962, -1.052",\
                 "-1.057, -1.041, -1.009, -0.978, -0.972, -0.981, -1.009, -1.06, -1.126, -1.222",\
                 "-1.257, -1.241, -1.208, -1.17, -1.161, -1.177, -1.207, -1.257, -1.32, -1.417",\
                 "-1.477, -1.463, -1.425, -1.398, -1.384, -1.397, -1.423, -1.469, -1.539, -1.63",\
                 "-1.726, -1.713, -1.677, -1.644, -1.636, -1.64, -1.673, -1.722, -1.788, -1.877",\
                 "-2.013, -1.999, -1.961, -1.932, -1.919, -1.923, -1.95, -1.998, -2.066, -2.153");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("-0.155, -0.144, -0.102, -0.034, 0.038, 0.09, 0.126, 0.141, 0.135, 0.111",\
                 "-0.173, -0.157, -0.118, -0.046, 0.024, 0.08, 0.112, 0.131, 0.121, 0.101",\
                 "-0.209, -0.199, -0.157, -0.09, -0.023, 0.033, 0.067, 0.088, 0.084, 0.053",\
                 "-0.262, -0.242, -0.203, -0.14, -0.066, -0.018, 0.02, 0.037, 0.032, 0.005",\
                 "-0.304, -0.293, -0.25, -0.177, -0.115, -0.06, -0.025, -0.009, -0.01, -0.036",\
                 "-0.324, -0.311, -0.266, -0.202, -0.13, -0.078, -0.042, -0.023, -0.031, -0.058",\
                 "-0.31, -0.299, -0.258, -0.189, -0.123, -0.071, -0.039, -0.019, -0.021, -0.049",\
                 "-0.274, -0.265, -0.218, -0.156, -0.092, -0.037, -0.005, 0.018, 0.008, -0.013",\
                 "-0.218, -0.204, -0.163, -0.095, -0.028, 0.023, 0.059, 0.078, 0.074, 0.048",\
                 "-0.12, -0.11, -0.071, -0.005, 0.064, 0.115, 0.15, 0.171, 0.166, 0.138");
        }
      }

      timing() {
        related_pin : "CLK" ;
        sdf_cond : "ENABLE_NOT_D_AND_SI === 1'b1" ;
        timing_type : setup_rising ;
        when : "!D&SI" ;

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.945, 0.93, 0.866, 0.757, 0.642, 0.549, 0.487, 0.446, 0.419, 0.428",\
                 "0.952, 0.943, 0.878, 0.769, 0.654, 0.564, 0.497, 0.454, 0.431, 0.441",\
                 "1.002, 0.981, 0.927, 0.812, 0.697, 0.606, 0.539, 0.5, 0.478, 0.485",\
                 "1.087, 1.072, 1.013, 0.895, 0.783, 0.694, 0.631, 0.583, 0.568, 0.583",\
                 "1.219, 1.202, 1.139, 1.032, 0.913, 0.825, 0.76, 0.72, 0.705, 0.71",\
                 "1.395, 1.378, 1.32, 1.204, 1.1, 1.007, 0.939, 0.905, 0.883, 0.897",\
                 "1.611, 1.601, 1.543, 1.427, 1.317, 1.226, 1.162, 1.124, 1.104, 1.11",\
                 "1.866, 1.856, 1.793, 1.681, 1.573, 1.478, 1.414, 1.377, 1.356, 1.363",\
                 "2.159, 2.15, 2.087, 1.979, 1.863, 1.774, 1.711, 1.668, 1.646, 1.654",\
                 "2.503, 2.492, 2.43, 2.315, 2.204, 2.114, 2.045, 2.004, 1.98, 1.99");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.75, 0.738, 0.682, 0.594, 0.519, 0.484, 0.473, 0.503, 0.553, 0.635",\
                 "0.761, 0.748, 0.693, 0.605, 0.533, 0.497, 0.483, 0.511, 0.566, 0.65",\
                 "0.799, 0.785, 0.736, 0.646, 0.568, 0.528, 0.524, 0.549, 0.604, 0.69",\
                 "0.861, 0.842, 0.789, 0.705, 0.627, 0.587, 0.575, 0.599, 0.652, 0.735",\
                 "0.934, 0.92, 0.866, 0.781, 0.705, 0.662, 0.649, 0.667, 0.713, 0.795",\
                 "1.011, 0.994, 0.941, 0.854, 0.782, 0.73, 0.712, 0.73, 0.767, 0.841",\
                 "1.06, 1.047, 0.995, 0.912, 0.83, 0.783, 0.761, 0.773, 0.812, 0.877",\
                 "1.098, 1.08, 1.025, 0.937, 0.868, 0.818, 0.791, 0.802, 0.83, 0.9",\
                 "1.103, 1.09, 1.036, 0.946, 0.874, 0.821, 0.798, 0.803, 0.829, 0.896",\
                 "1.083, 1.071, 1.019, 0.932, 0.856, 0.801, 0.774, 0.78, 0.807, 0.869");
        }
      }

      timing() {
        related_pin : "CLK" ;
        sdf_cond : "ENABLE_D_AND_NOT_SI === 1'b1" ;
        timing_type : setup_rising ;
        when : "D&!SI" ;

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.99, 0.976, 0.924, 0.835, 0.76, 0.718, 0.711, 0.74, 0.788, 0.876",\
                 "1.005, 0.995, 0.936, 0.851, 0.776, 0.738, 0.725, 0.751, 0.804, 0.893",\
                 "1.07, 1.049, 0.995, 0.909, 0.833, 0.793, 0.787, 0.809, 0.862, 0.955",\
                 "1.188, 1.171, 1.111, 1.029, 0.955, 0.907, 0.905, 0.926, 0.98, 1.065",\
                 "1.33, 1.317, 1.261, 1.179, 1.099, 1.058, 1.054, 1.075, 1.128, 1.213",\
                 "1.509, 1.494, 1.435, 1.346, 1.27, 1.233, 1.219, 1.248, 1.302, 1.381",\
                 "1.7, 1.677, 1.631, 1.54, 1.464, 1.42, 1.413, 1.443, 1.49, 1.575",\
                 "1.913, 1.904, 1.853, 1.756, 1.686, 1.639, 1.64, 1.659, 1.711, 1.794",\
                 "2.172, 2.15, 2.1, 2.014, 1.939, 1.891, 1.89, 1.91, 1.961, 2.041",\
                 "2.453, 2.442, 2.379, 2.297, 2.223, 2.175, 2.165, 2.188, 2.238, 2.323");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("1.093, 1.082, 1.021, 0.905, 0.791, 0.7, 0.637, 0.598, 0.572, 0.586",\
                 "1.11, 1.092, 1.031, 0.925, 0.808, 0.718, 0.649, 0.607, 0.585, 0.6",\
                 "1.147, 1.134, 1.077, 0.958, 0.847, 0.757, 0.692, 0.649, 0.63, 0.639",\
                 "1.196, 1.179, 1.12, 1.003, 0.895, 0.8, 0.736, 0.69, 0.673, 0.681",\
                 "1.219, 1.202, 1.146, 1.032, 0.918, 0.825, 0.76, 0.72, 0.697, 0.71",\
                 "1.236, 1.215, 1.159, 1.044, 0.937, 0.851, 0.782, 0.737, 0.725, 0.733",\
                 "1.223, 1.213, 1.156, 1.041, 0.931, 0.843, 0.781, 0.742, 0.718, 0.729",\
                 "1.193, 1.176, 1.115, 1.006, 0.898, 0.811, 0.752, 0.711, 0.685, 0.703",\
                 "1.122, 1.11, 1.056, 0.946, 0.836, 0.755, 0.694, 0.653, 0.631, 0.646",\
                 "1.033, 1.021, 0.959, 0.852, 0.751, 0.657, 0.598, 0.564, 0.542, 0.552");
        }
      }
    }

    pin(SI) {
      capacitance : 0.002497 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 6.8 ;
      nextstate_type : data ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!CLK&!D&!SE" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.002911, 0.00289, 0.002886, 0.002879, 0.002883, 0.002886, 0.002889, \
                  0.002889, 0.002887, 0.002886");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("-0.002763, -0.002759, -0.00279, -0.00281, -0.002821, -0.002829, \
                  -0.002838, -0.002845, -0.002846, -0.002849");
        }
      }

      internal_power() {
        when : "!CLK&!D&SE" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.04165, 0.04154, 0.04141, 0.04127, 0.04117, 0.04122, 0.04151, \
                  0.04219, 0.04343, 0.04535");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.02265, 0.02254, 0.0224, 0.02226, 0.02219, 0.02224, 0.02255, \
                  0.02322, 0.02434, 0.02604");
        }
      }

      internal_power() {
        when : "!CLK&D&!SE" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.002889, 0.00289, 0.002882, 0.002882, 0.00289, 0.002879, 0.002888, \
                  0.002888, 0.002887, 0.002888");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("-0.002637, -0.002716, -0.002784, -0.002806, -0.002816, -0.002835, \
                  -0.00284, -0.002845, -0.002845, -0.002849");
        }
      }

      internal_power() {
        when : "!CLK&D&SE" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.04165, 0.04155, 0.04141, 0.04128, 0.04118, 0.04122, 0.04152, \
                  0.04218, 0.04343, 0.04536");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.02266, 0.02253, 0.02239, 0.02226, 0.0222, 0.02224, 0.02257, \
                  0.02321, 0.02437, 0.02605");
        }
      }

      internal_power() {
        when : "CLK&!D&!SE" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.0029, 0.002888, 0.002885, 0.002883, 0.002881, 0.002884, 0.002889, \
                  0.002888, 0.002887, 0.002886");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("-0.002765, -0.00276, -0.002786, -0.002809, -0.002822, -0.002826, \
                  -0.002842, -0.002845, -0.002844, -0.002848");
        }
      }

      internal_power() {
        when : "CLK&!D&SE" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.008816, 0.008815, 0.008819, 0.008812, 0.0088, 0.008799, 0.008802, \
                  0.008806, 0.008802, 0.008812");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("-0.002241, -0.002301, -0.002404, -0.002495, -0.002566, -0.002617, \
                  -0.002657, -0.002682, -0.0027, -0.002714");
        }
      }

      internal_power() {
        when : "CLK&D&!SE" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.002881, 0.002886, 0.002885, 0.002886, 0.002889, 0.002882, 0.002889, \
                  0.002886, 0.002887, 0.002887");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("-0.002644, -0.002724, -0.002789, -0.002809, -0.002819, -0.002828, \
                  -0.002842, -0.002836, -0.002846, -0.002848");
        }
      }

      internal_power() {
        when : "CLK&D&SE" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.008816, 0.008815, 0.008819, 0.008812, 0.0088, 0.008798, 0.008799, \
                  0.008802, 0.008804, 0.008811");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("-0.002243, -0.002301, -0.002407, -0.002495, -0.002565, -0.002617, \
                  -0.002657, -0.002682, -0.002701, -0.002714");
        }
      }

      timing() {
        related_pin : "CLK" ;
        sdf_cond : "ENABLE_NOT_D_AND_SE === 1'b1" ;
        timing_type : hold_rising ;
        when : "!D&SE" ;

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("-0.126, -0.111, -0.073, -0.01, 0.063, 0.118, 0.147, 0.169, 0.161, 0.136",\
                 "-0.14, -0.127, -0.086, -0.021, 0.043, 0.1, 0.133, 0.159, 0.147, 0.127",\
                 "-0.189, -0.173, -0.13, -0.07, -0.001, 0.048, 0.089, 0.108, 0.097, 0.079",\
                 "-0.262, -0.25, -0.213, -0.146, -0.083, -0.029, 0.004, 0.027, 0.018, -0.004",\
                 "-0.365, -0.351, -0.307, -0.246, -0.18, -0.124, -0.089, -0.068, -0.078, -0.103",\
                 "-0.465, -0.455, -0.417, -0.35, -0.286, -0.234, -0.199, -0.178, -0.181, -0.208",\
                 "-0.576, -0.562, -0.528, -0.462, -0.398, -0.346, -0.317, -0.291, -0.294, -0.321",\
                 "-0.7, -0.687, -0.657, -0.595, -0.531, -0.475, -0.442, -0.411, -0.427, -0.444",\
                 "-0.835, -0.821, -0.791, -0.737, -0.677, -0.62, -0.581, -0.551, -0.563, -0.574",\
                 "-0.992, -0.971, -0.952, -0.897, -0.837, -0.791, -0.758, -0.711, -0.721, -0.732");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("-0.366, -0.355, -0.315, -0.283, -0.284, -0.295, -0.323, -0.38, -0.45, -0.545",\
                 "-0.378, -0.359, -0.329, -0.292, -0.289, -0.304, -0.338, -0.387, -0.457, -0.55",\
                 "-0.402, -0.389, -0.355, -0.324, -0.317, -0.331, -0.364, -0.41, -0.485, -0.58",\
                 "-0.441, -0.431, -0.389, -0.362, -0.351, -0.367, -0.399, -0.45, -0.52, -0.611",\
                 "-0.489, -0.479, -0.436, -0.41, -0.399, -0.407, -0.438, -0.489, -0.554, -0.653",\
                 "-0.522, -0.513, -0.474, -0.445, -0.427, -0.434, -0.463, -0.514, -0.582, -0.676",\
                 "-0.542, -0.528, -0.491, -0.462, -0.444, -0.449, -0.478, -0.517, -0.586, -0.679",\
                 "-0.539, -0.524, -0.488, -0.456, -0.442, -0.441, -0.465, -0.511, -0.572, -0.66",\
                 "-0.51, -0.5, -0.461, -0.43, -0.413, -0.42, -0.44, -0.481, -0.544, -0.632",\
                 "-0.452, -0.445, -0.404, -0.371, -0.363, -0.364, -0.389, -0.425, -0.485, -0.569");
        }
      }

      timing() {
        related_pin : "CLK" ;
        sdf_cond : "ENABLE_D_AND_SE === 1'b1" ;
        timing_type : hold_rising ;
        when : "D&SE" ;

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("-0.126, -0.111, -0.073, -0.01, 0.063, 0.118, 0.147, 0.169, 0.161, 0.136",\
                 "-0.14, -0.127, -0.086, -0.021, 0.043, 0.1, 0.133, 0.159, 0.147, 0.127",\
                 "-0.189, -0.173, -0.13, -0.061, -0.001, 0.048, 0.089, 0.108, 0.097, 0.07",\
                 "-0.262, -0.25, -0.213, -0.146, -0.083, -0.029, 0.004, 0.021, 0.018, -0.004",\
                 "-0.365, -0.351, -0.307, -0.246, -0.18, -0.124, -0.089, -0.074, -0.078, -0.103",\
                 "-0.465, -0.455, -0.417, -0.35, -0.286, -0.234, -0.199, -0.178, -0.181, -0.208",\
                 "-0.576, -0.562, -0.528, -0.462, -0.398, -0.346, -0.317, -0.291, -0.294, -0.321",\
                 "-0.7, -0.687, -0.657, -0.595, -0.531, -0.475, -0.442, -0.42, -0.422, -0.444",\
                 "-0.835, -0.827, -0.798, -0.737, -0.677, -0.62, -0.581, -0.562, -0.563, -0.574",\
                 "-0.984, -0.971, -0.952, -0.897, -0.837, -0.791, -0.758, -0.723, -0.721, -0.732");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("-0.366, -0.355, -0.315, -0.283, -0.284, -0.295, -0.323, -0.38, -0.45, -0.545",\
                 "-0.378, -0.359, -0.329, -0.292, -0.289, -0.304, -0.338, -0.387, -0.457, -0.55",\
                 "-0.402, -0.389, -0.355, -0.324, -0.317, -0.331, -0.364, -0.41, -0.485, -0.58",\
                 "-0.441, -0.431, -0.389, -0.362, -0.351, -0.367, -0.399, -0.45, -0.52, -0.611",\
                 "-0.489, -0.479, -0.436, -0.41, -0.399, -0.407, -0.438, -0.489, -0.554, -0.653",\
                 "-0.522, -0.513, -0.474, -0.445, -0.427, -0.434, -0.463, -0.514, -0.582, -0.676",\
                 "-0.542, -0.528, -0.491, -0.454, -0.444, -0.449, -0.478, -0.517, -0.586, -0.679",\
                 "-0.539, -0.524, -0.488, -0.456, -0.442, -0.441, -0.465, -0.511, -0.572, -0.66",\
                 "-0.51, -0.5, -0.461, -0.43, -0.413, -0.42, -0.44, -0.481, -0.544, -0.632",\
                 "-0.452, -0.445, -0.404, -0.371, -0.363, -0.364, -0.389, -0.425, -0.485, -0.569");
        }
      }

      timing() {
        related_pin : "CLK" ;
        sdf_cond : "ENABLE_NOT_D_AND_SE === 1'b1" ;
        timing_type : setup_rising ;
        when : "!D&SE" ;

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("1.071, 1.055, 1.002, 0.882, 0.766, 0.681, 0.609, 0.57, 0.553, 0.561",\
                 "1.084, 1.07, 1.01, 0.901, 0.782, 0.689, 0.628, 0.588, 0.56, 0.575",\
                 "1.128, 1.113, 1.057, 0.939, 0.826, 0.736, 0.67, 0.629, 0.61, 0.622",\
                 "1.211, 1.196, 1.14, 1.022, 0.904, 0.818, 0.752, 0.712, 0.694, 0.699",\
                 "1.317, 1.304, 1.246, 1.136, 1.017, 0.931, 0.861, 0.821, 0.803, 0.814",\
                 "1.471, 1.455, 1.393, 1.281, 1.171, 1.077, 1.009, 0.972, 0.951, 0.959",\
                 "1.646, 1.635, 1.572, 1.459, 1.344, 1.253, 1.187, 1.147, 1.132, 1.138",\
                 "1.856, 1.837, 1.783, 1.66, 1.55, 1.457, 1.391, 1.349, 1.33, 1.338",\
                 "2.089, 2.079, 2.014, 1.902, 1.795, 1.699, 1.636, 1.588, 1.565, 1.569",\
                 "2.378, 2.358, 2.302, 2.19, 2.071, 1.975, 1.909, 1.864, 1.837, 1.844");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.813, 0.798, 0.74, 0.656, 0.58, 0.54, 0.534, 0.56, 0.61, 0.702",\
                 "0.82, 0.808, 0.751, 0.662, 0.59, 0.545, 0.538, 0.569, 0.624, 0.709",\
                 "0.847, 0.833, 0.777, 0.695, 0.618, 0.57, 0.568, 0.599, 0.65, 0.733",\
                 "0.885, 0.875, 0.818, 0.73, 0.662, 0.611, 0.607, 0.637, 0.687, 0.77",\
                 "0.94, 0.927, 0.874, 0.79, 0.711, 0.669, 0.658, 0.678, 0.735, 0.814",\
                 "0.992, 0.975, 0.92, 0.83, 0.76, 0.712, 0.701, 0.723, 0.767, 0.846",\
                 "1.019, 1.005, 0.951, 0.864, 0.793, 0.746, 0.729, 0.75, 0.793, 0.866",\
                 "1.041, 1.022, 0.966, 0.878, 0.809, 0.757, 0.737, 0.757, 0.792, 0.862",\
                 "1.033, 1.02, 0.963, 0.876, 0.798, 0.755, 0.732, 0.739, 0.773, 0.846",\
                 "1, 0.987, 0.934, 0.843, 0.77, 0.714, 0.695, 0.704, 0.735, 0.804");
        }
      }

      timing() {
        related_pin : "CLK" ;
        sdf_cond : "ENABLE_D_AND_SE === 1'b1" ;
        timing_type : setup_rising ;
        when : "D&SE" ;

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("1.071, 1.055, 1.002, 0.882, 0.772, 0.681, 0.609, 0.57, 0.553, 0.561",\
                 "1.084, 1.07, 1.01, 0.901, 0.782, 0.689, 0.628, 0.588, 0.56, 0.575",\
                 "1.128, 1.113, 1.057, 0.939, 0.833, 0.736, 0.67, 0.629, 0.61, 0.622",\
                 "1.211, 1.196, 1.14, 1.022, 0.904, 0.818, 0.752, 0.706, 0.687, 0.699",\
                 "1.324, 1.304, 1.246, 1.136, 1.017, 0.924, 0.861, 0.821, 0.803, 0.814",\
                 "1.471, 1.455, 1.393, 1.281, 1.171, 1.077, 1.009, 0.972, 0.951, 0.959",\
                 "1.646, 1.635, 1.572, 1.459, 1.344, 1.258, 1.194, 1.147, 1.132, 1.138",\
                 "1.856, 1.837, 1.783, 1.66, 1.55, 1.464, 1.391, 1.349, 1.33, 1.338",\
                 "2.089, 2.079, 2.014, 1.902, 1.795, 1.699, 1.636, 1.588, 1.565, 1.569",\
                 "2.378, 2.358, 2.302, 2.19, 2.071, 1.975, 1.909, 1.864, 1.837, 1.844");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.813, 0.798, 0.74, 0.656, 0.58, 0.54, 0.534, 0.56, 0.616, 0.702",\
                 "0.82, 0.808, 0.751, 0.662, 0.59, 0.545, 0.538, 0.569, 0.624, 0.709",\
                 "0.847, 0.833, 0.777, 0.695, 0.618, 0.57, 0.568, 0.599, 0.65, 0.733",\
                 "0.885, 0.875, 0.818, 0.73, 0.662, 0.611, 0.607, 0.637, 0.687, 0.77",\
                 "0.94, 0.927, 0.874, 0.79, 0.711, 0.669, 0.658, 0.678, 0.735, 0.814",\
                 "0.992, 0.975, 0.92, 0.83, 0.76, 0.712, 0.701, 0.723, 0.767, 0.846",\
                 "1.019, 1.005, 0.951, 0.864, 0.793, 0.746, 0.729, 0.75, 0.793, 0.866",\
                 "1.041, 1.022, 0.966, 0.878, 0.809, 0.757, 0.737, 0.757, 0.792, 0.868",\
                 "1.033, 1.02, 0.963, 0.876, 0.798, 0.755, 0.732, 0.739, 0.773, 0.846",\
                 "1, 0.987, 0.934, 0.843, 0.77, 0.714, 0.695, 0.704, 0.735, 0.804");
        }
      }
    }

    test_cell() {

      pin(SI) {
        direction : input ;
        signal_type : test_scan_in ;
      }

      pin(SE) {
        direction : input ;
        signal_type : test_scan_enable ;
      }

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

      pin(CLK) {
        clock : true ;
        direction : input ;
      }

      pin(D) {
        direction : input ;
      }

      pin(Q) {
        direction : output ;
        function : IQ1 ;
        signal_type : test_scan_out ;
      }
    }
  }

