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

    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.0003678534" ;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    pin(CLK) {
      capacitance : 0.00313 ;
      clock : true ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 25 ;
      min_period : 14.34 ;
      min_pulse_width_high : 3.929 ;
      min_pulse_width_low : 7.17 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.02839, 0.02832, 0.02814, 0.02796, 0.02783, 0.02776, 0.02776, \
                  0.02781, 0.02769, 0.01582");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.02305, 0.02302, 0.02289, 0.02269, 0.02253, 0.02242, 0.02238, \
                  0.0224, 0.02254, 0.02292");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.02839, 0.02832, 0.02814, 0.02796, 0.02783, 0.02776, 0.02776, \
                  0.02782, 0.02768, 0.01582");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.02305, 0.02301, 0.02289, 0.02269, 0.02252, 0.02241, 0.02238, \
                  0.02241, 0.02254, 0.02293");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.0284, 0.02833, 0.02816, 0.02797, 0.02783, 0.02777, 0.02777, \
                  0.02782, 0.02769, 0.01582");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.02304, 0.02301, 0.02288, 0.02269, 0.02252, 0.02241, 0.02238, \
                  0.0224, 0.02254, 0.02292");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.03004, 0.02997, 0.02979, 0.0296, 0.02946, 0.02938, 0.02935, \
                  0.02937, 0.02919, 0.01589");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.02324, 0.02321, 0.02309, 0.02289, 0.02272, 0.02262, 0.02257, \
                  0.02259, 0.02275, 0.02315");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.03005, 0.02998, 0.0298, 0.02961, 0.02947, 0.0294, 0.02936, 0.02938, \
                  0.02919, 0.01589");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.02324, 0.02321, 0.02309, 0.02289, 0.02271, 0.02261, 0.02257, \
                  0.02261, 0.02273, 0.02314");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.03005, 0.02998, 0.0298, 0.02961, 0.02947, 0.0294, 0.02936, 0.02938, \
                  0.02919, 0.01589");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.02324, 0.0232, 0.02309, 0.02288, 0.02271, 0.02261, 0.02257, \
                  0.02261, 0.02273, 0.02314");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.0284, 0.02833, 0.02815, 0.02797, 0.02784, 0.02777, 0.02777, \
                  0.02782, 0.02769, 0.01582");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.02305, 0.02301, 0.02289, 0.02268, 0.02252, 0.02242, 0.02237, \
                  0.0224, 0.02253, 0.02292");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.03004, 0.02998, 0.0298, 0.0296, 0.02947, 0.02939, 0.02936, 0.02937, \
                  0.02919, 0.01589");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.02324, 0.02321, 0.02309, 0.02289, 0.02272, 0.02262, 0.02258, \
                  0.02261, 0.02274, 0.02314");
        }
      }

      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("7.17");
        }

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

      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("7.17");
        }

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

      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("7.17");
        }

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

      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("4.996");
        }

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

      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("5.015");
        }

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

      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("5.015");
        }

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

      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("7.17");
        }

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

      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("4.996");
        }

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

      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("14.33");
        }
      }

      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("14.33");
        }
      }

      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("14.34");
        }
      }

      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("9.901");
        }
      }

      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("9.944");
        }
      }

      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("9.936");
        }
      }

      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("14.34");
        }
      }

      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("9.901");
        }
      }
    }

    pin(D) {
      capacitance : 0.002461 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 25 ;
      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.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.02543, 0.02533, 0.02525, 0.02518, 0.02509, 0.02498, 0.02479, \
                  0.02412, 0.01742, 0.006313");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.01616, 0.0161, 0.01602, 0.01595, 0.01588, 0.01581, 0.01574, \
                  0.01566, 0.01561, 0.01566");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.02543, 0.02533, 0.02525, 0.02518, 0.02509, 0.02498, 0.02479, \
                  0.02412, 0.01742, 0.006313");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.01615, 0.01609, 0.01601, 0.01595, 0.01588, 0.01581, 0.01573, \
                  0.01566, 0.01561, 0.01566");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.001673, 0.001672, 0.001671, 0.001673, 0.001672, 0.001672, 0.001673, \
                  0.001673, 0.001577, 0.001182");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("-0.001532, -0.001545, -0.001573, -0.001602, -0.001612, -0.001621, \
                  -0.001627, -0.001629, -0.001584, -0.001387");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.00167, 0.001675, 0.00167, 0.001675, 0.001674, 0.001675, 0.001675, \
                  0.001673, 0.001579, 0.001185");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("-0.001525, -0.001543, -0.001574, -0.001601, -0.001614, -0.001621, \
                  -0.001626, -0.001629, -0.001585, -0.001387");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.005797, 0.00579, 0.005778, 0.005775, 0.005766, 0.005758, 0.005754, \
                  0.005756, 0.005649, 0.00503");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("-0.0005381, -0.0005691, -0.0006094, -0.0006492, -0.0006865, -0.0007138, \
                  -0.0007373, -0.0007526, -0.000721, -0.0005463");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.005797, 0.00579, 0.005777, 0.005772, 0.005767, 0.005759, 0.005754, \
                  0.005756, 0.005649, 0.00503");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("-0.0005407, -0.0005717, -0.000612, -0.0006511, -0.0006895, -0.0007165, \
                  -0.0007396, -0.000754, -0.0007229, -0.0005489");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.001669, 0.001674, 0.00167, 0.001669, 0.001672, 0.001674, 0.001673, \
                  0.001672, 0.001577, 0.001183");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("-0.001531, -0.001548, -0.001574, -0.001596, -0.001614, -0.001622, \
                  -0.001626, -0.00163, -0.001585, -0.001387");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.001671, 0.001673, 0.001671, 0.001673, 0.001675, 0.001673, 0.001673, \
                  0.001674, 0.001579, 0.001184");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("-0.001525, -0.001544, -0.001574, -0.001595, -0.001614, -0.001622, \
                  -0.001626, -0.001631, -0.001585, -0.001387");
        }
      }

      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.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("-0.716, -0.649, -0.443, -0.067, 0.453, 1.011, 1.562, 2.086, 2.56, 3.004",\
                 "-0.766, -0.707, -0.497, -0.12, 0.405, 0.95, 1.498, 2.028, 2.506, 2.949",\
                 "-1.02, -0.956, -0.742, -0.367, 0.148, 0.688, 1.227, 1.753, 2.233, 2.676",\
                 "-1.455, -1.389, -1.182, -0.792, -0.291, 0.248, 0.781, 1.301, 1.781, 2.221",\
                 "-2.072, -2.014, -1.802, -1.417, -0.911, -0.383, 0.147, 0.653, 1.133, 1.57",\
                 "-2.835, -2.766, -2.565, -2.19, -1.681, -1.158, -0.636, -0.134, 0.339, 0.775",\
                 "-3.694, -3.626, -3.428, -3.06, -2.557, -2.042, -1.529, -1.032, -0.568, -0.13",\
                 "-4.643, -4.574, -4.383, -4.022, -3.529, -3.019, -2.51, -2.024, -1.562, -1.132",\
                 "-5.685, -5.614, -5.427, -5.079, -4.584, -4.09, -3.58, -3.093, -2.644, -2.215",\
                 "-6.797, -6.73, -6.548, -6.208, -5.736, -5.238, -4.748, -4.269, -3.821, -3.402");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("-1.677, -1.608, -1.402, -1.143, -0.91, -0.705, -0.524, -0.372, -0.263, -0.203",\
                 "-1.724, -1.664, -1.456, -1.199, -0.967, -0.756, -0.577, -0.427, -0.319, -0.258",\
                 "-1.877, -1.81, -1.605, -1.343, -1.117, -0.904, -0.723, -0.571, -0.464, -0.409",\
                 "-2.121, -2.055, -1.846, -1.584, -1.362, -1.147, -0.965, -0.81, -0.707, -0.65",\
                 "-2.46, -2.399, -2.191, -1.928, -1.694, -1.476, -1.29, -1.131, -1.017, -0.955",\
                 "-2.827, -2.758, -2.547, -2.29, -2.049, -1.834, -1.639, -1.48, -1.361, -1.296",\
                 "-3.173, -3.107, -2.903, -2.637, -2.398, -2.175, -1.974, -1.809, -1.689, -1.621",\
                 "-3.496, -3.43, -3.225, -2.961, -2.72, -2.489, -2.282, -2.105, -1.977, -1.904",\
                 "-3.768, -3.702, -3.502, -3.247, -2.999, -2.755, -2.543, -2.359, -2.225, -2.138",\
                 "-3.967, -3.903, -3.707, -3.465, -3.211, -2.965, -2.746, -2.553, -2.404, -2.312");
        }
      }

      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.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("-0.716, -0.649, -0.443, -0.067, 0.463, 1.003, 1.556, 2.086, 2.565, 3.004",\
                 "-0.766, -0.701, -0.491, -0.114, 0.405, 0.95, 1.498, 2.028, 2.506, 2.942",\
                 "-1.02, -0.956, -0.742, -0.36, 0.148, 0.679, 1.227, 1.753, 2.238, 2.676",\
                 "-1.455, -1.389, -1.182, -0.792, -0.284, 0.238, 0.781, 1.301, 1.781, 2.221",\
                 "-2.072, -2.014, -1.802, -1.417, -0.911, -0.389, 0.139, 0.653, 1.132, 1.57",\
                 "-2.835, -2.766, -2.565, -2.18, -1.681, -1.158, -0.636, -0.14, 0.339, 0.775",\
                 "-3.694, -3.626, -3.428, -3.053, -2.557, -2.042, -1.523, -1.032, -0.568, -0.135",\
                 "-4.643, -4.582, -4.383, -4.022, -3.529, -3.025, -2.51, -2.024, -1.562, -1.132",\
                 "-5.68, -5.62, -5.421, -5.073, -4.591, -4.097, -3.58, -3.093, -2.644, -2.222",\
                 "-6.797, -6.73, -6.548, -6.208, -5.736, -5.248, -4.748, -4.269, -3.815, -3.402");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("-1.677, -1.608, -1.402, -1.143, -0.91, -0.705, -0.524, -0.372, -0.263, -0.203",\
                 "-1.733, -1.664, -1.456, -1.199, -0.967, -0.756, -0.577, -0.427, -0.319, -0.258",\
                 "-1.877, -1.81, -1.605, -1.343, -1.117, -0.904, -0.723, -0.571, -0.464, -0.409",\
                 "-2.121, -2.055, -1.846, -1.584, -1.362, -1.147, -0.965, -0.81, -0.707, -0.65",\
                 "-2.46, -2.399, -2.191, -1.928, -1.694, -1.476, -1.29, -1.131, -1.017, -0.955",\
                 "-2.827, -2.758, -2.547, -2.29, -2.049, -1.834, -1.639, -1.48, -1.361, -1.296",\
                 "-3.173, -3.107, -2.903, -2.637, -2.398, -2.175, -1.974, -1.809, -1.689, -1.621",\
                 "-3.496, -3.43, -3.225, -2.971, -2.72, -2.489, -2.282, -2.105, -1.977, -1.904",\
                 "-3.768, -3.702, -3.502, -3.247, -2.999, -2.755, -2.543, -2.359, -2.22, -2.138",\
                 "-3.967, -3.903, -3.707, -3.465, -3.211, -2.965, -2.746, -2.553, -2.404, -2.312");
        }
      }

      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.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("6.624, 6.562, 6.296, 5.718, 4.943, 4.113, 3.324, 2.583, 1.877, 1.226",\
                 "6.669, 6.608, 6.323, 5.766, 4.985, 4.159, 3.373, 2.624, 1.92, 1.28",\
                 "6.918, 6.859, 6.576, 6.022, 5.232, 4.414, 3.623, 2.877, 2.172, 1.531",\
                 "7.357, 7.294, 7.014, 6.454, 5.673, 4.851, 4.062, 3.315, 2.607, 1.974",\
                 "7.999, 7.927, 7.644, 7.093, 6.304, 5.483, 4.699, 3.949, 3.247, 2.605",\
                 "8.836, 8.775, 8.493, 7.937, 7.148, 6.328, 5.538, 4.793, 4.09, 3.458",\
                 "9.901, 9.841, 9.553, 8.99, 8.21, 7.389, 6.607, 5.864, 5.163, 4.533",\
                 "11.2, 11.13, 10.85, 10.29, 9.514, 8.697, 7.911, 7.18, 6.487, 5.852",\
                 "12.68, 12.61, 12.33, 11.79, 11.02, 10.19, 9.406, 8.675, 7.965, 7.334",\
                 "14.29, 14.23, 13.95, 13.41, 12.65, 11.82, 11.04, 10.27, 9.577, 8.927");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("4.002, 3.928, 3.651, 3.22, 2.633, 2.105, 1.672, 1.346, 1.106, 0.952",\
                 "4.063, 3.981, 3.71, 3.279, 2.695, 2.154, 1.728, 1.405, 1.159, 1.012",\
                 "4.212, 4.134, 3.863, 3.392, 2.838, 2.306, 1.873, 1.545, 1.312, 1.157",\
                 "4.461, 4.384, 4.108, 3.677, 3.09, 2.561, 2.129, 1.805, 1.561, 1.408",\
                 "4.818, 4.739, 4.455, 3.993, 3.443, 2.906, 2.472, 2.138, 1.897, 1.737",\
                 "5.243, 5.159, 4.888, 4.451, 3.871, 3.337, 2.888, 2.546, 2.286, 2.118",\
                 "5.676, 5.596, 5.322, 4.889, 4.314, 3.774, 3.315, 2.959, 2.684, 2.5",\
                 "6.095, 6.019, 5.74, 5.307, 4.729, 4.186, 3.724, 3.345, 3.059, 2.854",\
                 "6.484, 6.392, 6.117, 5.686, 5.115, 4.567, 4.103, 3.711, 3.391, 3.18",\
                 "6.819, 6.738, 6.464, 5.993, 5.447, 4.906, 4.427, 4.012, 3.686, 3.446");
        }
      }

      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.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("6.624, 6.562, 6.296, 5.718, 4.943, 4.113, 3.324, 2.583, 1.871, 1.226",\
                 "6.669, 6.608, 6.341, 5.766, 4.985, 4.159, 3.373, 2.624, 1.92, 1.28",\
                 "6.918, 6.859, 6.576, 6.022, 5.232, 4.414, 3.623, 2.877, 2.172, 1.531",\
                 "7.357, 7.294, 7.014, 6.454, 5.673, 4.851, 4.062, 3.315, 2.607, 1.974",\
                 "7.999, 7.917, 7.644, 7.093, 6.304, 5.483, 4.691, 3.949, 3.247, 2.605",\
                 "8.836, 8.775, 8.51, 7.937, 7.148, 6.328, 5.538, 4.793, 4.09, 3.458",\
                 "9.901, 9.841, 9.553, 8.991, 8.21, 7.389, 6.602, 5.864, 5.163, 4.533",\
                 "11.2, 11.13, 10.85, 10.29, 9.514, 8.697, 7.911, 7.18, 6.487, 5.852",\
                 "12.68, 12.61, 12.35, 11.79, 11.02, 10.19, 9.406, 8.675, 7.965, 7.334",\
                 "14.29, 14.23, 13.96, 13.41, 12.65, 11.82, 11.04, 10.28, 9.577, 8.927");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("4.002, 3.919, 3.646, 3.22, 2.633, 2.097, 1.666, 1.346, 1.101, 0.952",\
                 "4.063, 3.981, 3.71, 3.273, 2.685, 2.154, 1.722, 1.38, 1.159, 1.004",\
                 "4.207, 4.128, 3.854, 3.428, 2.838, 2.306, 1.873, 1.545, 1.306, 1.149",\
                 "4.456, 4.378, 4.101, 3.677, 3.091, 2.551, 2.122, 1.795, 1.555, 1.4",\
                 "4.808, 4.729, 4.455, 3.986, 3.443, 2.9, 2.472, 2.133, 1.89, 1.729",\
                 "5.235, 5.159, 4.879, 4.451, 3.865, 3.329, 2.888, 2.523, 2.286, 2.118",\
                 "5.671, 5.59, 5.315, 4.889, 4.306, 3.765, 3.315, 2.953, 2.676, 2.495",\
                 "6.087, 6.011, 5.731, 5.307, 4.719, 4.181, 3.717, 3.337, 3.049, 2.854",\
                 "6.473, 6.381, 6.105, 5.686, 5.115, 4.567, 4.095, 3.702, 3.38, 3.167",\
                 "6.812, 6.731, 6.441, 6.024, 5.438, 4.906, 4.416, 4, 3.679, 3.431");
        }
      }
    }

    pin(Q) {
      direction : output ;
      function : "IQ1" ;
      max_capacitance : 0.3851 ;
      max_transition : 25 ;
      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.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.003651, 0.01296, 0.03073, 0.05842, 0.09727, 0.1484, 0.2128, 0.2914, 0.3851");
          values("0.03748, 0.03763, 0.03802, 0.03839, 0.03866, 0.03883, 0.03892, 0.03898, 0.03902, 0.039",\
                 "0.03747, 0.03763, 0.03802, 0.0384, 0.03866, 0.03882, 0.03892, 0.03898, 0.03902, 0.039",\
                 "0.03747, 0.03762, 0.03801, 0.03839, 0.03865, 0.03882, 0.03891, 0.03896, 0.039, 0.03898",\
                 "0.03746, 0.03762, 0.03801, 0.03839, 0.03866, 0.03882, 0.03892, 0.03898, 0.03901, 0.03895",\
                 "0.03753, 0.03768, 0.03807, 0.03846, 0.03872, 0.03889, 0.03898, 0.03904, 0.03906, 0.03892",\
                 "0.0376, 0.03775, 0.03815, 0.03854, 0.0388, 0.03897, 0.03907, 0.03911, 0.03908, 0.03877",\
                 "0.03766, 0.03782, 0.03821, 0.03859, 0.03886, 0.03901, 0.03911, 0.03912, 0.0389, 0.03819",\
                 "0.03772, 0.03788, 0.03827, 0.03865, 0.03892, 0.03907, 0.03913, 0.03886, 0.03798, 0.03695",\
                 "0.03778, 0.03795, 0.03834, 0.03873, 0.03897, 0.03892, 0.03803, 0.0368, 0.0359, 0.03526",\
                 "0.03305, 0.0329, 0.03144, 0.03052, 0.03013, 0.02994, 0.02984, 0.02978, 0.02974, 0.02973");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.003651, 0.01296, 0.03073, 0.05842, 0.09727, 0.1484, 0.2128, 0.2914, 0.3851");
          values("-0.002849, -0.002709, -0.002412, -0.001967, -0.001535, -0.00123, 0.001341, 0.02662, 0.1098, 0.2234",\
                 "-0.002841, -0.002715, -0.002417, -0.001988, -0.001563, -0.001111, 0.0016, 0.02767, 0.1121, 0.2249",\
                 "-0.002857, -0.002731, -0.002416, -0.001985, -0.001625, -0.001158, 0.002258, 0.03185, 0.1201, 0.2301",\
                 "-0.002914, -0.002796, -0.002464, -0.002048, -0.001655, -0.001193, 0.003755, 0.04101, 0.1351, 0.2381",\
                 "-0.002972, -0.002841, -0.002519, -0.002095, -0.001696, -0.000986, 0.007498, 0.05829, 0.1554, 0.2454",\
                 "-0.003014, -0.002905, -0.002581, -0.002161, -0.001721, -0.0003789, 0.01671, 0.0847, 0.1754, 0.2465",\
                 "-0.003055, -0.002934, -0.002599, -0.002231, -0.001734, 0.002369, 0.03871, 0.1166, 0.1855, 0.2346",\
                 "-0.003097, -0.002971, -0.002651, -0.002239, -0.001066, 0.0169, 0.07643, 0.1338, 0.1732, 0.2003",\
                 "-0.003236, -0.003099, -0.002809, -0.002054, 0.01271, 0.05518, 0.08793, 0.1086, 0.1222, 0.1314",\
                 "-0.005819, -0.00568, -0.0008543, 0.004229, 0.006957, 0.008383, 0.009172, 0.009642, 0.009937, 0.01013");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.003651, 0.01296, 0.03073, 0.05842, 0.09727, 0.1484, 0.2128, 0.2914, 0.3851");
          values("0.03748, 0.03763, 0.03802, 0.0384, 0.03866, 0.03883, 0.03893, 0.03899, 0.03902, 0.03901",\
                 "0.03747, 0.03763, 0.03802, 0.0384, 0.03866, 0.03882, 0.03892, 0.03898, 0.03902, 0.039",\
                 "0.03747, 0.03762, 0.03801, 0.03839, 0.03866, 0.03882, 0.03892, 0.03898, 0.03901, 0.03898",\
                 "0.03747, 0.03762, 0.03801, 0.03839, 0.03866, 0.03882, 0.03892, 0.03898, 0.039, 0.03895",\
                 "0.03753, 0.03768, 0.03807, 0.03845, 0.03872, 0.03888, 0.03898, 0.03904, 0.03905, 0.03892",\
                 "0.0376, 0.03775, 0.03814, 0.03853, 0.03879, 0.03896, 0.03905, 0.03911, 0.03907, 0.03876",\
                 "0.03765, 0.03781, 0.03821, 0.03859, 0.03885, 0.03901, 0.0391, 0.03912, 0.03889, 0.03818",\
                 "0.03773, 0.03788, 0.03828, 0.03866, 0.03893, 0.03909, 0.03914, 0.03887, 0.03799, 0.03696",\
                 "0.03778, 0.03795, 0.03834, 0.03872, 0.03897, 0.03891, 0.03803, 0.03678, 0.03589, 0.03525",\
                 "0.03305, 0.0329, 0.03144, 0.03053, 0.03013, 0.02994, 0.02984, 0.02978, 0.02975, 0.02973");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.003651, 0.01296, 0.03073, 0.05842, 0.09727, 0.1484, 0.2128, 0.2914, 0.3851");
          values("-0.002747, -0.002626, -0.002327, -0.001898, -0.001484, -0.001016, 0.001539, 0.02667, 0.1099, 0.2234",\
                 "-0.002749, -0.002633, -0.002314, -0.001901, -0.001484, -0.001032, 0.001695, 0.02775, 0.1121, 0.225",\
                 "-0.002776, -0.002652, -0.00232, -0.00191, -0.001493, -0.001076, 0.002308, 0.03198, 0.1202, 0.2302",\
                 "-0.002819, -0.002702, -0.002379, -0.001982, -0.001553, -0.00101, 0.003857, 0.04111, 0.1352, 0.2381",\
                 "-0.002861, -0.002746, -0.002424, -0.001998, -0.001592, -0.0008825, 0.007618, 0.05838, 0.1555, 0.2455",\
                 "-0.002924, -0.0028, -0.00249, -0.002043, -0.001661, -0.0002706, 0.01682, 0.08485, 0.1755, 0.2466",\
                 "-0.002955, -0.002845, -0.0025, -0.002134, -0.0017, 0.00239, 0.03864, 0.1167, 0.1856, 0.2346",\
                 "-0.003018, -0.002905, -0.002573, -0.002192, -0.0009697, 0.01695, 0.07653, 0.1339, 0.1733, 0.2004",\
                 "-0.00312, -0.002992, -0.002652, -0.001957, 0.01283, 0.05529, 0.08805, 0.1087, 0.1223, 0.1315",\
                 "-0.005709, -0.00557, -0.0007503, 0.004333, 0.007073, 0.0085, 0.009279, 0.009748, 0.01004, 0.01024");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.003651, 0.01296, 0.03073, 0.05842, 0.09727, 0.1484, 0.2128, 0.2914, 0.3851");
          values("0.03747, 0.03762, 0.03801, 0.03839, 0.03866, 0.03882, 0.03892, 0.03898, 0.03902, 0.039",\
                 "0.03746, 0.03762, 0.03802, 0.0384, 0.03866, 0.03882, 0.03892, 0.03898, 0.03901, 0.03899",\
                 "0.03746, 0.03762, 0.038, 0.03839, 0.03865, 0.03881, 0.03891, 0.03898, 0.039, 0.03898",\
                 "0.03746, 0.03762, 0.038, 0.03839, 0.03865, 0.03882, 0.03892, 0.03898, 0.039, 0.03894",\
                 "0.03752, 0.03768, 0.03807, 0.03845, 0.03871, 0.03888, 0.03897, 0.03903, 0.03904, 0.03892",\
                 "0.03759, 0.03774, 0.03814, 0.03852, 0.03878, 0.03895, 0.03905, 0.0391, 0.03906, 0.03875",\
                 "0.03765, 0.03781, 0.03821, 0.03858, 0.03885, 0.039, 0.0391, 0.03911, 0.03889, 0.03818",\
                 "0.03773, 0.03788, 0.03827, 0.03866, 0.03892, 0.03908, 0.03913, 0.03886, 0.03798, 0.03695",\
                 "0.0378, 0.03794, 0.03833, 0.03872, 0.03897, 0.03891, 0.03803, 0.03678, 0.03589, 0.03526",\
                 "0.03305, 0.03289, 0.03144, 0.03052, 0.03013, 0.02995, 0.02985, 0.02979, 0.02975, 0.02973");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.003651, 0.01296, 0.03073, 0.05842, 0.09727, 0.1484, 0.2128, 0.2914, 0.3851");
          values("-0.002697, -0.002578, -0.002267, -0.001831, -0.001406, -0.001035, 0.001471, 0.02673, 0.1099, 0.2235",\
                 "-0.0027, -0.002584, -0.002265, -0.001852, -0.001435, -0.0009835, 0.001744, 0.0278, 0.1122, 0.225",\
                 "-0.00272, -0.002594, -0.002264, -0.00188, -0.00145, -0.0009512, 0.002237, 0.03201, 0.1202, 0.2302",\
                 "-0.002785, -0.002654, -0.002338, -0.001938, -0.001508, -0.001094, 0.003772, 0.04138, 0.1352, 0.2382",\
                 "-0.002817, -0.002699, -0.002372, -0.001967, -0.001549, -0.0008388, 0.007662, 0.05842, 0.1556, 0.2455",\
                 "-0.00288, -0.002751, -0.002421, -0.002013, -0.001601, -0.0002268, 0.01686, 0.08491, 0.1755, 0.2466",\
                 "-0.002917, -0.002809, -0.002466, -0.002097, -0.001614, 0.002444, 0.03866, 0.1167, 0.1857, 0.2347",\
                 "-0.002974, -0.002861, -0.002521, -0.002135, -0.0009259, 0.01701, 0.07658, 0.134, 0.1733, 0.2005",\
                 "-0.003083, -0.002944, -0.002635, -0.001896, 0.01268, 0.05532, 0.08808, 0.1088, 0.1223, 0.1315",\
                 "-0.005669, -0.005532, -0.0007024, 0.004381, 0.007117, 0.008537, 0.009335, 0.009804, 0.0101, 0.01029");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.003651, 0.01296, 0.03073, 0.05842, 0.09727, 0.1484, 0.2128, 0.2914, 0.3851");
          values("0.03747, 0.03762, 0.03802, 0.0384, 0.03866, 0.03883, 0.03892, 0.03898, 0.03902, 0.039",\
                 "0.03747, 0.03762, 0.038, 0.03839, 0.03865, 0.03882, 0.03892, 0.03898, 0.03901, 0.03899",\
                 "0.03746, 0.03761, 0.038, 0.03838, 0.03865, 0.03882, 0.03891, 0.03897, 0.039, 0.03898",\
                 "0.03748, 0.03763, 0.03802, 0.0384, 0.03867, 0.03883, 0.03893, 0.03898, 0.03901, 0.03895",\
                 "0.03753, 0.03768, 0.03807, 0.03845, 0.03871, 0.03888, 0.03897, 0.03903, 0.03904, 0.03892",\
                 "0.03759, 0.03775, 0.03813, 0.03852, 0.03878, 0.03895, 0.03905, 0.0391, 0.03906, 0.03875",\
                 "0.03766, 0.03782, 0.03822, 0.03859, 0.03886, 0.03901, 0.0391, 0.03912, 0.03889, 0.03819",\
                 "0.03773, 0.03788, 0.03827, 0.03865, 0.03892, 0.03907, 0.03913, 0.03885, 0.03798, 0.03695",\
                 "0.03778, 0.03795, 0.03835, 0.03872, 0.03896, 0.03892, 0.03804, 0.0368, 0.03589, 0.03527",\
                 "0.03304, 0.0329, 0.03145, 0.03052, 0.03013, 0.02994, 0.02984, 0.02979, 0.02975, 0.02973");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.003651, 0.01296, 0.03073, 0.05842, 0.09727, 0.1484, 0.2128, 0.2914, 0.3851");
          values("-0.002739, -0.002618, -0.002306, -0.001869, -0.001435, -0.001097, 0.001441, 0.02672, 0.1098, 0.2234",\
                 "-0.002725, -0.002592, -0.00229, -0.001875, -0.001448, -0.0009967, 0.001714, 0.02779, 0.1122, 0.225",\
                 "-0.002749, -0.002618, -0.002319, -0.00189, -0.001478, -0.001109, 0.00234, 0.0318, 0.1201, 0.2301",\
                 "-0.002796, -0.002678, -0.00235, -0.001963, -0.001537, -0.001091, 0.003726, 0.04138, 0.1352, 0.2382",\
                 "-0.002841, -0.002724, -0.002397, -0.002, -0.00156, -0.001012, 0.007522, 0.05815, 0.1555, 0.2455",\
                 "-0.002908, -0.002785, -0.002471, -0.002034, -0.001622, -0.0002643, 0.01683, 0.08482, 0.1755, 0.2466",\
                 "-0.002953, -0.002837, -0.002491, -0.002118, -0.001623, 0.002481, 0.03882, 0.1167, 0.1856, 0.2347",\
                 "-0.002992, -0.002874, -0.002542, -0.00216, -0.0009472, 0.01701, 0.07654, 0.134, 0.1733, 0.2005",\
                 "-0.003114, -0.002971, -0.002654, -0.001945, 0.01284, 0.05527, 0.08805, 0.1088, 0.1223, 0.1315",\
                 "-0.005696, -0.005553, -0.0007265, 0.004355, 0.007085, 0.00851, 0.0093, 0.009781, 0.01008, 0.01027");
        }
      }

      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.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.003651, 0.01296, 0.03073, 0.05842, 0.09727, 0.1484, 0.2128, 0.2914, 0.3851");
          values("5.304, 5.41, 5.679, 6.049, 6.521, 7.12, 7.875, 8.814, 9.958, 11.32",\
                 "5.372, 5.479, 5.746, 6.117, 6.59, 7.188, 7.943, 8.883, 10.03, 11.39",\
                 "5.61, 5.716, 5.984, 6.355, 6.827, 7.425, 8.18, 9.12, 10.26, 11.62",\
                 "6.058, 6.164, 6.432, 6.803, 7.275, 7.873, 8.629, 9.568, 10.71, 12.07",\
                 "6.651, 6.758, 7.025, 7.396, 7.868, 8.467, 9.222, 10.16, 11.3, 12.67",\
                 "7.267, 7.373, 7.641, 8.012, 8.484, 9.083, 9.838, 10.78, 11.92, 13.28",\
                 "7.877, 7.983, 8.251, 8.622, 9.094, 9.693, 10.45, 11.39, 12.53, 13.89",\
                 "8.47, 8.576, 8.844, 9.216, 9.688, 10.29, 11.04, 11.98, 13.12, 14.49",\
                 "9.037, 9.144, 9.412, 9.783, 10.25, 10.85, 11.61, 12.55, 13.69, 15.05",\
                 "9.567, 9.673, 9.941, 10.31, 10.79, 11.38, 12.14, 13.08, 14.22, 15.58");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.003651, 0.01296, 0.03073, 0.05842, 0.09727, 0.1484, 0.2128, 0.2914, 0.3851");
          values("5.266, 5.401, 5.797, 6.491, 7.554, 9.037, 10.98, 13.43, 16.42, 19.98",\
                 "5.334, 5.469, 5.865, 6.558, 7.621, 9.104, 11.05, 13.5, 16.49, 20.05",\
                 "5.571, 5.705, 6.102, 6.796, 7.858, 9.341, 11.29, 13.74, 16.73, 20.29",\
                 "6.012, 6.148, 6.544, 7.238, 8.3, 9.784, 11.73, 14.18, 17.17, 20.73",\
                 "6.595, 6.729, 7.126, 7.82, 8.882, 10.37, 12.31, 14.76, 17.75, 21.31",\
                 "7.201, 7.335, 7.733, 8.426, 9.488, 10.97, 12.92, 15.37, 18.36, 21.92",\
                 "7.805, 7.939, 8.336, 9.029, 10.09, 11.58, 13.52, 15.97, 18.96, 22.52",\
                 "8.391, 8.525, 8.922, 9.616, 10.68, 12.16, 14.11, 16.56, 19.55, 23.11",\
                 "8.95, 9.085, 9.482, 10.18, 11.24, 12.72, 14.67, 17.12, 20.11, 23.67",\
                 "9.472, 9.607, 10, 10.7, 11.76, 13.24, 15.19, 17.64, 20.63, 24.19");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.003651, 0.01296, 0.03073, 0.05842, 0.09727, 0.1484, 0.2128, 0.2914, 0.3851");
          values("0.4532, 0.533, 0.7702, 1.176, 1.792, 2.688, 3.909, 5.487, 7.444, 9.766",\
                 "0.453, 0.5332, 0.7696, 1.174, 1.792, 2.688, 3.907, 5.484, 7.43, 9.767",\
                 "0.4532, 0.5332, 0.7686, 1.173, 1.792, 2.686, 3.906, 5.484, 7.442, 9.776",\
                 "0.4532, 0.5334, 0.7688, 1.174, 1.791, 2.687, 3.912, 5.493, 7.444, 9.768",\
                 "0.453, 0.5336, 0.769, 1.174, 1.792, 2.686, 3.91, 5.488, 7.444, 9.77",\
                 "0.454, 0.534, 0.77, 1.174, 1.794, 2.69, 3.908, 5.486, 7.444, 9.762",\
                 "0.454, 0.534, 0.77, 1.176, 1.79, 2.686, 3.906, 5.486, 7.444, 9.766",\
                 "0.454, 0.532, 0.77, 1.174, 1.794, 2.682, 3.91, 5.49, 7.44, 9.758",\
                 "0.454, 0.532, 0.77, 1.174, 1.792, 2.686, 3.906, 5.486, 7.428, 9.752",\
                 "0.452, 0.532, 0.77, 1.174, 1.792, 2.688, 3.91, 5.482, 7.438, 9.756");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.003651, 0.01296, 0.03073, 0.05842, 0.09727, 0.1484, 0.2128, 0.2914, 0.3851");
          values("0.5054, 0.6528, 1.186, 2.289, 4.061, 6.548, 9.82, 13.96, 19.01, 24.99",\
                 "0.505, 0.6528, 1.186, 2.29, 4.062, 6.549, 9.826, 13.96, 18.99, 24.99",\
                 "0.5046, 0.6526, 1.185, 2.29, 4.061, 6.548, 9.825, 13.96, 18.99, 24.99",\
                 "0.5058, 0.6526, 1.185, 2.29, 4.06, 6.544, 9.826, 13.95, 19.01, 24.99",\
                 "0.5064, 0.653, 1.185, 2.289, 4.062, 6.548, 9.828, 13.96, 18.99, 25.01",\
                 "0.506, 0.652, 1.186, 2.288, 4.062, 6.55, 9.828, 13.96, 18.97, 25.01",\
                 "0.506, 0.652, 1.186, 2.288, 4.058, 6.542, 9.826, 13.94, 18.99, 25.03",\
                 "0.506, 0.652, 1.184, 2.288, 4.056, 6.544, 9.816, 13.95, 19.01, 25",\
                 "0.506, 0.654, 1.186, 2.288, 4.062, 6.538, 9.808, 13.95, 19.01, 25.04",\
                 "0.504, 0.652, 1.186, 2.29, 4.054, 6.54, 9.812, 13.93, 18.98, 25.01");
        }
      }

      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.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.003651, 0.01296, 0.03073, 0.05842, 0.09727, 0.1484, 0.2128, 0.2914, 0.3851");
          values("5.304, 5.41, 5.678, 6.049, 6.521, 7.12, 7.875, 8.814, 9.958, 11.32",\
                 "5.372, 5.478, 5.746, 6.117, 6.589, 7.188, 7.943, 8.882, 10.03, 11.39",\
                 "5.61, 5.716, 5.984, 6.354, 6.827, 7.425, 8.181, 9.12, 10.26, 11.63",\
                 "6.058, 6.164, 6.432, 6.803, 7.275, 7.873, 8.629, 9.568, 10.71, 12.07",\
                 "6.651, 6.757, 7.025, 7.396, 7.868, 8.466, 9.222, 10.16, 11.3, 12.67",\
                 "7.267, 7.373, 7.642, 8.012, 8.484, 9.083, 9.838, 10.78, 11.92, 13.28",\
                 "7.877, 7.983, 8.251, 8.622, 9.094, 9.693, 10.45, 11.39, 12.53, 13.89",\
                 "8.47, 8.577, 8.845, 9.216, 9.688, 10.29, 11.04, 11.98, 13.12, 14.48",\
                 "9.038, 9.146, 9.414, 9.785, 10.26, 10.86, 11.61, 12.55, 13.69, 15.05",\
                 "9.567, 9.673, 9.942, 10.31, 10.79, 11.38, 12.14, 13.08, 14.22, 15.58");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.003651, 0.01296, 0.03073, 0.05842, 0.09727, 0.1484, 0.2128, 0.2914, 0.3851");
          values("5.267, 5.401, 5.797, 6.49, 7.553, 9.036, 10.98, 13.43, 16.42, 19.98",\
                 "5.334, 5.468, 5.865, 6.559, 7.621, 9.105, 11.05, 13.5, 16.49, 20.05",\
                 "5.571, 5.705, 6.103, 6.795, 7.858, 9.341, 11.29, 13.74, 16.73, 20.29",\
                 "6.013, 6.148, 6.544, 7.238, 8.301, 9.784, 11.73, 14.18, 17.17, 20.73",\
                 "6.595, 6.73, 7.126, 7.82, 8.883, 10.37, 12.31, 14.76, 17.75, 21.31",\
                 "7.201, 7.336, 7.733, 8.426, 9.489, 10.97, 12.92, 15.37, 18.36, 21.92",\
                 "7.805, 7.939, 8.337, 9.029, 10.09, 11.58, 13.52, 15.97, 18.96, 22.52",\
                 "8.391, 8.525, 8.922, 9.616, 10.68, 12.16, 14.11, 16.56, 19.55, 23.11",\
                 "8.952, 9.086, 9.483, 10.18, 11.24, 12.72, 14.67, 17.12, 20.11, 23.67",\
                 "9.472, 9.607, 10, 10.7, 11.76, 13.24, 15.19, 17.64, 20.63, 24.19");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.003651, 0.01296, 0.03073, 0.05842, 0.09727, 0.1484, 0.2128, 0.2914, 0.3851");
          values("0.4532, 0.5332, 0.7688, 1.174, 1.792, 2.684, 3.91, 5.489, 7.444, 9.77",\
                 "0.453, 0.5332, 0.7696, 1.174, 1.793, 2.688, 3.909, 5.487, 7.435, 9.77",\
                 "0.4528, 0.5332, 0.7698, 1.174, 1.792, 2.686, 3.911, 5.489, 7.442, 9.76",\
                 "0.453, 0.533, 0.7692, 1.174, 1.791, 2.687, 3.909, 5.483, 7.442, 9.76",\
                 "0.453, 0.5332, 0.7696, 1.175, 1.792, 2.688, 3.908, 5.488, 7.444, 9.764",\
                 "0.454, 0.534, 0.77, 1.174, 1.794, 2.69, 3.908, 5.488, 7.444, 9.764",\
                 "0.454, 0.534, 0.77, 1.176, 1.79, 2.686, 3.906, 5.486, 7.444, 9.766",\
                 "0.452, 0.532, 0.768, 1.174, 1.794, 2.684, 3.91, 5.49, 7.432, 9.756",\
                 "0.454, 0.534, 0.77, 1.174, 1.79, 2.688, 3.908, 5.484, 7.426, 9.752",\
                 "0.452, 0.534, 0.768, 1.174, 1.794, 2.688, 3.908, 5.488, 7.442, 9.756");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.003651, 0.01296, 0.03073, 0.05842, 0.09727, 0.1484, 0.2128, 0.2914, 0.3851");
          values("0.5064, 0.6536, 1.185, 2.29, 4.062, 6.549, 9.826, 13.96, 18.99, 25",\
                 "0.5058, 0.653, 1.186, 2.29, 4.062, 6.548, 9.827, 13.96, 18.99, 24.99",\
                 "0.5072, 0.6524, 1.187, 2.29, 4.061, 6.548, 9.827, 13.96, 19.01, 24.99",\
                 "0.5068, 0.6522, 1.186, 2.289, 4.058, 6.548, 9.828, 13.94, 18.99, 24.99",\
                 "0.505, 0.653, 1.186, 2.29, 4.062, 6.548, 9.828, 13.96, 18.99, 25.02",\
                 "0.508, 0.654, 1.186, 2.29, 4.06, 6.548, 9.826, 13.96, 18.98, 25.01",\
                 "0.508, 0.654, 1.184, 2.288, 4.056, 6.544, 9.816, 13.94, 19, 25",\
                 "0.506, 0.652, 1.186, 2.288, 4.056, 6.542, 9.816, 13.95, 19.01, 25.01",\
                 "0.508, 0.652, 1.184, 2.29, 4.06, 6.538, 9.808, 13.95, 19.01, 25.04",\
                 "0.504, 0.654, 1.186, 2.29, 4.058, 6.538, 9.812, 13.94, 18.98, 25.01");
        }
      }

      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.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.003651, 0.01296, 0.03073, 0.05842, 0.09727, 0.1484, 0.2128, 0.2914, 0.3851");
          values("5.304, 5.41, 5.678, 6.049, 6.521, 7.119, 7.875, 8.814, 9.958, 11.32",\
                 "5.372, 5.479, 5.747, 6.117, 6.589, 7.188, 7.943, 8.883, 10.03, 11.39",\
                 "5.61, 5.716, 5.984, 6.354, 6.826, 7.425, 8.18, 9.119, 10.26, 11.62",\
                 "6.057, 6.164, 6.432, 6.803, 7.274, 7.873, 8.628, 9.568, 10.71, 12.07",\
                 "6.651, 6.757, 7.025, 7.396, 7.868, 8.467, 9.222, 10.16, 11.3, 12.67",\
                 "7.266, 7.373, 7.641, 8.011, 8.484, 9.082, 9.838, 10.78, 11.92, 13.28",\
                 "7.877, 7.983, 8.251, 8.622, 9.094, 9.693, 10.45, 11.39, 12.53, 13.89",\
                 "8.471, 8.577, 8.845, 9.216, 9.688, 10.29, 11.04, 11.98, 13.12, 14.49",\
                 "9.04, 9.144, 9.412, 9.783, 10.25, 10.85, 11.61, 12.55, 13.69, 15.05",\
                 "9.568, 9.674, 9.942, 10.31, 10.78, 11.38, 12.14, 13.08, 14.22, 15.58");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.003651, 0.01296, 0.03073, 0.05842, 0.09727, 0.1484, 0.2128, 0.2914, 0.3851");
          values("5.266, 5.4, 5.798, 6.491, 7.554, 9.037, 10.98, 13.43, 16.42, 19.98",\
                 "5.335, 5.468, 5.865, 6.559, 7.621, 9.105, 11.05, 13.5, 16.49, 20.05",\
                 "5.571, 5.706, 6.102, 6.796, 7.858, 9.342, 11.29, 13.74, 16.73, 20.29",\
                 "6.013, 6.148, 6.544, 7.238, 8.301, 9.784, 11.73, 14.18, 17.17, 20.73",\
                 "6.595, 6.73, 7.126, 7.82, 8.883, 10.37, 12.31, 14.76, 17.75, 21.31",\
                 "7.201, 7.336, 7.733, 8.426, 9.489, 10.97, 12.92, 15.37, 18.36, 21.92",\
                 "7.805, 7.939, 8.336, 9.029, 10.09, 11.57, 13.52, 15.97, 18.96, 22.52",\
                 "8.391, 8.525, 8.922, 9.616, 10.68, 12.16, 14.11, 16.56, 19.55, 23.11",\
                 "8.95, 9.085, 9.481, 10.18, 11.24, 12.72, 14.67, 17.12, 20.11, 23.67",\
                 "9.472, 9.608, 10, 10.7, 11.76, 13.24, 15.19, 17.64, 20.63, 24.19");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.003651, 0.01296, 0.03073, 0.05842, 0.09727, 0.1484, 0.2128, 0.2914, 0.3851");
          values("0.4528, 0.533, 0.7686, 1.174, 1.793, 2.688, 3.91, 5.489, 7.444, 9.77",\
                 "0.4532, 0.5332, 0.7684, 1.174, 1.791, 2.688, 3.906, 5.484, 7.443, 9.759",\
                 "0.4528, 0.533, 0.7688, 1.174, 1.79, 2.687, 3.908, 5.492, 7.442, 9.761",\
                 "0.453, 0.533, 0.7692, 1.174, 1.793, 2.688, 3.909, 5.493, 7.444, 9.766",\
                 "0.453, 0.5336, 0.7694, 1.174, 1.792, 2.686, 3.908, 5.486, 7.442, 9.762",\
                 "0.454, 0.534, 0.768, 1.174, 1.792, 2.686, 3.912, 5.494, 7.438, 9.78",\
                 "0.452, 0.534, 0.77, 1.174, 1.792, 2.686, 3.906, 5.486, 7.444, 9.764",\
                 "0.454, 0.534, 0.768, 1.174, 1.794, 2.684, 3.91, 5.486, 7.436, 9.756",\
                 "0.452, 0.534, 0.77, 1.174, 1.792, 2.686, 3.908, 5.49, 7.428, 9.752",\
                 "0.452, 0.532, 0.77, 1.174, 1.79, 2.686, 3.91, 5.488, 7.442, 9.758");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.003651, 0.01296, 0.03073, 0.05842, 0.09727, 0.1484, 0.2128, 0.2914, 0.3851");
          values("0.5048, 0.653, 1.185, 2.289, 4.061, 6.548, 9.826, 13.96, 19.01, 24.99",\
                 "0.5074, 0.653, 1.186, 2.29, 4.062, 6.548, 9.827, 13.96, 18.99, 24.99",\
                 "0.5056, 0.6528, 1.186, 2.287, 4.061, 6.549, 9.819, 13.96, 19.01, 24.99",\
                 "0.5068, 0.6526, 1.185, 2.287, 4.059, 6.548, 9.818, 13.96, 19.01, 24.98",\
                 "0.505, 0.6528, 1.185, 2.29, 4.062, 6.548, 9.828, 13.96, 18.99, 25.02",\
                 "0.508, 0.654, 1.188, 2.29, 4.062, 6.55, 9.828, 13.96, 18.98, 25.01",\
                 "0.508, 0.654, 1.184, 2.29, 4.058, 6.546, 9.822, 13.94, 18.99, 25.01",\
                 "0.508, 0.652, 1.184, 2.288, 4.052, 6.544, 9.816, 13.95, 19.01, 25.04",\
                 "0.506, 0.654, 1.186, 2.288, 4.056, 6.538, 9.808, 13.95, 19.01, 25.02",\
                 "0.506, 0.652, 1.186, 2.29, 4.06, 6.54, 9.814, 13.94, 18.98, 25.01");
        }
      }

      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.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.003651, 0.01296, 0.03073, 0.05842, 0.09727, 0.1484, 0.2128, 0.2914, 0.3851");
          values("5.305, 5.41, 5.679, 6.049, 6.522, 7.12, 7.875, 8.815, 9.958, 11.32",\
                 "5.373, 5.479, 5.747, 6.117, 6.589, 7.188, 7.943, 8.883, 10.02, 11.39",\
                 "5.61, 5.716, 5.984, 6.355, 6.827, 7.425, 8.181, 9.12, 10.26, 11.62",\
                 "6.058, 6.164, 6.432, 6.803, 7.275, 7.873, 8.629, 9.568, 10.71, 12.07",\
                 "6.651, 6.757, 7.026, 7.396, 7.868, 8.466, 9.222, 10.16, 11.3, 12.67",\
                 "7.267, 7.373, 7.641, 8.012, 8.484, 9.082, 9.838, 10.78, 11.92, 13.28",\
                 "7.877, 7.983, 8.251, 8.622, 9.094, 9.693, 10.45, 11.39, 12.53, 13.89",\
                 "8.47, 8.577, 8.844, 9.215, 9.688, 10.29, 11.04, 11.98, 13.12, 14.49",\
                 "9.038, 9.144, 9.413, 9.783, 10.26, 10.85, 11.61, 12.55, 13.69, 15.05",\
                 "9.567, 9.673, 9.941, 10.31, 10.78, 11.38, 12.14, 13.08, 14.22, 15.58");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.003651, 0.01296, 0.03073, 0.05842, 0.09727, 0.1484, 0.2128, 0.2914, 0.3851");
          values("5.266, 5.4, 5.797, 6.491, 7.553, 9.037, 10.98, 13.43, 16.42, 19.98",\
                 "5.334, 5.469, 5.865, 6.558, 7.621, 9.104, 11.05, 13.5, 16.49, 20.05",\
                 "5.57, 5.705, 6.101, 6.795, 7.858, 9.341, 11.29, 13.74, 16.73, 20.29",\
                 "6.013, 6.147, 6.544, 7.237, 8.301, 9.784, 11.73, 14.18, 17.17, 20.73",\
                 "6.595, 6.73, 7.126, 7.819, 8.883, 10.36, 12.31, 14.76, 17.75, 21.31",\
                 "7.201, 7.335, 7.733, 8.426, 9.489, 10.97, 12.92, 15.37, 18.36, 21.92",\
                 "7.805, 7.939, 8.335, 9.029, 10.09, 11.58, 13.52, 15.97, 18.96, 22.52",\
                 "8.39, 8.525, 8.922, 9.615, 10.68, 12.16, 14.11, 16.56, 19.55, 23.11",\
                 "8.95, 9.085, 9.482, 10.18, 11.24, 12.72, 14.67, 17.12, 20.11, 23.67",\
                 "9.472, 9.607, 10, 10.7, 11.76, 13.24, 15.19, 17.64, 20.63, 24.19");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.003651, 0.01296, 0.03073, 0.05842, 0.09727, 0.1484, 0.2128, 0.2914, 0.3851");
          values("0.4528, 0.533, 0.7686, 1.174, 1.792, 2.685, 3.91, 5.491, 7.431, 9.776",\
                 "0.4532, 0.5332, 0.7692, 1.174, 1.792, 2.686, 3.912, 5.494, 7.436, 9.779",\
                 "0.4532, 0.533, 0.7696, 1.174, 1.792, 2.688, 3.909, 5.493, 7.444, 9.776",\
                 "0.4534, 0.533, 0.77, 1.175, 1.792, 2.688, 3.905, 5.486, 7.44, 9.766",\
                 "0.4528, 0.533, 0.769, 1.175, 1.793, 2.688, 3.908, 5.486, 7.442, 9.762",\
                 "0.452, 0.532, 0.77, 1.172, 1.792, 2.688, 3.908, 5.492, 7.444, 9.772",\
                 "0.452, 0.534, 0.77, 1.174, 1.792, 2.686, 3.906, 5.486, 7.444, 9.764",\
                 "0.454, 0.534, 0.77, 1.174, 1.794, 2.686, 3.912, 5.486, 7.44, 9.758",\
                 "0.452, 0.534, 0.768, 1.176, 1.79, 2.688, 3.906, 5.486, 7.428, 9.752",\
                 "0.454, 0.534, 0.768, 1.174, 1.792, 2.684, 3.906, 5.484, 7.444, 9.756");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.003651, 0.01296, 0.03073, 0.05842, 0.09727, 0.1484, 0.2128, 0.2914, 0.3851");
          values("0.5064, 0.6524, 1.186, 2.29, 4.061, 6.545, 9.821, 13.96, 19, 24.99",\
                 "0.505, 0.6528, 1.186, 2.29, 4.062, 6.549, 9.826, 13.96, 18.99, 24.99",\
                 "0.5076, 0.6526, 1.186, 2.29, 4.059, 6.546, 9.827, 13.94, 19, 24.98",\
                 "0.5058, 0.6526, 1.186, 2.286, 4.059, 6.539, 9.822, 13.96, 19.01, 24.97",\
                 "0.5052, 0.6526, 1.185, 2.289, 4.06, 6.548, 9.82, 13.96, 18.99, 24.98",\
                 "0.506, 0.652, 1.186, 2.288, 4.06, 6.548, 9.828, 13.96, 18.97, 25.01",\
                 "0.504, 0.654, 1.184, 2.288, 4.058, 6.542, 9.826, 13.94, 18.99, 25.03",\
                 "0.508, 0.654, 1.184, 2.286, 4.054, 6.544, 9.816, 13.95, 19.01, 25.03",\
                 "0.506, 0.654, 1.186, 2.29, 4.062, 6.544, 9.808, 13.94, 19.01, 25.02",\
                 "0.506, 0.652, 1.186, 2.286, 4.058, 6.542, 9.812, 13.94, 18.98, 25");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.003651, 0.01296, 0.03073, 0.05842, 0.09727, 0.1484, 0.2128, 0.2914, 0.3851");
          values("5.305, 5.41, 5.679, 6.049, 6.522, 7.12, 7.875, 8.815, 9.958, 11.32",\
                 "5.373, 5.479, 5.747, 6.117, 6.589, 7.188, 7.943, 8.883, 10.02, 11.39",\
                 "5.61, 5.716, 5.984, 6.355, 6.827, 7.425, 8.181, 9.12, 10.26, 11.62",\
                 "6.058, 6.164, 6.432, 6.803, 7.275, 7.873, 8.629, 9.568, 10.71, 12.07",\
                 "6.651, 6.757, 7.026, 7.396, 7.868, 8.466, 9.222, 10.16, 11.3, 12.67",\
                 "7.267, 7.373, 7.641, 8.012, 8.484, 9.082, 9.838, 10.78, 11.92, 13.28",\
                 "7.877, 7.983, 8.251, 8.622, 9.094, 9.693, 10.45, 11.39, 12.53, 13.89",\
                 "8.47, 8.577, 8.844, 9.215, 9.688, 10.29, 11.04, 11.98, 13.12, 14.49",\
                 "9.038, 9.144, 9.413, 9.783, 10.26, 10.85, 11.61, 12.55, 13.69, 15.05",\
                 "9.567, 9.673, 9.941, 10.31, 10.78, 11.38, 12.14, 13.08, 14.22, 15.58");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.003651, 0.01296, 0.03073, 0.05842, 0.09727, 0.1484, 0.2128, 0.2914, 0.3851");
          values("5.266, 5.4, 5.797, 6.491, 7.553, 9.037, 10.98, 13.43, 16.42, 19.98",\
                 "5.334, 5.469, 5.865, 6.558, 7.621, 9.104, 11.05, 13.5, 16.49, 20.05",\
                 "5.57, 5.705, 6.101, 6.795, 7.858, 9.341, 11.29, 13.74, 16.73, 20.29",\
                 "6.013, 6.147, 6.544, 7.237, 8.301, 9.784, 11.73, 14.18, 17.17, 20.73",\
                 "6.595, 6.73, 7.126, 7.819, 8.883, 10.36, 12.31, 14.76, 17.75, 21.31",\
                 "7.201, 7.335, 7.733, 8.426, 9.489, 10.97, 12.92, 15.37, 18.36, 21.92",\
                 "7.805, 7.939, 8.335, 9.029, 10.09, 11.58, 13.52, 15.97, 18.96, 22.52",\
                 "8.39, 8.525, 8.922, 9.615, 10.68, 12.16, 14.11, 16.56, 19.55, 23.11",\
                 "8.95, 9.085, 9.482, 10.18, 11.24, 12.72, 14.67, 17.12, 20.11, 23.67",\
                 "9.472, 9.607, 10, 10.7, 11.76, 13.24, 15.19, 17.64, 20.63, 24.19");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.003651, 0.01296, 0.03073, 0.05842, 0.09727, 0.1484, 0.2128, 0.2914, 0.3851");
          values("0.4528, 0.533, 0.7686, 1.174, 1.793, 2.688, 3.91, 5.489, 7.444, 9.77",\
                 "0.4532, 0.5332, 0.7684, 1.174, 1.791, 2.688, 3.906, 5.484, 7.443, 9.759",\
                 "0.4528, 0.533, 0.7688, 1.174, 1.79, 2.687, 3.908, 5.492, 7.442, 9.761",\
                 "0.453, 0.533, 0.7692, 1.174, 1.793, 2.688, 3.909, 5.493, 7.444, 9.766",\
                 "0.453, 0.5336, 0.7694, 1.174, 1.792, 2.686, 3.908, 5.486, 7.442, 9.762",\
                 "0.454, 0.534, 0.768, 1.174, 1.792, 2.686, 3.912, 5.494, 7.438, 9.78",\
                 "0.452, 0.534, 0.77, 1.174, 1.792, 2.686, 3.906, 5.486, 7.444, 9.764",\
                 "0.454, 0.534, 0.768, 1.174, 1.794, 2.684, 3.91, 5.486, 7.436, 9.756",\
                 "0.452, 0.534, 0.77, 1.174, 1.792, 2.686, 3.908, 5.49, 7.428, 9.752",\
                 "0.452, 0.532, 0.77, 1.174, 1.79, 2.686, 3.91, 5.488, 7.442, 9.758");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.001, 0.003651, 0.01296, 0.03073, 0.05842, 0.09727, 0.1484, 0.2128, 0.2914, 0.3851");
          values("0.5064, 0.6536, 1.185, 2.29, 4.062, 6.549, 9.826, 13.96, 18.99, 25",\
                 "0.5058, 0.653, 1.186, 2.29, 4.062, 6.548, 9.827, 13.96, 18.99, 24.99",\
                 "0.5072, 0.6524, 1.187, 2.29, 4.061, 6.548, 9.827, 13.96, 19.01, 24.99",\
                 "0.5068, 0.6522, 1.186, 2.289, 4.058, 6.548, 9.828, 13.94, 18.99, 24.99",\
                 "0.505, 0.653, 1.186, 2.29, 4.062, 6.548, 9.828, 13.96, 18.99, 25.02",\
                 "0.508, 0.654, 1.186, 2.29, 4.06, 6.548, 9.826, 13.96, 18.98, 25.01",\
                 "0.508, 0.654, 1.184, 2.288, 4.056, 6.544, 9.816, 13.94, 19, 25",\
                 "0.506, 0.652, 1.186, 2.288, 4.056, 6.542, 9.816, 13.95, 19.01, 25.01",\
                 "0.508, 0.652, 1.184, 2.29, 4.06, 6.538, 9.808, 13.95, 19.01, 25.04",\
                 "0.504, 0.654, 1.186, 2.29, 4.058, 6.538, 9.812, 13.94, 18.98, 25.01");
        }
      }
    }

    pin(SE) {
      capacitance : 0.005369 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 25 ;
      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.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.01181, 0.01169, 0.0115, 0.01142, 0.01141, 0.01146, 0.01157, \
                  0.01173, 0.01173, 0.01061");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.0006222, 0.0005924, 0.0004995, 0.0003879, 0.0003427, 0.0003464, \
                  0.000414, 0.0005483, 0.0008377, 0.001461");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.03432, 0.0342, 0.03391, 0.03369, 0.03355, 0.03348, 0.03341, \
                  0.03297, 0.02667, 0.01501");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.01602, 0.01601, 0.01592, 0.01576, 0.01562, 0.01553, 0.0155, \
                  0.01556, 0.01575, 0.01624");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.0285, 0.02839, 0.02823, 0.02816, 0.02815, 0.02817, 0.02823, \
                  0.02831, 0.02818, 0.01308");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.0245, 0.02449, 0.0244, 0.02423, 0.02409, 0.02398, 0.0239, 0.02381, \
                  0.02342, 0.02071");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.01203, 0.01191, 0.01172, 0.01163, 0.01162, 0.01168, 0.01178, \
                  0.01193, 0.01198, 0.01081");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.0008139, 0.0007861, 0.0006974, 0.000591, 0.0005392, 0.000542, \
                  0.0006073, 0.0007332, 0.0009954, 0.001562");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.01179, 0.01168, 0.01149, 0.0114, 0.01139, 0.01145, 0.01156, \
                  0.01173, 0.01175, 0.01057");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.0006066, 0.0005796, 0.0004864, 0.0003808, 0.0003211, 0.0003293, \
                  0.0004021, 0.0005404, 0.0008274, 0.001462");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.0155, 0.01537, 0.01516, 0.01507, 0.01506, 0.01511, 0.01522, \
                  0.01539, 0.01541, 0.01412");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.0002274, 0.0002098, 9.841e-05, -5.615e-05, -0.0001736, -0.0002083, \
                  -0.0001664, -4.488e-05, 0.0002327, 0.0008424");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.01244, 0.01233, 0.01217, 0.01208, 0.01208, 0.01211, 0.0122, \
                  0.01235, 0.0124, 0.01097");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.004573, 0.00454, 0.004456, 0.004354, 0.004295, 0.004292, 0.00436, \
                  0.004495, 0.004781, 0.005387");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.01201, 0.01188, 0.01169, 0.01161, 0.0116, 0.01165, 0.01177, \
                  0.01192, 0.01196, 0.01084");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.0008031, 0.0007718, 0.0006837, 0.000583, 0.0005234, 0.0005284, \
                  0.00059, 0.0007202, 0.0009849, 0.001553");
        }
      }

      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.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("-0.384, -0.318, -0.103, 0.29, 0.823, 1.357, 1.892, 2.407, 2.874, 3.301",\
                 "-0.443, -0.384, -0.168, 0.225, 0.751, 1.29, 1.828, 2.337, 2.807, 3.233",\
                 "-0.685, -0.621, -0.402, -0.006, 0.503, 1.041, 1.577, 2.093, 2.56, 2.997",\
                 "-1.155, -1.089, -0.871, -0.469, 0.031, 0.566, 1.093, 1.601, 2.078, 2.508",\
                 "-1.836, -1.767, -1.559, -1.158, -0.656, -0.136, 0.394, 0.899, 1.374, 1.808",\
                 "-2.642, -2.576, -2.367, -1.981, -1.481, -0.962, -0.446, 0.057, 0.525, 0.959",\
                 "-3.561, -3.495, -3.283, -2.908, -2.414, -1.9, -1.392, -0.893, -0.424, 0.003",\
                 "-4.561, -4.499, -4.287, -3.928, -3.445, -2.935, -2.434, -1.942, -1.484, -1.057",\
                 "-5.646, -5.586, -5.386, -5.036, -4.564, -4.075, -3.58, -3.093, -2.638, -2.209",\
                 "-6.797, -6.737, -6.548, -6.215, -5.77, -5.284, -4.809, -4.326, -3.886, -3.46");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("-1.443, -1.375, -1.169, -0.912, -0.673, -0.466, -0.275, -0.117, 0.001, 0.071",\
                 "-1.491, -1.426, -1.221, -0.967, -0.73, -0.519, -0.33, -0.168, -0.053, 0.018",\
                 "-1.69, -1.621, -1.413, -1.159, -0.925, -0.706, -0.523, -0.362, -0.242, -0.179",\
                 "-1.995, -1.926, -1.719, -1.467, -1.229, -1.007, -0.819, -0.651, -0.534, -0.467",\
                 "-2.413, -2.349, -2.146, -1.886, -1.64, -1.409, -1.202, -1.032, -0.903, -0.819",\
                 "-2.873, -2.805, -2.608, -2.34, -2.085, -1.841, -1.629, -1.444, -1.301, -1.212",\
                 "-3.323, -3.254, -3.053, -2.783, -2.518, -2.26, -2.031, -1.836, -1.68, -1.591",\
                 "-3.711, -3.647, -3.443, -3.177, -2.908, -2.644, -2.399, -2.195, -2.035, -1.927",\
                 "-4.032, -3.963, -3.766, -3.507, -3.234, -2.964, -2.72, -2.504, -2.331, -2.215",\
                 "-4.249, -4.187, -3.99, -3.744, -3.483, -3.214, -2.96, -2.741, -2.56, -2.437");
        }
      }

      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.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("-2.651, -2.584, -2.377, -2.119, -1.885, -1.674, -1.486, -1.329, -1.219, -1.151",\
                 "-2.719, -2.657, -2.451, -2.188, -1.954, -1.751, -1.562, -1.404, -1.289, -1.227",\
                 "-2.994, -2.928, -2.722, -2.46, -2.229, -2.014, -1.829, -1.676, -1.558, -1.5",\
                 "-3.538, -3.468, -3.26, -3.002, -2.775, -2.561, -2.371, -2.218, -2.106, -2.038",\
                 "-4.354, -4.284, -4.082, -3.818, -3.589, -3.377, -3.19, -3.036, -2.918, -2.85",\
                 "-5.335, -5.269, -5.06, -4.8, -4.571, -4.359, -4.165, -4.013, -3.896, -3.828",\
                 "-6.435, -6.367, -6.166, -5.9, -5.671, -5.449, -5.26, -5.102, -4.985, -4.916",\
                 "-7.654, -7.58, -7.377, -7.118, -6.879, -6.665, -6.469, -6.308, -6.188, -6.12",\
                 "-8.975, -8.904, -8.703, -8.44, -8.198, -7.982, -7.787, -7.623, -7.502, -7.43",\
                 "-10.41, -10.35, -10.14, -9.876, -9.629, -9.406, -9.212, -9.046, -8.92, -8.85");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("-0.79, -0.721, -0.514, -0.13, 0.397, 0.949, 1.498, 2.011, 2.492, 2.93",\
                 "-0.855, -0.792, -0.586, -0.205, 0.326, 0.879, 1.427, 1.944, 2.426, 2.86",\
                 "-1.086, -1.015, -0.812, -0.431, 0.097, 0.654, 1.202, 1.727, 2.198, 2.638",\
                 "-1.413, -1.343, -1.132, -0.753, -0.235, 0.317, 0.864, 1.385, 1.861, 2.3",\
                 "-1.76, -1.688, -1.486, -1.102, -0.583, -0.039, 0.506, 1.019, 1.502, 1.936",\
                 "-2.081, -2.008, -1.799, -1.413, -0.902, -0.361, 0.188, 0.701, 1.189, 1.625",\
                 "-2.315, -2.252, -2.034, -1.654, -1.144, -0.604, -0.063, 0.458, 0.942, 1.377",\
                 "-2.474, -2.403, -2.198, -1.817, -1.3, -0.767, -0.223, 0.294, 0.775, 1.214",\
                 "-2.543, -2.477, -2.262, -1.886, -1.367, -0.839, -0.3, 0.219, 0.697, 1.137",\
                 "-2.515, -2.449, -2.234, -1.854, -1.34, -0.811, -0.278, 0.24, 0.721, 1.164");
        }
      }

      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.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("5.988, 5.926, 5.661, 5.083, 4.299, 3.482, 2.692, 1.948, 1.236, 0.589",\
                 "6.06, 5.992, 5.711, 5.15, 4.373, 3.543, 2.76, 2.014, 1.307, 0.654",\
                 "6.263, 6.205, 5.939, 5.365, 4.577, 3.76, 2.973, 2.224, 1.517, 0.874",\
                 "6.712, 6.645, 6.363, 5.808, 5.022, 4.204, 3.411, 2.668, 1.964, 1.32",\
                 "7.402, 7.345, 7.057, 6.499, 5.721, 4.892, 4.108, 3.36, 2.656, 2.018",\
                 "8.328, 8.246, 7.986, 7.429, 6.641, 5.817, 5.036, 4.292, 3.59, 2.959",\
                 "9.501, 9.439, 9.16, 8.602, 7.819, 7, 6.213, 5.483, 4.792, 4.165",\
                 "10.94, 10.88, 10.6, 10.05, 9.274, 8.459, 7.696, 6.96, 6.265, 5.641",\
                 "12.61, 12.55, 12.26, 11.72, 10.96, 10.14, 9.355, 8.627, 7.926, 7.295",\
                 "14.43, 14.37, 14.11, 13.55, 12.79, 11.97, 11.19, 10.44, 9.747, 9.097");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("3.75, 3.668, 3.392, 2.963, 2.377, 1.844, 1.411, 1.082, 0.837, 0.677",\
                 "3.812, 3.725, 3.451, 3.019, 2.438, 1.901, 1.468, 1.137, 0.898, 0.736",\
                 "3.999, 3.916, 3.645, 3.215, 2.624, 2.091, 1.66, 1.336, 1.09, 0.927",\
                 "4.309, 4.237, 3.96, 3.53, 2.936, 2.411, 1.976, 1.645, 1.394, 1.232",\
                 "4.742, 4.67, 4.387, 3.958, 3.371, 2.834, 2.4, 2.055, 1.796, 1.618",\
                 "5.273, 5.198, 4.922, 4.491, 3.908, 3.374, 2.926, 2.552, 2.271, 2.081",\
                 "5.821, 5.743, 5.472, 5.035, 4.458, 3.916, 3.452, 3.063, 2.76, 2.541",\
                 "6.334, 6.253, 5.984, 5.551, 4.969, 4.425, 3.946, 3.541, 3.223, 2.974",\
                 "6.782, 6.715, 6.439, 5.995, 5.431, 4.888, 4.406, 3.991, 3.631, 3.38",\
                 "7.167, 7.097, 6.822, 6.391, 5.804, 5.275, 4.774, 4.349, 3.99, 3.711");
        }
      }

      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.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("4.981, 4.905, 4.625, 4.196, 3.608, 3.075, 2.646, 2.319, 2.068, 1.915",\
                 "5.057, 4.974, 4.693, 4.234, 3.682, 3.148, 2.718, 2.39, 2.141, 1.981",\
                 "5.319, 5.246, 4.971, 4.502, 3.95, 3.425, 2.985, 2.659, 2.412, 2.256",\
                 "5.862, 5.786, 5.508, 5.085, 4.497, 3.965, 3.535, 3.203, 2.954, 2.795",\
                 "6.683, 6.604, 6.329, 5.862, 5.311, 4.777, 4.348, 4.017, 3.771, 3.616",\
                 "7.659, 7.583, 7.306, 6.851, 6.291, 5.757, 5.329, 4.995, 4.754, 4.595",\
                 "8.758, 8.678, 8.403, 7.937, 7.387, 6.85, 6.419, 6.079, 5.845, 5.677",\
                 "9.964, 9.893, 9.614, 9.144, 8.591, 8.054, 7.627, 7.286, 7.046, 6.888",\
                 "11.27, 11.2, 10.95, 10.48, 9.924, 9.376, 8.95, 8.598, 8.361, 8.201",\
                 "12.72, 12.65, 12.4, 11.92, 11.36, 10.84, 10.39, 10.05, 9.797, 9.637");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("6.63, 6.562, 6.296, 5.723, 4.943, 4.121, 3.329, 2.583, 1.877, 1.226",\
                 "6.705, 6.638, 6.358, 5.799, 5.015, 4.191, 3.402, 2.657, 1.954, 1.303",\
                 "6.923, 6.858, 6.576, 6.022, 5.237, 4.414, 3.629, 2.886, 2.178, 1.531",\
                 "7.247, 7.181, 6.9, 6.346, 5.561, 4.742, 3.951, 3.203, 2.496, 1.854",\
                 "7.554, 7.483, 7.198, 6.646, 5.857, 5.036, 4.252, 3.501, 2.797, 2.154",\
                 "7.805, 7.741, 7.461, 6.901, 6.116, 5.291, 4.506, 3.762, 3.061, 2.414",\
                 "8.006, 7.931, 7.666, 7.113, 6.342, 5.525, 4.747, 4.013, 3.316, 2.684",\
                 "8.19, 8.106, 7.838, 7.287, 6.524, 5.706, 4.937, 4.202, 3.503, 2.871",\
                 "8.238, 8.179, 7.913, 7.35, 6.586, 5.79, 5.03, 4.291, 3.598, 2.966",\
                 "8.197, 8.137, 7.847, 7.307, 6.552, 5.765, 4.999, 4.275, 3.582, 2.945");
        }
      }
    }

    pin(SI) {
      capacitance : 0.002372 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 25 ;
      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.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.001679, 0.001674, 0.00167, 0.001673, 0.001671, 0.001672, 0.001673, \
                  0.001673, 0.001577, 0.001182");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("-0.001599, -0.0016, -0.001614, -0.001629, -0.001636, -0.001641, \
                  -0.001644, -0.001648, -0.001598, -0.001395");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.02622, 0.02612, 0.02605, 0.02597, 0.02588, 0.02576, 0.02557, \
                  0.0249, 0.01837, 0.006677");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.01513, 0.01507, 0.01498, 0.01492, 0.01486, 0.01479, 0.01472, \
                  0.01465, 0.01461, 0.01468");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.00167, 0.001672, 0.001669, 0.001675, 0.001675, 0.001673, 0.001673, \
                  0.001674, 0.001579, 0.001184");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("-0.001579, -0.001592, -0.001613, -0.001631, -0.001637, -0.001641, \
                  -0.001644, -0.001647, -0.001598, -0.001395");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.02622, 0.02613, 0.02605, 0.02597, 0.02587, 0.02576, 0.02557, \
                  0.0249, 0.01836, 0.006676");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.01512, 0.01507, 0.01499, 0.01492, 0.01486, 0.01479, 0.01472, \
                  0.01465, 0.01461, 0.01468");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.001674, 0.001667, 0.001668, 0.00167, 0.001672, 0.001673, 0.001673, \
                  0.001673, 0.001578, 0.001182");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("-0.001594, -0.001598, -0.001614, -0.001625, -0.001637, -0.001641, \
                  -0.001645, -0.001646, -0.001598, -0.001395");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.005876, 0.005876, 0.005878, 0.005881, 0.005881, 0.005876, 0.00587, \
                  0.005873, 0.005772, 0.00517");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("-0.00129, -0.001322, -0.001369, -0.00141, -0.001447, -0.001477, \
                  -0.0015, -0.001518, -0.001487, -0.001314");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.001668, 0.00167, 0.001669, 0.001671, 0.001674, 0.001673, 0.001674, \
                  0.001673, 0.001579, 0.001184");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("-0.001578, -0.001588, -0.001611, -0.001626, -0.001637, -0.001641, \
                  -0.001645, -0.001647, -0.001599, -0.001395");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("0.005876, 0.005876, 0.005878, 0.005881, 0.005882, 0.005874, 0.005872, \
                  0.005874, 0.00577, 0.005172");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("-0.00129, -0.001322, -0.001369, -0.001409, -0.001446, -0.001477, \
                  -0.0015, -0.001518, -0.001487, -0.001314");
        }
      }

      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.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("-0.704, -0.64, -0.428, -0.051, 0.463, 1.019, 1.568, 2.094, 2.576, 3.019",\
                 "-0.757, -0.688, -0.48, -0.103, 0.415, 0.958, 1.51, 2.036, 2.517, 2.957",\
                 "-1.004, -0.939, -0.724, -0.346, 0.159, 0.697, 1.246, 1.771, 2.25, 2.692",\
                 "-1.428, -1.36, -1.153, -0.773, -0.263, 0.268, 0.802, 1.319, 1.805, 2.245",\
                 "-2.044, -1.974, -1.768, -1.382, -0.874, -0.353, 0.171, 0.685, 1.166, 1.604",\
                 "-2.788, -2.726, -2.513, -2.14, -1.638, -1.12, -0.598, -0.092, 0.384, 0.821",\
                 "-3.642, -3.579, -3.378, -3.012, -2.51, -1.995, -1.483, -0.984, -0.517, -0.084",\
                 "-4.577, -4.516, -4.322, -3.965, -3.471, -2.965, -2.462, -1.967, -1.504, -1.075",\
                 "-5.612, -5.552, -5.357, -5.005, -4.524, -4.023, -3.521, -3.035, -2.577, -2.15",\
                 "-6.723, -6.663, -6.471, -6.136, -5.659, -5.174, -4.687, -4.195, -3.75, -3.328");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("-1.649, -1.581, -1.372, -1.111, -0.881, -0.674, -0.49, -0.339, -0.235, -0.174",\
                 "-1.697, -1.633, -1.427, -1.171, -0.937, -0.732, -0.548, -0.394, -0.285, -0.228",\
                 "-1.852, -1.786, -1.579, -1.314, -1.089, -0.878, -0.698, -0.545, -0.435, -0.378",\
                 "-2.105, -2.033, -1.825, -1.565, -1.341, -1.127, -0.944, -0.792, -0.683, -0.618",\
                 "-2.441, -2.379, -2.174, -1.907, -1.676, -1.458, -1.266, -1.11, -0.997, -0.938",\
                 "-2.811, -2.742, -2.53, -2.27, -2.031, -1.811, -1.62, -1.462, -1.339, -1.277",\
                 "-3.155, -3.089, -2.884, -2.624, -2.374, -2.156, -1.951, -1.788, -1.664, -1.596",\
                 "-3.472, -3.405, -3.208, -2.943, -2.699, -2.465, -2.254, -2.081, -1.948, -1.876",\
                 "-3.746, -3.68, -3.479, -3.229, -2.979, -2.733, -2.518, -2.33, -2.197, -2.112",\
                 "-3.945, -3.881, -3.684, -3.441, -3.185, -2.937, -2.715, -2.524, -2.378, -2.282");
        }
      }

      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.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("-0.698, -0.631, -0.428, -0.051, 0.472, 1.019, 1.568, 2.094, 2.576, 3.019",\
                 "-0.748, -0.694, -0.48, -0.103, 0.415, 0.958, 1.51, 2.036, 2.517, 2.957",\
                 "-0.999, -0.939, -0.724, -0.346, 0.159, 0.697, 1.24, 1.771, 2.25, 2.692",\
                 "-1.423, -1.36, -1.153, -0.773, -0.263, 0.268, 0.802, 1.319, 1.805, 2.245",\
                 "-2.034, -1.974, -1.768, -1.382, -0.874, -0.353, 0.171, 0.685, 1.166, 1.604",\
                 "-2.781, -2.726, -2.522, -2.14, -1.638, -1.12, -0.598, -0.098, 0.384, 0.811",\
                 "-3.636, -3.579, -3.378, -3.005, -2.51, -1.995, -1.483, -0.984, -0.517, -0.084",\
                 "-4.577, -4.516, -4.313, -3.965, -3.471, -2.965, -2.455, -1.967, -1.494, -1.075",\
                 "-5.607, -5.552, -5.351, -5.005, -4.53, -4.023, -3.521, -3.035, -2.571, -2.15",\
                 "-6.716, -6.663, -6.471, -6.136, -5.668, -5.174, -4.676, -4.2, -3.744, -3.328");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("-1.649, -1.581, -1.372, -1.111, -0.881, -0.674, -0.49, -0.339, -0.235, -0.174",\
                 "-1.697, -1.633, -1.427, -1.171, -0.937, -0.732, -0.548, -0.394, -0.285, -0.228",\
                 "-1.852, -1.786, -1.579, -1.321, -1.089, -0.878, -0.698, -0.545, -0.435, -0.378",\
                 "-2.105, -2.033, -1.825, -1.565, -1.341, -1.127, -0.944, -0.792, -0.683, -0.618",\
                 "-2.441, -2.379, -2.174, -1.907, -1.676, -1.458, -1.266, -1.11, -0.997, -0.938",\
                 "-2.811, -2.742, -2.53, -2.27, -2.031, -1.811, -1.62, -1.462, -1.339, -1.277",\
                 "-3.155, -3.089, -2.884, -2.624, -2.374, -2.156, -1.951, -1.788, -1.664, -1.596",\
                 "-3.472, -3.405, -3.208, -2.943, -2.699, -2.465, -2.254, -2.081, -1.948, -1.876",\
                 "-3.746, -3.68, -3.485, -3.229, -2.979, -2.733, -2.518, -2.33, -2.197, -2.112",\
                 "-3.945, -3.881, -3.684, -3.441, -3.185, -2.946, -2.715, -2.524, -2.378, -2.282");
        }
      }

      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.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("6.607, 6.544, 6.26, 5.702, 4.924, 4.098, 3.312, 2.567, 1.86, 1.211",\
                 "6.651, 6.589, 6.305, 5.749, 4.965, 4.143, 3.355, 2.607, 1.903, 1.258",\
                 "6.898, 6.835, 6.558, 5.994, 5.209, 4.389, 3.604, 2.842, 2.149, 1.508",\
                 "7.326, 7.266, 6.978, 6.424, 5.638, 4.822, 4.027, 3.287, 2.583, 1.934",\
                 "7.951, 7.888, 7.61, 7.051, 6.267, 5.441, 4.659, 3.908, 3.207, 2.571",\
                 "8.79, 8.72, 8.442, 7.887, 7.1, 6.283, 5.49, 4.745, 4.045, 3.403",\
                 "9.849, 9.782, 9.503, 8.942, 8.162, 7.342, 6.55, 5.809, 5.112, 4.482",\
                 "11.13, 11.08, 10.79, 10.24, 9.452, 8.638, 7.856, 7.131, 6.429, 5.789",\
                 "12.61, 12.55, 12.27, 11.72, 10.95, 10.13, 9.347, 8.617, 7.909, 7.262",\
                 "14.22, 14.16, 13.89, 13.34, 12.58, 11.75, 10.97, 10.21, 9.507, 8.857");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("3.967, 3.892, 3.615, 3.184, 2.595, 2.059, 1.631, 1.305, 1.067, 0.915",\
                 "4.027, 3.944, 3.669, 3.24, 2.655, 2.114, 1.687, 1.363, 1.125, 0.975",\
                 "4.172, 4.099, 3.82, 3.385, 2.804, 2.272, 1.841, 1.519, 1.277, 1.126",\
                 "4.43, 4.35, 4.08, 3.647, 3.063, 2.531, 2.094, 1.776, 1.531, 1.376",\
                 "4.789, 4.709, 4.432, 4, 3.416, 2.882, 2.448, 2.112, 1.87, 1.712",\
                 "5.212, 5.135, 4.862, 4.431, 3.847, 3.307, 2.869, 2.523, 2.263, 2.1",\
                 "5.653, 5.572, 5.297, 4.868, 4.282, 3.746, 3.292, 2.932, 2.659, 2.475",\
                 "6.07, 5.986, 5.714, 5.288, 4.703, 4.157, 3.696, 3.321, 3.03, 2.837",\
                 "6.445, 6.375, 6.094, 5.68, 5.082, 4.537, 4.069, 3.682, 3.375, 3.147",\
                 "6.79, 6.708, 6.433, 5.993, 5.404, 4.869, 4.396, 3.983, 3.66, 3.417");
        }
      }

      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.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("6.607, 6.544, 6.275, 5.702, 4.924, 4.098, 3.312, 2.567, 1.854, 1.211",\
                 "6.651, 6.589, 6.305, 5.749, 4.965, 4.143, 3.355, 2.607, 1.903, 1.258",\
                 "6.898, 6.835, 6.558, 6.001, 5.215, 4.389, 3.604, 2.86, 2.149, 1.508",\
                 "7.326, 7.244, 6.985, 6.424, 5.638, 4.822, 4.027, 3.287, 2.576, 1.942",\
                 "7.951, 7.888, 7.61, 7.051, 6.267, 5.441, 4.651, 3.908, 3.207, 2.571",\
                 "8.79, 8.728, 8.442, 7.887, 7.1, 6.283, 5.49, 4.745, 4.045, 3.412",\
                 "9.843, 9.782, 9.504, 8.942, 8.162, 7.342, 6.55, 5.809, 5.112, 4.482",\
                 "11.13, 11.08, 10.79, 10.24, 9.452, 8.638, 7.856, 7.131, 6.429, 5.789",\
                 "12.61, 12.55, 12.27, 11.72, 10.95, 10.13, 9.347, 8.617, 7.909, 7.262",\
                 "14.22, 14.16, 13.89, 13.34, 12.58, 11.75, 10.97, 10.21, 9.507, 8.857");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          index_2("0.02, 0.1924, 0.7976, 1.953, 3.754, 6.28, 9.605, 13.79, 18.91, 25");
          values("3.962, 3.892, 3.61, 3.178, 2.595, 2.059, 1.626, 1.305, 1.067, 0.915",\
                 "4.018, 3.938, 3.663, 3.234, 2.655, 2.114, 1.681, 1.363, 1.12, 0.967",\
                 "4.172, 4.093, 3.82, 3.385, 2.799, 2.263, 1.835, 1.51, 1.271, 1.118",\
                 "4.424, 4.35, 4.073, 3.608, 3.055, 2.521, 2.094, 1.767, 1.524, 1.368",\
                 "4.78, 4.709, 4.421, 3.993, 3.416, 2.876, 2.44, 2.107, 1.863, 1.703",\
                 "5.212, 5.127, 4.853, 4.421, 3.841, 3.307, 2.86, 2.499, 2.256, 2.09",\
                 "5.642, 5.566, 5.29, 4.855, 4.274, 3.746, 3.287, 2.925, 2.659, 2.47",\
                 "6.062, 5.986, 5.705, 5.279, 4.698, 4.157, 3.689, 3.313, 3.02, 2.826",\
                 "6.433, 6.375, 6.088, 5.667, 5.069, 4.537, 4.061, 3.682, 3.364, 3.141",\
                 "6.782, 6.701, 6.41, 5.993, 5.404, 4.86, 4.386, 3.983, 3.647, 3.402");
        }
      }
    }

    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 ;
      }
    }
  }

