/*
 * 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_1) {
    area : 83.417600 ;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    pin(CLK) {
      capacitance : 0.003501 ;
      clock : true ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 4 ;
      min_period : 1.338 ;
      min_pulse_width_high : 0.358 ;
      min_pulse_width_low : 0.669 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.2786, 0.2781, 0.2818, 0.2988, 0.3335, 0.3875, 0.4622, 0.5582, \
                 0.6769, 0.819");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.2168, 0.2163, 0.2187, 0.2326, 0.2615, 0.3085, 0.3744, 0.4601, \
                 0.5666, 0.6945");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.2786, 0.2781, 0.2818, 0.2988, 0.3335, 0.3875, 0.4622, 0.5582, \
                 0.6769, 0.819");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.2168, 0.2163, 0.2187, 0.2326, 0.2615, 0.3085, 0.3744, 0.4601, \
                 0.5665, 0.6945");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.2787, 0.2782, 0.2818, 0.2989, 0.3336, 0.3876, 0.4623, 0.5583, \
                 0.6772, 0.819");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.2167, 0.2162, 0.2186, 0.2325, 0.2616, 0.3084, 0.3742, 0.4599, \
                 0.5663, 0.6943");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.2825, 0.2822, 0.2857, 0.3028, 0.3375, 0.3913, 0.4661, 0.5622, \
                 0.6809, 0.823");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.2185, 0.2181, 0.2204, 0.2345, 0.2636, 0.3103, 0.3764, 0.4621, \
                 0.5685, 0.6962");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.2826, 0.2822, 0.2859, 0.3029, 0.3376, 0.3914, 0.4662, 0.5622, \
                 0.6809, 0.823");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.2185, 0.218, 0.2203, 0.2344, 0.2634, 0.3104, 0.3761, 0.4622, \
                 0.5685, 0.6963");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.2766, 0.2761, 0.2798, 0.297, 0.3315, 0.3855, 0.4601, 0.5564, \
                 0.6752, 0.8171");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.2184, 0.218, 0.2203, 0.2343, 0.2635, 0.3102, 0.3761, 0.4621, \
                 0.5685, 0.6964");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.2787, 0.2782, 0.2818, 0.2989, 0.3336, 0.3876, 0.4622, 0.5583, \
                 0.6772, 0.8193");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.2167, 0.2162, 0.2186, 0.2326, 0.2615, 0.3084, 0.3742, 0.4599, \
                 0.5664, 0.694");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.2765, 0.2761, 0.2797, 0.297, 0.3315, 0.3855, 0.4601, 0.5565, \
                 0.675, 0.8171");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.2186, 0.218, 0.2205, 0.2344, 0.2637, 0.3105, 0.3761, 0.4622, \
                 0.5686, 0.6964");
        }
      }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.3348, 0.3343, 0.3335, 0.3333, 0.3402, 0.3628, 0.4081, 0.4766, \
                 0.566, 0.6746");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.1915, 0.1905, 0.1892, 0.1896, 0.1977, 0.2187, 0.2554, 0.3084, \
                 0.3784, 0.4657");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.3349, 0.3342, 0.3334, 0.3333, 0.3402, 0.3629, 0.4081, 0.4765, \
                 0.566, 0.6745");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.1915, 0.1905, 0.1892, 0.1896, 0.1977, 0.2187, 0.2554, 0.3083, \
                 0.3785, 0.4657");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.02028, 0.02022, 0.02016, 0.02015, 0.02011, 0.02009, 0.02012, \
                 0.0201, 0.02011, 0.0201");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.01955, -0.01958, -0.01952, -0.01956, -0.01968, -0.01975, -0.01984, \
                 -0.01981, -0.01985, -0.01992");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.0201, 0.02011, 0.02011, 0.02012, 0.0201, 0.02013, 0.02014, 0.02013, \
                 0.02013, 0.02012");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.01782, -0.01819, -0.01918, -0.01954, -0.01966, -0.01973, -0.01982, \
                 -0.01985, -0.01989, -0.01991");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.06922, 0.06917, 0.06895, 0.06874, 0.06864, 0.06859, 0.06855, \
                 0.06859, 0.06854, 0.0686");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.005192, -0.005588, -0.006389, -0.00716, -0.007701, -0.008038, \
                 -0.008296, -0.008465, -0.008579, -0.008644");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.06924, 0.0691, 0.06897, 0.06879, 0.06858, 0.06855, 0.06856, \
                 0.06857, 0.06861, 0.0686");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.005193, -0.005587, -0.006383, -0.007161, -0.007701, -0.008039, \
                 -0.00828, -0.008455, -0.008571, -0.00866");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.02012, 0.02008, 0.02014, 0.02012, 0.0201, 0.02009, 0.02011, \
                 0.02015, 0.02015, 0.02013");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.01957, -0.01948, -0.01953, -0.01956, -0.01969, -0.01976, -0.0198, \
                 -0.01986, -0.01988, -0.01992");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.02015, 0.02017, 0.02012, 0.02011, 0.02009, 0.02012, 0.02011, \
                 0.02013, 0.02014, 0.02014");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.01803, -0.01835, -0.0192, -0.01956, -0.01966, -0.01974, -0.01979, \
                 -0.01986, -0.01985, -0.01991");
        }
      }

      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.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.103, -0.099, -0.077, -0.05, -0.019, 0.013, 0.038, 0.049, 0.052, 0.039",\
                 "-0.107, -0.101, -0.083, -0.053, -0.021, 0.012, 0.038, 0.048, 0.051, 0.038",\
                 "-0.116, -0.113, -0.098, -0.065, -0.027, 0.002, 0.026, 0.039, 0.04, 0.029",\
                 "-0.134, -0.127, -0.108, -0.078, -0.044, -0.013, 0.011, 0.027, 0.025, 0.016",\
                 "-0.15, -0.153, -0.127, -0.098, -0.063, -0.034, -0.011, 0.003, 0.006, -0.001",\
                 "-0.172, -0.173, -0.149, -0.116, -0.081, -0.054, -0.026, -0.011, -0.015, -0.025",\
                 "-0.184, -0.185, -0.163, -0.126, -0.097, -0.059, -0.039, -0.022, -0.025, -0.034",\
                 "-0.196, -0.196, -0.175, -0.14, -0.105, -0.071, -0.045, -0.028, -0.031, -0.039",\
                 "-0.207, -0.207, -0.185, -0.153, -0.116, -0.086, -0.054, -0.034, -0.037, -0.044",\
                 "-0.225, -0.23, -0.205, -0.168, -0.136, -0.113, -0.068, -0.053, -0.05, -0.058");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.263, -0.261, -0.246, -0.24, -0.238, -0.256, -0.279, -0.315, -0.352, -0.408",\
                 "-0.263, -0.263, -0.246, -0.239, -0.238, -0.256, -0.276, -0.313, -0.356, -0.412",\
                 "-0.269, -0.259, -0.249, -0.237, -0.238, -0.259, -0.276, -0.311, -0.355, -0.41",\
                 "-0.266, -0.265, -0.253, -0.242, -0.242, -0.254, -0.28, -0.315, -0.357, -0.409",\
                 "-0.268, -0.266, -0.252, -0.24, -0.245, -0.256, -0.278, -0.309, -0.342, -0.402",\
                 "-0.269, -0.267, -0.249, -0.236, -0.241, -0.253, -0.272, -0.298, -0.343, -0.396",\
                 "-0.253, -0.255, -0.237, -0.226, -0.228, -0.238, -0.26, -0.295, -0.331, -0.388",\
                 "-0.231, -0.226, -0.211, -0.199, -0.2, -0.218, -0.234, -0.27, -0.315, -0.366",\
                 "-0.184, -0.176, -0.169, -0.153, -0.152, -0.171, -0.196, -0.234, -0.274, -0.335",\
                 "-0.115, -0.114, -0.102, -0.087, -0.096, -0.112, -0.136, -0.174, -0.221, -0.281");
        }
      }

      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.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.103, -0.099, -0.077, -0.05, -0.019, 0.013, 0.038, 0.049, 0.052, 0.039",\
                 "-0.107, -0.101, -0.083, -0.053, -0.021, 0.012, 0.038, 0.048, 0.051, 0.038",\
                 "-0.116, -0.113, -0.098, -0.065, -0.027, 0.002, 0.026, 0.039, 0.04, 0.029",\
                 "-0.134, -0.127, -0.108, -0.078, -0.044, -0.013, 0.011, 0.027, 0.025, 0.016",\
                 "-0.15, -0.153, -0.127, -0.098, -0.063, -0.034, -0.011, 0.003, 0.006, -0.001",\
                 "-0.172, -0.173, -0.149, -0.116, -0.081, -0.054, -0.026, -0.011, -0.015, -0.025",\
                 "-0.184, -0.185, -0.163, -0.131, -0.097, -0.059, -0.039, -0.022, -0.025, -0.034",\
                 "-0.196, -0.196, -0.175, -0.14, -0.105, -0.071, -0.045, -0.028, -0.031, -0.039",\
                 "-0.207, -0.207, -0.185, -0.153, -0.116, -0.086, -0.054, -0.034, -0.037, -0.044",\
                 "-0.225, -0.23, -0.21, -0.168, -0.136, -0.113, -0.068, -0.053, -0.05, -0.058");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.263, -0.261, -0.246, -0.24, -0.238, -0.256, -0.279, -0.315, -0.352, -0.408",\
                 "-0.263, -0.263, -0.246, -0.239, -0.238, -0.256, -0.276, -0.313, -0.356, -0.412",\
                 "-0.269, -0.259, -0.249, -0.237, -0.238, -0.259, -0.276, -0.311, -0.355, -0.41",\
                 "-0.266, -0.265, -0.253, -0.242, -0.242, -0.254, -0.28, -0.315, -0.357, -0.409",\
                 "-0.268, -0.266, -0.252, -0.24, -0.245, -0.256, -0.278, -0.309, -0.342, -0.402",\
                 "-0.269, -0.267, -0.249, -0.236, -0.241, -0.253, -0.272, -0.298, -0.343, -0.396",\
                 "-0.253, -0.255, -0.237, -0.226, -0.228, -0.238, -0.26, -0.295, -0.331, -0.388",\
                 "-0.231, -0.226, -0.211, -0.199, -0.2, -0.218, -0.234, -0.27, -0.315, -0.366",\
                 "-0.184, -0.176, -0.161, -0.153, -0.152, -0.171, -0.202, -0.234, -0.274, -0.335",\
                 "-0.115, -0.109, -0.096, -0.087, -0.091, -0.112, -0.136, -0.174, -0.221, -0.281");
        }
      }

      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.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.573, 0.567, 0.544, 0.504, 0.458, 0.415, 0.391, 0.367, 0.36, 0.362",\
                 "0.575, 0.568, 0.546, 0.51, 0.465, 0.419, 0.39, 0.373, 0.357, 0.366",\
                 "0.591, 0.585, 0.555, 0.521, 0.478, 0.433, 0.405, 0.379, 0.371, 0.374",\
                 "0.6, 0.596, 0.571, 0.535, 0.486, 0.451, 0.416, 0.4, 0.382, 0.387",\
                 "0.639, 0.632, 0.607, 0.568, 0.519, 0.479, 0.449, 0.431, 0.416, 0.424",\
                 "0.709, 0.704, 0.678, 0.644, 0.598, 0.556, 0.518, 0.503, 0.486, 0.489",\
                 "0.829, 0.822, 0.796, 0.758, 0.712, 0.67, 0.638, 0.616, 0.593, 0.593",\
                 "0.98, 0.972, 0.949, 0.909, 0.859, 0.816, 0.781, 0.748, 0.728, 0.722",\
                 "1.163, 1.156, 1.128, 1.087, 1.032, 0.985, 0.945, 0.912, 0.897, 0.891",\
                 "1.36, 1.357, 1.331, 1.287, 1.234, 1.183, 1.144, 1.108, 1.084, 1.075");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.515, 0.505, 0.488, 0.452, 0.424, 0.409, 0.417, 0.437, 0.468, 0.513",\
                 "0.519, 0.507, 0.486, 0.456, 0.43, 0.413, 0.416, 0.438, 0.466, 0.513",\
                 "0.519, 0.508, 0.488, 0.459, 0.421, 0.413, 0.415, 0.44, 0.468, 0.513",\
                 "0.514, 0.511, 0.488, 0.458, 0.423, 0.413, 0.416, 0.439, 0.467, 0.511",\
                 "0.521, 0.519, 0.492, 0.46, 0.427, 0.417, 0.415, 0.439, 0.462, 0.51",\
                 "0.532, 0.524, 0.504, 0.471, 0.437, 0.421, 0.418, 0.438, 0.465, 0.508",\
                 "0.537, 0.526, 0.503, 0.472, 0.439, 0.425, 0.425, 0.436, 0.462, 0.504",\
                 "0.529, 0.516, 0.5, 0.468, 0.439, 0.423, 0.413, 0.429, 0.457, 0.494",\
                 "0.511, 0.498, 0.484, 0.458, 0.427, 0.404, 0.4, 0.414, 0.437, 0.472",\
                 "0.481, 0.473, 0.453, 0.426, 0.393, 0.372, 0.368, 0.386, 0.4, 0.436");
        }
      }

      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.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.572, 0.567, 0.544, 0.504, 0.458, 0.421, 0.391, 0.367, 0.36, 0.367",\
                 "0.575, 0.568, 0.546, 0.51, 0.465, 0.419, 0.39, 0.373, 0.357, 0.366",\
                 "0.591, 0.576, 0.555, 0.521, 0.478, 0.433, 0.405, 0.385, 0.371, 0.374",\
                 "0.6, 0.59, 0.571, 0.535, 0.485, 0.451, 0.411, 0.4, 0.382, 0.387",\
                 "0.639, 0.632, 0.607, 0.568, 0.519, 0.479, 0.449, 0.431, 0.416, 0.424",\
                 "0.709, 0.704, 0.678, 0.644, 0.598, 0.556, 0.518, 0.503, 0.486, 0.489",\
                 "0.829, 0.822, 0.796, 0.758, 0.712, 0.67, 0.63, 0.616, 0.593, 0.593",\
                 "0.98, 0.972, 0.949, 0.909, 0.859, 0.816, 0.781, 0.748, 0.728, 0.729",\
                 "1.163, 1.156, 1.128, 1.087, 1.032, 0.985, 0.945, 0.912, 0.897, 0.891",\
                 "1.36, 1.352, 1.331, 1.287, 1.234, 1.183, 1.137, 1.108, 1.084, 1.075");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.515, 0.505, 0.488, 0.452, 0.424, 0.409, 0.417, 0.437, 0.468, 0.513",\
                 "0.519, 0.507, 0.486, 0.456, 0.421, 0.413, 0.416, 0.438, 0.466, 0.513",\
                 "0.519, 0.508, 0.488, 0.459, 0.421, 0.413, 0.415, 0.44, 0.468, 0.513",\
                 "0.514, 0.511, 0.488, 0.458, 0.429, 0.413, 0.416, 0.439, 0.467, 0.511",\
                 "0.521, 0.519, 0.492, 0.46, 0.427, 0.417, 0.415, 0.439, 0.462, 0.51",\
                 "0.532, 0.524, 0.504, 0.471, 0.437, 0.421, 0.418, 0.438, 0.465, 0.508",\
                 "0.537, 0.526, 0.503, 0.472, 0.439, 0.425, 0.425, 0.446, 0.462, 0.504",\
                 "0.529, 0.516, 0.5, 0.468, 0.439, 0.423, 0.413, 0.429, 0.457, 0.494",\
                 "0.511, 0.506, 0.484, 0.458, 0.427, 0.404, 0.4, 0.414, 0.437, 0.472",\
                 "0.481, 0.473, 0.453, 0.426, 0.393, 0.372, 0.368, 0.386, 0.4, 0.436");
        }
      }
    }

    pin(Q) {
      direction : output ;
      function : "IQ1" ;
      max_capacitance : 0.2385 ;
      max_transition : 4 ;
      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.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002639, 0.008392, 0.01938, 0.0365, 0.06051, 0.09211, 0.1319, 0.1805, 0.2385");
          values("0.2956, 0.2924, 0.2865, 0.282, 0.2794, 0.2777, 0.2765, 0.2757, 0.2751, 0.2748",\
                 "0.2956, 0.2925, 0.2863, 0.2821, 0.2794, 0.2776, 0.2765, 0.2758, 0.2752, 0.2748",\
                 "0.2957, 0.2926, 0.2865, 0.2821, 0.2794, 0.2776, 0.2765, 0.2758, 0.2751, 0.2748",\
                 "0.2971, 0.2939, 0.288, 0.2834, 0.2808, 0.2792, 0.2779, 0.2771, 0.2765, 0.2761",\
                 "0.2997, 0.2966, 0.2906, 0.2861, 0.2835, 0.2817, 0.2806, 0.2799, 0.2792, 0.2788",\
                 "0.3027, 0.2993, 0.2935, 0.2892, 0.2863, 0.2845, 0.2835, 0.2828, 0.2822, 0.2819",\
                 "0.3067, 0.3034, 0.2974, 0.2931, 0.2904, 0.2887, 0.2874, 0.2866, 0.2861, 0.2857",\
                 "0.3108, 0.3075, 0.3015, 0.2972, 0.2944, 0.2928, 0.2916, 0.2909, 0.2903, 0.2898",\
                 "0.316, 0.3127, 0.3068, 0.3023, 0.2997, 0.2979, 0.2967, 0.2959, 0.2954, 0.295",\
                 "0.3208, 0.3176, 0.3116, 0.3073, 0.3045, 0.3028, 0.3016, 0.3009, 0.3003, 0.2998");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002639, 0.008392, 0.01938, 0.0365, 0.06051, 0.09211, 0.1319, 0.1805, 0.2385");
          values("0.2737, 0.2713, 0.2667, 0.2631, 0.2611, 0.2601, 0.2602, 0.2616, 0.2621, 0.2632",\
                 "0.2735, 0.2713, 0.2668, 0.2632, 0.261, 0.2601, 0.2602, 0.2616, 0.2621, 0.2632",\
                 "0.2736, 0.2712, 0.2665, 0.2632, 0.2611, 0.2601, 0.2601, 0.2611, 0.2628, 0.2629",\
                 "0.2747, 0.2723, 0.2678, 0.2642, 0.2622, 0.2615, 0.2616, 0.2619, 0.2636, 0.2638",\
                 "0.2778, 0.2754, 0.2709, 0.2673, 0.2653, 0.2643, 0.2642, 0.2657, 0.2664, 0.2672",\
                 "0.282, 0.2797, 0.2754, 0.272, 0.2697, 0.2688, 0.2692, 0.2694, 0.2708, 0.2715",\
                 "0.2876, 0.2851, 0.2805, 0.2772, 0.2755, 0.2746, 0.2744, 0.2747, 0.2762, 0.2774",\
                 "0.2945, 0.2921, 0.2877, 0.2835, 0.2815, 0.282, 0.2823, 0.2823, 0.2829, 0.2837",\
                 "0.3027, 0.3004, 0.2958, 0.2913, 0.2891, 0.2888, 0.2903, 0.2917, 0.2921, 0.2918",\
                 "0.312, 0.3096, 0.3051, 0.3011, 0.2987, 0.2977, 0.298, 0.3004, 0.3028, 0.3021");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002639, 0.008392, 0.01938, 0.0365, 0.06051, 0.09211, 0.1319, 0.1805, 0.2385");
          values("0.2956, 0.2924, 0.2862, 0.282, 0.2793, 0.2776, 0.2765, 0.2757, 0.275, 0.2747",\
                 "0.2956, 0.2924, 0.2864, 0.282, 0.2794, 0.2777, 0.2765, 0.2758, 0.2751, 0.2748",\
                 "0.2957, 0.2925, 0.2863, 0.282, 0.2794, 0.2777, 0.2766, 0.2757, 0.2751, 0.2747",\
                 "0.297, 0.2938, 0.2879, 0.2835, 0.2809, 0.2792, 0.278, 0.2772, 0.2766, 0.2763",\
                 "0.2997, 0.2966, 0.2906, 0.2861, 0.2835, 0.2817, 0.2805, 0.2799, 0.2792, 0.2788",\
                 "0.3026, 0.2993, 0.2934, 0.2892, 0.2865, 0.2846, 0.2835, 0.2828, 0.2823, 0.2819",\
                 "0.3065, 0.3033, 0.2974, 0.2933, 0.2903, 0.2885, 0.2874, 0.2867, 0.2861, 0.2857",\
                 "0.3108, 0.3075, 0.3017, 0.2971, 0.2944, 0.2927, 0.2915, 0.2907, 0.2901, 0.2897",\
                 "0.3159, 0.3126, 0.3064, 0.3021, 0.2996, 0.2978, 0.2966, 0.2959, 0.2953, 0.2949",\
                 "0.3209, 0.3177, 0.3117, 0.3073, 0.3047, 0.3029, 0.3017, 0.3008, 0.3004, 0.3001");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002639, 0.008392, 0.01938, 0.0365, 0.06051, 0.09211, 0.1319, 0.1805, 0.2385");
          values("0.2736, 0.2712, 0.2667, 0.2631, 0.2611, 0.2601, 0.2602, 0.2616, 0.2621, 0.2633",\
                 "0.2735, 0.2714, 0.2667, 0.2633, 0.261, 0.2603, 0.26, 0.2609, 0.2623, 0.2627",\
                 "0.2736, 0.2712, 0.2665, 0.2632, 0.2611, 0.2601, 0.2601, 0.2612, 0.2628, 0.263",\
                 "0.2747, 0.2723, 0.2677, 0.264, 0.2621, 0.2611, 0.2612, 0.2626, 0.2631, 0.2638",\
                 "0.2779, 0.2755, 0.271, 0.2674, 0.2653, 0.2645, 0.2644, 0.2658, 0.2662, 0.2674",\
                 "0.2817, 0.2795, 0.2748, 0.2718, 0.2694, 0.2685, 0.2687, 0.2692, 0.2706, 0.2709",\
                 "0.2876, 0.2853, 0.2806, 0.2773, 0.2759, 0.2744, 0.2746, 0.2751, 0.2759, 0.2766",\
                 "0.2942, 0.2918, 0.2874, 0.2829, 0.2811, 0.2812, 0.2821, 0.282, 0.2823, 0.283",\
                 "0.3025, 0.3002, 0.2958, 0.2914, 0.289, 0.2884, 0.2899, 0.2913, 0.2916, 0.2918",\
                 "0.3119, 0.3094, 0.3049, 0.3009, 0.2981, 0.2969, 0.2976, 0.2997, 0.3018, 0.3025");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002639, 0.008392, 0.01938, 0.0365, 0.06051, 0.09211, 0.1319, 0.1805, 0.2385");
          values("0.2956, 0.2924, 0.2863, 0.282, 0.2793, 0.2776, 0.2765, 0.2756, 0.275, 0.2747",\
                 "0.2955, 0.2923, 0.2862, 0.2817, 0.2793, 0.2775, 0.2764, 0.2756, 0.2749, 0.2746",\
                 "0.2956, 0.2925, 0.2863, 0.282, 0.2794, 0.2776, 0.2765, 0.2757, 0.275, 0.2747",\
                 "0.2969, 0.2937, 0.2878, 0.2833, 0.2807, 0.279, 0.2777, 0.277, 0.2763, 0.276",\
                 "0.2994, 0.2963, 0.2904, 0.2859, 0.2832, 0.2815, 0.2803, 0.2796, 0.279, 0.2786",\
                 "0.3027, 0.2995, 0.2935, 0.2889, 0.2864, 0.2845, 0.2835, 0.2827, 0.2822, 0.2819",\
                 "0.3067, 0.3035, 0.2975, 0.2931, 0.2905, 0.2888, 0.2875, 0.2869, 0.2862, 0.2858",\
                 "0.3108, 0.3075, 0.3017, 0.2971, 0.2944, 0.2927, 0.2916, 0.2908, 0.2902, 0.2898",\
                 "0.3159, 0.3126, 0.3067, 0.3023, 0.2996, 0.2977, 0.2967, 0.2959, 0.2954, 0.2949",\
                 "0.321, 0.3178, 0.3116, 0.3074, 0.3047, 0.3028, 0.3017, 0.301, 0.3005, 0.2998");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002639, 0.008392, 0.01938, 0.0365, 0.06051, 0.09211, 0.1319, 0.1805, 0.2385");
          values("0.2737, 0.2713, 0.2668, 0.2632, 0.2611, 0.2605, 0.2603, 0.2612, 0.2629, 0.2629",\
                 "0.2737, 0.2713, 0.2666, 0.2631, 0.2612, 0.2604, 0.2601, 0.2613, 0.2621, 0.2633",\
                 "0.2737, 0.2712, 0.2665, 0.2632, 0.2611, 0.2601, 0.2601, 0.2612, 0.2628, 0.263",\
                 "0.2747, 0.2722, 0.2677, 0.2642, 0.2622, 0.2612, 0.2613, 0.2622, 0.2637, 0.2639",\
                 "0.2778, 0.2753, 0.2709, 0.2673, 0.2652, 0.2642, 0.2643, 0.2652, 0.267, 0.2668",\
                 "0.282, 0.2797, 0.275, 0.272, 0.2696, 0.2687, 0.2689, 0.2694, 0.2708, 0.2711",\
                 "0.2877, 0.2853, 0.2807, 0.2772, 0.276, 0.2744, 0.2747, 0.2751, 0.276, 0.2767",\
                 "0.2941, 0.2918, 0.2873, 0.283, 0.2813, 0.2822, 0.2821, 0.2819, 0.2824, 0.2831",\
                 "0.3027, 0.3002, 0.2957, 0.2914, 0.289, 0.2884, 0.2898, 0.2912, 0.292, 0.2917",\
                 "0.3119, 0.3094, 0.3048, 0.301, 0.2979, 0.2974, 0.2974, 0.2998, 0.3017, 0.3034");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002639, 0.008392, 0.01938, 0.0365, 0.06051, 0.09211, 0.1319, 0.1805, 0.2385");
          values("0.2955, 0.2923, 0.2863, 0.2819, 0.2794, 0.2777, 0.2765, 0.2758, 0.2752, 0.2745",\
                 "0.2956, 0.2924, 0.2863, 0.2819, 0.2792, 0.2775, 0.2763, 0.2756, 0.2749, 0.2746",\
                 "0.2957, 0.2925, 0.2865, 0.2821, 0.2794, 0.2776, 0.2765, 0.2757, 0.2751, 0.2747",\
                 "0.2971, 0.2939, 0.2879, 0.2834, 0.2807, 0.2789, 0.2778, 0.277, 0.2764, 0.2761",\
                 "0.2995, 0.2964, 0.2904, 0.286, 0.2834, 0.2816, 0.2804, 0.2797, 0.279, 0.2787",\
                 "0.3026, 0.2993, 0.2935, 0.2892, 0.2862, 0.2845, 0.2834, 0.2827, 0.2822, 0.2819",\
                 "0.3068, 0.3035, 0.2973, 0.2932, 0.2905, 0.2888, 0.2875, 0.2867, 0.2862, 0.2859",\
                 "0.3111, 0.3079, 0.3017, 0.2975, 0.2948, 0.2931, 0.2919, 0.2911, 0.2906, 0.2902",\
                 "0.3159, 0.3126, 0.3067, 0.3021, 0.2998, 0.2978, 0.2967, 0.296, 0.2955, 0.2951",\
                 "0.3213, 0.3181, 0.3121, 0.3078, 0.3051, 0.3032, 0.302, 0.3014, 0.3008, 0.3004");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002639, 0.008392, 0.01938, 0.0365, 0.06051, 0.09211, 0.1319, 0.1805, 0.2385");
          values("0.2736, 0.2712, 0.2668, 0.2632, 0.2611, 0.2601, 0.2601, 0.2611, 0.2628, 0.2627",\
                 "0.2737, 0.2713, 0.2669, 0.2632, 0.2612, 0.2604, 0.2601, 0.2611, 0.2622, 0.2632",\
                 "0.2735, 0.2711, 0.2664, 0.2631, 0.261, 0.26, 0.26, 0.261, 0.2627, 0.2628",\
                 "0.2748, 0.2724, 0.2679, 0.2641, 0.2622, 0.2612, 0.2612, 0.2622, 0.2637, 0.2639",\
                 "0.2777, 0.2752, 0.2708, 0.2672, 0.2651, 0.2641, 0.2642, 0.2652, 0.2669, 0.2671",\
                 "0.2817, 0.2794, 0.2752, 0.2715, 0.2694, 0.2685, 0.2688, 0.2692, 0.2706, 0.2713",\
                 "0.2878, 0.2853, 0.2807, 0.2771, 0.2758, 0.2748, 0.2744, 0.275, 0.2759, 0.2771",\
                 "0.2944, 0.292, 0.2876, 0.2835, 0.281, 0.2819, 0.2822, 0.2821, 0.2828, 0.2835",\
                 "0.3025, 0.3003, 0.2957, 0.2915, 0.2889, 0.2886, 0.2902, 0.2911, 0.2915, 0.2917",\
                 "0.3117, 0.3096, 0.305, 0.3008, 0.298, 0.2973, 0.2977, 0.2998, 0.3026, 0.3024");
        }
      }

      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.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002639, 0.008392, 0.01938, 0.0365, 0.06051, 0.09211, 0.1319, 0.1805, 0.2385");
          values("0.6117, 0.6285, 0.6767, 0.7529, 0.859, 1.002, 1.189, 1.424, 1.712, 2.055",\
                 "0.6165, 0.6332, 0.6815, 0.7577, 0.8639, 1.007, 1.194, 1.429, 1.717, 2.06",\
                 "0.6358, 0.6525, 0.7008, 0.777, 0.8832, 1.026, 1.213, 1.448, 1.736, 2.079",\
                 "0.673, 0.6899, 0.7382, 0.8142, 0.9204, 1.064, 1.25, 1.486, 1.773, 2.116",\
                 "0.7127, 0.7294, 0.7777, 0.8539, 0.96, 1.103, 1.29, 1.525, 1.813, 2.156",\
                 "0.7488, 0.7656, 0.8138, 0.89, 0.9962, 1.139, 1.326, 1.561, 1.849, 2.192",\
                 "0.779, 0.7957, 0.8439, 0.9202, 1.026, 1.169, 1.356, 1.592, 1.879, 2.222",\
                 "0.8004, 0.8172, 0.8655, 0.9417, 1.048, 1.191, 1.378, 1.613, 1.9, 2.243",\
                 "0.8128, 0.8295, 0.8777, 0.9539, 1.06, 1.203, 1.39, 1.625, 1.913, 2.256",\
                 "0.8134, 0.8302, 0.8785, 0.9547, 1.061, 1.204, 1.391, 1.626, 1.913, 2.256");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002639, 0.008392, 0.01938, 0.0365, 0.06051, 0.09211, 0.1319, 0.1805, 0.2385");
          values("0.554, 0.5713, 0.6266, 0.7277, 0.8859, 1.109, 1.404, 1.775, 2.229, 2.769",\
                 "0.5586, 0.576, 0.6314, 0.7324, 0.8908, 1.114, 1.409, 1.78, 2.234, 2.774",\
                 "0.5779, 0.5952, 0.6503, 0.7516, 0.9098, 1.133, 1.428, 1.799, 2.253, 2.793",\
                 "0.6148, 0.6321, 0.6874, 0.7884, 0.9468, 1.17, 1.464, 1.836, 2.289, 2.83",\
                 "0.6551, 0.6724, 0.7277, 0.8288, 0.9871, 1.211, 1.505, 1.877, 2.33, 2.871",\
                 "0.6918, 0.7091, 0.7645, 0.8657, 1.024, 1.247, 1.542, 1.913, 2.366, 2.908",\
                 "0.723, 0.7403, 0.7956, 0.8966, 1.055, 1.278, 1.573, 1.944, 2.398, 2.94",\
                 "0.7464, 0.7637, 0.819, 0.9201, 1.078, 1.302, 1.596, 1.967, 2.421, 2.961",\
                 "0.7609, 0.7783, 0.8335, 0.9345, 1.093, 1.316, 1.61, 1.982, 2.435, 2.976",\
                 "0.7652, 0.7824, 0.8376, 0.9387, 1.097, 1.32, 1.615, 1.986, 2.439, 2.98");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002639, 0.008392, 0.01938, 0.0365, 0.06051, 0.09211, 0.1319, 0.1805, 0.2385");
          values("0.08432, 0.1014, 0.1551, 0.2516, 0.4066, 0.634, 0.9411, 1.334, 1.812, 2.385",\
                 "0.0842, 0.1017, 0.1554, 0.2516, 0.4058, 0.6336, 0.9404, 1.333, 1.813, 2.386",\
                 "0.0843, 0.1018, 0.1553, 0.2521, 0.4057, 0.6335, 0.9424, 1.334, 1.811, 2.385",\
                 "0.08424, 0.1014, 0.1553, 0.2519, 0.406, 0.634, 0.9408, 1.333, 1.812, 2.385",\
                 "0.084, 0.1016, 0.1552, 0.252, 0.4058, 0.6334, 0.941, 1.334, 1.812, 2.386",\
                 "0.0842, 0.1014, 0.1546, 0.2514, 0.406, 0.6338, 0.9422, 1.332, 1.811, 2.384",\
                 "0.0842, 0.1014, 0.1554, 0.2516, 0.4058, 0.6334, 0.9412, 1.333, 1.813, 2.386",\
                 "0.0842, 0.1016, 0.1548, 0.2518, 0.4056, 0.6332, 0.941, 1.331, 1.81, 2.382",\
                 "0.0842, 0.101, 0.1552, 0.2518, 0.4064, 0.6326, 0.9404, 1.331, 1.809, 2.379",\
                 "0.0842, 0.1016, 0.1548, 0.2516, 0.4054, 0.6338, 0.9398, 1.331, 1.809, 2.38");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002639, 0.008392, 0.01938, 0.0365, 0.06051, 0.09211, 0.1319, 0.1805, 0.2385");
          values("0.08702, 0.1111, 0.1977, 0.3729, 0.6549, 1.052, 1.575, 2.235, 3.041, 4",\
                 "0.08662, 0.111, 0.1977, 0.3728, 0.6549, 1.052, 1.575, 2.235, 3.041, 4.001",\
                 "0.08694, 0.1112, 0.1975, 0.373, 0.6549, 1.053, 1.575, 2.234, 3.041, 3.999",\
                 "0.08696, 0.111, 0.1977, 0.3726, 0.6552, 1.052, 1.579, 2.238, 3.04, 4",\
                 "0.087, 0.111, 0.1976, 0.3728, 0.6552, 1.052, 1.576, 2.235, 3.041, 4.002",\
                 "0.0868, 0.1112, 0.198, 0.3734, 0.655, 1.052, 1.577, 2.238, 3.04, 4.001",\
                 "0.087, 0.111, 0.1978, 0.3734, 0.6548, 1.053, 1.579, 2.235, 3.039, 4.002",\
                 "0.087, 0.111, 0.1978, 0.3738, 0.655, 1.053, 1.575, 2.238, 3.04, 3.999",\
                 "0.0872, 0.111, 0.1978, 0.3728, 0.655, 1.054, 1.577, 2.235, 3.042, 4.007",\
                 "0.0874, 0.1114, 0.198, 0.3738, 0.655, 1.052, 1.576, 2.238, 3.04, 3.998");
        }
      }

      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.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002639, 0.008392, 0.01938, 0.0365, 0.06051, 0.09211, 0.1319, 0.1805, 0.2385");
          values("0.6117, 0.6284, 0.6767, 0.7529, 0.859, 1.002, 1.189, 1.424, 1.712, 2.055",\
                 "0.6164, 0.6332, 0.6816, 0.7577, 0.8639, 1.007, 1.194, 1.429, 1.717, 2.06",\
                 "0.6358, 0.6525, 0.7008, 0.777, 0.8831, 1.026, 1.213, 1.448, 1.736, 2.079",\
                 "0.673, 0.6897, 0.7381, 0.8142, 0.9204, 1.064, 1.25, 1.486, 1.773, 2.116",\
                 "0.7127, 0.7294, 0.7777, 0.8539, 0.9601, 1.103, 1.29, 1.525, 1.813, 2.156",\
                 "0.7488, 0.7655, 0.8138, 0.89, 0.9963, 1.139, 1.326, 1.561, 1.849, 2.192",\
                 "0.779, 0.7957, 0.8439, 0.9201, 1.026, 1.169, 1.356, 1.592, 1.879, 2.222",\
                 "0.8005, 0.8172, 0.8654, 0.9417, 1.048, 1.191, 1.378, 1.613, 1.901, 2.243",\
                 "0.8128, 0.8296, 0.8779, 0.954, 1.06, 1.203, 1.39, 1.625, 1.913, 2.256",\
                 "0.8135, 0.8302, 0.8785, 0.9547, 1.061, 1.204, 1.391, 1.626, 1.913, 2.256");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002639, 0.008392, 0.01938, 0.0365, 0.06051, 0.09211, 0.1319, 0.1805, 0.2385");
          values("0.554, 0.5713, 0.6266, 0.7277, 0.8859, 1.11, 1.404, 1.776, 2.229, 2.769",\
                 "0.5586, 0.5761, 0.6313, 0.7325, 0.8906, 1.114, 1.409, 1.78, 2.233, 2.775",\
                 "0.5779, 0.5952, 0.6503, 0.7516, 0.9098, 1.133, 1.428, 1.799, 2.253, 2.793",\
                 "0.6148, 0.6321, 0.6873, 0.7884, 0.9467, 1.17, 1.465, 1.836, 2.29, 2.83",\
                 "0.6551, 0.6725, 0.7277, 0.8288, 0.9871, 1.211, 1.505, 1.877, 2.33, 2.871",\
                 "0.6918, 0.7092, 0.7643, 0.8657, 1.024, 1.247, 1.542, 1.913, 2.366, 2.907",\
                 "0.723, 0.7404, 0.7956, 0.8966, 1.055, 1.278, 1.573, 1.944, 2.398, 2.94",\
                 "0.7463, 0.7637, 0.819, 0.92, 1.078, 1.301, 1.596, 1.967, 2.421, 2.962",\
                 "0.7609, 0.7782, 0.8335, 0.9346, 1.093, 1.316, 1.61, 1.982, 2.435, 2.976",\
                 "0.7652, 0.7824, 0.8376, 0.9387, 1.097, 1.32, 1.615, 1.986, 2.439, 2.98");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002639, 0.008392, 0.01938, 0.0365, 0.06051, 0.09211, 0.1319, 0.1805, 0.2385");
          values("0.08416, 0.1017, 0.1548, 0.2515, 0.4059, 0.6336, 0.9424, 1.333, 1.812, 2.385",\
                 "0.08424, 0.1017, 0.1548, 0.2515, 0.4067, 0.6331, 0.9406, 1.334, 1.813, 2.385",\
                 "0.08418, 0.1017, 0.1548, 0.2515, 0.4059, 0.6336, 0.9424, 1.333, 1.813, 2.385",\
                 "0.08432, 0.1017, 0.1548, 0.2519, 0.406, 0.634, 0.9412, 1.334, 1.812, 2.385",\
                 "0.084, 0.1016, 0.1552, 0.252, 0.4058, 0.6334, 0.941, 1.334, 1.813, 2.386",\
                 "0.084, 0.1016, 0.1548, 0.2514, 0.4058, 0.6338, 0.9422, 1.334, 1.812, 2.386",\
                 "0.0842, 0.1016, 0.1554, 0.2518, 0.4056, 0.633, 0.9402, 1.333, 1.811, 2.386",\
                 "0.0842, 0.1016, 0.1554, 0.252, 0.4054, 0.6334, 0.9402, 1.331, 1.81, 2.382",\
                 "0.0842, 0.1014, 0.1548, 0.2518, 0.4058, 0.6328, 0.941, 1.332, 1.809, 2.379",\
                 "0.0844, 0.1016, 0.1548, 0.2518, 0.4062, 0.6342, 0.94, 1.331, 1.81, 2.379");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002639, 0.008392, 0.01938, 0.0365, 0.06051, 0.09211, 0.1319, 0.1805, 0.2385");
          values("0.08702, 0.111, 0.1976, 0.3729, 0.6551, 1.052, 1.575, 2.235, 3.041, 4",\
                 "0.08662, 0.1111, 0.1976, 0.373, 0.6547, 1.052, 1.577, 2.237, 3.04, 4.001",\
                 "0.08696, 0.1111, 0.1975, 0.373, 0.6549, 1.053, 1.575, 2.234, 3.041, 3.999",\
                 "0.08696, 0.1112, 0.1976, 0.3728, 0.655, 1.053, 1.575, 2.235, 3.041, 4.001",\
                 "0.087, 0.111, 0.1976, 0.3728, 0.6552, 1.052, 1.576, 2.235, 3.041, 4.002",\
                 "0.087, 0.1112, 0.198, 0.3732, 0.655, 1.052, 1.576, 2.236, 3.04, 3.998",\
                 "0.087, 0.111, 0.1976, 0.3732, 0.655, 1.052, 1.578, 2.235, 3.042, 4.001",\
                 "0.087, 0.1112, 0.1976, 0.3726, 0.6556, 1.053, 1.575, 2.239, 3.04, 4.001",\
                 "0.0872, 0.1114, 0.1978, 0.3728, 0.6562, 1.053, 1.577, 2.235, 3.042, 4.003",\
                 "0.0874, 0.1114, 0.198, 0.3738, 0.6552, 1.052, 1.577, 2.234, 3.039, 3.999");
        }
      }

      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.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002639, 0.008392, 0.01938, 0.0365, 0.06051, 0.09211, 0.1319, 0.1805, 0.2385");
          values("0.6117, 0.6284, 0.6767, 0.7529, 0.859, 1.002, 1.189, 1.424, 1.712, 2.055",\
                 "0.6164, 0.6333, 0.6815, 0.7577, 0.8639, 1.007, 1.194, 1.429, 1.717, 2.06",\
                 "0.6358, 0.6525, 0.7008, 0.777, 0.8831, 1.026, 1.213, 1.448, 1.736, 2.079",\
                 "0.6731, 0.6899, 0.7381, 0.8143, 0.9204, 1.063, 1.25, 1.486, 1.773, 2.116",\
                 "0.7127, 0.7294, 0.7777, 0.8539, 0.9601, 1.103, 1.29, 1.525, 1.813, 2.156",\
                 "0.7488, 0.7656, 0.8138, 0.89, 0.9962, 1.139, 1.326, 1.561, 1.849, 2.192",\
                 "0.779, 0.7957, 0.8439, 0.9201, 1.026, 1.169, 1.356, 1.592, 1.879, 2.222",\
                 "0.8005, 0.8172, 0.8654, 0.9417, 1.048, 1.191, 1.378, 1.613, 1.901, 2.243",\
                 "0.8127, 0.8294, 0.8777, 0.954, 1.06, 1.203, 1.39, 1.625, 1.913, 2.256",\
                 "0.8136, 0.8303, 0.8785, 0.9547, 1.061, 1.204, 1.391, 1.626, 1.914, 2.256");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002639, 0.008392, 0.01938, 0.0365, 0.06051, 0.09211, 0.1319, 0.1805, 0.2385");
          values("0.5541, 0.5714, 0.6266, 0.7277, 0.886, 1.11, 1.404, 1.776, 2.229, 2.769",\
                 "0.5587, 0.5761, 0.6313, 0.7324, 0.8908, 1.114, 1.409, 1.78, 2.234, 2.775",\
                 "0.5779, 0.5952, 0.6503, 0.7516, 0.9098, 1.133, 1.428, 1.799, 2.253, 2.793",\
                 "0.6147, 0.632, 0.6873, 0.7884, 0.9467, 1.17, 1.465, 1.836, 2.29, 2.83",\
                 "0.6551, 0.6723, 0.7277, 0.8288, 0.987, 1.21, 1.505, 1.877, 2.33, 2.87",\
                 "0.6918, 0.7092, 0.7643, 0.8657, 1.024, 1.247, 1.542, 1.913, 2.366, 2.907",\
                 "0.7229, 0.7404, 0.7956, 0.8966, 1.055, 1.278, 1.573, 1.944, 2.398, 2.94",\
                 "0.7462, 0.7635, 0.8188, 0.9201, 1.078, 1.301, 1.596, 1.967, 2.421, 2.961",\
                 "0.7609, 0.7781, 0.8335, 0.9346, 1.093, 1.316, 1.61, 1.982, 2.435, 2.976",\
                 "0.7652, 0.7825, 0.8377, 0.9387, 1.097, 1.32, 1.615, 1.986, 2.439, 2.98");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002639, 0.008392, 0.01938, 0.0365, 0.06051, 0.09211, 0.1319, 0.1805, 0.2385");
          values("0.08418, 0.1017, 0.1548, 0.2515, 0.4059, 0.6336, 0.9424, 1.333, 1.812, 2.385",\
                 "0.08424, 0.1014, 0.1548, 0.2518, 0.4059, 0.6336, 0.9424, 1.334, 1.81, 2.385",\
                 "0.08418, 0.1017, 0.1548, 0.2515, 0.4059, 0.6336, 0.9424, 1.333, 1.812, 2.385",\
                 "0.08432, 0.1014, 0.1548, 0.2515, 0.406, 0.634, 0.9422, 1.334, 1.811, 2.386",\
                 "0.0842, 0.1016, 0.155, 0.252, 0.4058, 0.6336, 0.941, 1.334, 1.813, 2.386",\
                 "0.0842, 0.1012, 0.1548, 0.2514, 0.4056, 0.6338, 0.9422, 1.334, 1.811, 2.386",\
                 "0.084, 0.1014, 0.1554, 0.2516, 0.4054, 0.6332, 0.9402, 1.333, 1.811, 2.386",\
                 "0.084, 0.1016, 0.1554, 0.252, 0.4054, 0.6332, 0.941, 1.331, 1.809, 2.38",\
                 "0.084, 0.1016, 0.1552, 0.2514, 0.4054, 0.6332, 0.9402, 1.332, 1.809, 2.379",\
                 "0.084, 0.1014, 0.1554, 0.2516, 0.4064, 0.6328, 0.942, 1.331, 1.809, 2.379");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002639, 0.008392, 0.01938, 0.0365, 0.06051, 0.09211, 0.1319, 0.1805, 0.2385");
          values("0.08688, 0.1112, 0.1977, 0.373, 0.6551, 1.053, 1.575, 2.234, 3.041, 3.998",\
                 "0.08688, 0.1112, 0.1976, 0.3728, 0.6551, 1.053, 1.577, 2.234, 3.041, 4.002",\
                 "0.08696, 0.1111, 0.1975, 0.373, 0.6549, 1.053, 1.575, 2.234, 3.041, 3.999",\
                 "0.087, 0.111, 0.1979, 0.3738, 0.655, 1.053, 1.575, 2.234, 3.041, 3.999",\
                 "0.087, 0.111, 0.1978, 0.373, 0.655, 1.053, 1.575, 2.234, 3.041, 3.999",\
                 "0.0866, 0.1112, 0.198, 0.3732, 0.655, 1.052, 1.576, 2.236, 3.04, 3.998",\
                 "0.0866, 0.111, 0.1976, 0.373, 0.655, 1.052, 1.578, 2.235, 3.042, 4.001",\
                 "0.087, 0.111, 0.198, 0.373, 0.6554, 1.053, 1.575, 2.239, 3.04, 3.998",\
                 "0.0872, 0.1114, 0.1978, 0.3728, 0.6562, 1.053, 1.577, 2.235, 3.042, 4.003",\
                 "0.0872, 0.1116, 0.198, 0.3736, 0.6552, 1.054, 1.577, 2.234, 3.039, 4");
        }
      }

      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.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002639, 0.008392, 0.01938, 0.0365, 0.06051, 0.09211, 0.1319, 0.1805, 0.2385");
          values("0.6117, 0.6285, 0.6768, 0.7529, 0.8591, 1.002, 1.189, 1.424, 1.712, 2.055",\
                 "0.6166, 0.6332, 0.6815, 0.7577, 0.8638, 1.007, 1.194, 1.429, 1.717, 2.059",\
                 "0.6358, 0.6525, 0.7008, 0.777, 0.8832, 1.026, 1.213, 1.448, 1.736, 2.079",\
                 "0.6732, 0.6899, 0.7382, 0.8143, 0.9203, 1.063, 1.25, 1.486, 1.773, 2.116",\
                 "0.7128, 0.7295, 0.7778, 0.854, 0.9601, 1.103, 1.29, 1.525, 1.813, 2.156",\
                 "0.7488, 0.7656, 0.8138, 0.89, 0.9962, 1.139, 1.326, 1.561, 1.849, 2.192",\
                 "0.779, 0.7957, 0.8441, 0.9202, 1.026, 1.169, 1.356, 1.592, 1.879, 2.222",\
                 "0.8008, 0.8175, 0.8658, 0.942, 1.048, 1.191, 1.378, 1.613, 1.901, 2.244",\
                 "0.8128, 0.8296, 0.8777, 0.9539, 1.06, 1.203, 1.39, 1.625, 1.913, 2.256",\
                 "0.8135, 0.8302, 0.8785, 0.9546, 1.061, 1.204, 1.391, 1.626, 1.913, 2.256");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002639, 0.008392, 0.01938, 0.0365, 0.06051, 0.09211, 0.1319, 0.1805, 0.2385");
          values("0.554, 0.5713, 0.6266, 0.7277, 0.8859, 1.109, 1.404, 1.775, 2.229, 2.769",\
                 "0.5588, 0.576, 0.6314, 0.7324, 0.8908, 1.114, 1.409, 1.78, 2.234, 2.774",\
                 "0.5779, 0.5952, 0.6503, 0.7516, 0.9098, 1.133, 1.428, 1.799, 2.253, 2.793",\
                 "0.6147, 0.6321, 0.6874, 0.7884, 0.9466, 1.17, 1.465, 1.836, 2.29, 2.83",\
                 "0.6551, 0.6723, 0.7277, 0.8288, 0.987, 1.21, 1.505, 1.877, 2.33, 2.87",\
                 "0.6917, 0.709, 0.7645, 0.8655, 1.024, 1.247, 1.542, 1.913, 2.366, 2.907",\
                 "0.7229, 0.7403, 0.7956, 0.8966, 1.055, 1.278, 1.573, 1.944, 2.398, 2.94",\
                 "0.7464, 0.7637, 0.819, 0.92, 1.078, 1.302, 1.596, 1.967, 2.421, 2.961",\
                 "0.7608, 0.778, 0.8335, 0.9345, 1.093, 1.316, 1.61, 1.982, 2.435, 2.976",\
                 "0.765, 0.7823, 0.8377, 0.9387, 1.097, 1.32, 1.615, 1.986, 2.439, 2.98");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002639, 0.008392, 0.01938, 0.0365, 0.06051, 0.09211, 0.1319, 0.1805, 0.2385");
          values("0.08424, 0.1017, 0.1554, 0.2516, 0.4066, 0.634, 0.9423, 1.334, 1.813, 2.385",\
                 "0.08432, 0.1017, 0.1549, 0.2516, 0.4059, 0.6339, 0.9408, 1.334, 1.812, 2.385",\
                 "0.08428, 0.1018, 0.1553, 0.2521, 0.4057, 0.6335, 0.9424, 1.334, 1.811, 2.385",\
                 "0.08418, 0.1017, 0.1553, 0.2518, 0.4066, 0.633, 0.9422, 1.334, 1.813, 2.385",\
                 "0.0842, 0.1016, 0.1554, 0.252, 0.4056, 0.6334, 0.9422, 1.334, 1.812, 2.386",\
                 "0.0842, 0.1014, 0.1546, 0.2514, 0.406, 0.6338, 0.9422, 1.334, 1.811, 2.384",\
                 "0.0842, 0.1014, 0.1546, 0.2516, 0.4058, 0.6334, 0.9402, 1.333, 1.813, 2.383",\
                 "0.0842, 0.1014, 0.1552, 0.2516, 0.406, 0.6332, 0.9406, 1.331, 1.81, 2.38",\
                 "0.084, 0.1014, 0.1552, 0.2514, 0.4066, 0.633, 0.941, 1.333, 1.808, 2.379",\
                 "0.0844, 0.1012, 0.155, 0.2514, 0.4054, 0.6336, 0.9416, 1.332, 1.809, 2.379");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002639, 0.008392, 0.01938, 0.0365, 0.06051, 0.09211, 0.1319, 0.1805, 0.2385");
          values("0.08708, 0.1112, 0.1977, 0.373, 0.6549, 1.053, 1.575, 2.234, 3.041, 3.999",\
                 "0.08714, 0.111, 0.1976, 0.3728, 0.6549, 1.054, 1.577, 2.235, 3.041, 4.001",\
                 "0.08694, 0.1112, 0.1975, 0.373, 0.6549, 1.053, 1.575, 2.234, 3.041, 3.999",\
                 "0.08694, 0.1109, 0.1976, 0.3728, 0.6548, 1.053, 1.575, 2.234, 3.041, 3.999",\
                 "0.087, 0.111, 0.1978, 0.373, 0.655, 1.053, 1.575, 2.234, 3.041, 3.999",\
                 "0.087, 0.1112, 0.198, 0.3732, 0.655, 1.054, 1.576, 2.236, 3.04, 3.998",\
                 "0.0866, 0.111, 0.1978, 0.3732, 0.6548, 1.053, 1.578, 2.236, 3.042, 4.001",\
                 "0.087, 0.111, 0.1978, 0.3732, 0.655, 1.053, 1.575, 2.238, 3.04, 3.999",\
                 "0.0872, 0.1114, 0.1982, 0.3734, 0.655, 1.054, 1.577, 2.234, 3.041, 4.006",\
                 "0.087, 0.1116, 0.1984, 0.3728, 0.6554, 1.054, 1.577, 2.234, 3.04, 3.999");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002639, 0.008392, 0.01938, 0.0365, 0.06051, 0.09211, 0.1319, 0.1805, 0.2385");
          values("0.6117, 0.6284, 0.6767, 0.7529, 0.859, 1.002, 1.189, 1.424, 1.712, 2.055",\
                 "0.6164, 0.6333, 0.6815, 0.7577, 0.8639, 1.007, 1.194, 1.429, 1.717, 2.06",\
                 "0.6358, 0.6525, 0.7008, 0.777, 0.8831, 1.026, 1.213, 1.448, 1.736, 2.079",\
                 "0.6731, 0.6899, 0.7381, 0.8143, 0.9204, 1.063, 1.25, 1.486, 1.773, 2.116",\
                 "0.7127, 0.7294, 0.7777, 0.8539, 0.9601, 1.103, 1.29, 1.525, 1.813, 2.156",\
                 "0.7488, 0.7656, 0.8138, 0.89, 0.9962, 1.139, 1.326, 1.561, 1.849, 2.192",\
                 "0.779, 0.7957, 0.8439, 0.9201, 1.026, 1.169, 1.356, 1.592, 1.879, 2.222",\
                 "0.8005, 0.8172, 0.8654, 0.9417, 1.048, 1.191, 1.378, 1.613, 1.901, 2.243",\
                 "0.8127, 0.8294, 0.8777, 0.954, 1.06, 1.203, 1.39, 1.625, 1.913, 2.256",\
                 "0.8136, 0.8303, 0.8785, 0.9547, 1.061, 1.204, 1.391, 1.626, 1.914, 2.256");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002639, 0.008392, 0.01938, 0.0365, 0.06051, 0.09211, 0.1319, 0.1805, 0.2385");
          values("0.554, 0.5713, 0.6266, 0.7277, 0.8859, 1.11, 1.404, 1.776, 2.229, 2.769",\
                 "0.5586, 0.5761, 0.6313, 0.7325, 0.8906, 1.114, 1.409, 1.78, 2.233, 2.775",\
                 "0.5779, 0.5952, 0.6503, 0.7516, 0.9098, 1.133, 1.428, 1.799, 2.253, 2.793",\
                 "0.6148, 0.6321, 0.6873, 0.7884, 0.9467, 1.17, 1.465, 1.836, 2.29, 2.83",\
                 "0.6551, 0.6725, 0.7277, 0.8288, 0.9871, 1.211, 1.505, 1.877, 2.33, 2.871",\
                 "0.6918, 0.7092, 0.7643, 0.8657, 1.024, 1.247, 1.542, 1.913, 2.366, 2.907",\
                 "0.723, 0.7404, 0.7956, 0.8966, 1.055, 1.278, 1.573, 1.944, 2.398, 2.94",\
                 "0.7463, 0.7637, 0.819, 0.92, 1.078, 1.301, 1.596, 1.967, 2.421, 2.962",\
                 "0.7609, 0.7782, 0.8335, 0.9346, 1.093, 1.316, 1.61, 1.982, 2.435, 2.976",\
                 "0.7652, 0.7824, 0.8376, 0.9387, 1.097, 1.32, 1.615, 1.986, 2.439, 2.98");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002639, 0.008392, 0.01938, 0.0365, 0.06051, 0.09211, 0.1319, 0.1805, 0.2385");
          values("0.08432, 0.1014, 0.1551, 0.2516, 0.4066, 0.634, 0.9411, 1.334, 1.812, 2.385",\
                 "0.0842, 0.1017, 0.1554, 0.2516, 0.4058, 0.6336, 0.9404, 1.333, 1.813, 2.386",\
                 "0.0843, 0.1018, 0.1553, 0.2521, 0.4057, 0.6335, 0.9424, 1.334, 1.811, 2.385",\
                 "0.08424, 0.1014, 0.1553, 0.2519, 0.406, 0.634, 0.9408, 1.333, 1.812, 2.385",\
                 "0.084, 0.1016, 0.1552, 0.252, 0.4058, 0.6334, 0.941, 1.334, 1.812, 2.386",\
                 "0.0842, 0.1014, 0.1546, 0.2514, 0.406, 0.6338, 0.9422, 1.332, 1.811, 2.384",\
                 "0.0842, 0.1014, 0.1554, 0.2516, 0.4058, 0.6334, 0.9412, 1.333, 1.813, 2.386",\
                 "0.0842, 0.1016, 0.1548, 0.2518, 0.4056, 0.6332, 0.941, 1.331, 1.81, 2.382",\
                 "0.0842, 0.101, 0.1552, 0.2518, 0.4064, 0.6326, 0.9404, 1.331, 1.809, 2.379",\
                 "0.0842, 0.1016, 0.1548, 0.2516, 0.4054, 0.6338, 0.9398, 1.331, 1.809, 2.38");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.002639, 0.008392, 0.01938, 0.0365, 0.06051, 0.09211, 0.1319, 0.1805, 0.2385");
          values("0.08702, 0.1111, 0.1977, 0.3729, 0.6549, 1.052, 1.575, 2.235, 3.041, 4",\
                 "0.08662, 0.111, 0.1977, 0.3728, 0.6549, 1.052, 1.575, 2.235, 3.041, 4.001",\
                 "0.08694, 0.1112, 0.1975, 0.373, 0.6549, 1.053, 1.575, 2.234, 3.041, 3.999",\
                 "0.08696, 0.111, 0.1977, 0.3726, 0.6552, 1.052, 1.579, 2.238, 3.04, 4",\
                 "0.087, 0.111, 0.1976, 0.3728, 0.6552, 1.052, 1.576, 2.235, 3.041, 4.002",\
                 "0.0868, 0.1112, 0.198, 0.3734, 0.655, 1.052, 1.577, 2.238, 3.04, 4.001",\
                 "0.087, 0.111, 0.1978, 0.3734, 0.6548, 1.053, 1.579, 2.235, 3.039, 4.002",\
                 "0.087, 0.111, 0.1978, 0.3738, 0.655, 1.053, 1.575, 2.238, 3.04, 3.999",\
                 "0.0872, 0.111, 0.1978, 0.3728, 0.655, 1.054, 1.577, 2.235, 3.042, 4.007",\
                 "0.0874, 0.1114, 0.198, 0.3738, 0.655, 1.052, 1.576, 2.238, 3.04, 3.998");
        }
      }
    }

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.117, 0.1166, 0.1206, 0.1344, 0.1598, 0.1983, 0.2511, 0.3184, \
                 0.4016, 0.5014");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.004452, 0.004292, 0.007038, 0.01727, 0.03816, 0.07091, 0.1165, \
                 0.1755, 0.2485, 0.3366");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.412, 0.411, 0.4139, 0.428, 0.4616, 0.5216, 0.6117, 0.7341, 0.8885, \
                 1.074");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.1791, 0.179, 0.1811, 0.1926, 0.2229, 0.2752, 0.3521, 0.4546, \
                 0.5836, 0.7409");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.3145, 0.314, 0.3183, 0.3322, 0.3582, 0.3973, 0.4518, 0.5219, \
                 0.6086, 0.7131");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.3211, 0.3209, 0.323, 0.332, 0.3511, 0.3819, 0.4276, 0.487, 0.5613, \
                 0.6527");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.1182, 0.1179, 0.1224, 0.1363, 0.1621, 0.2009, 0.2536, 0.3213, \
                 0.4047, 0.5046");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.005672, 0.005447, 0.008054, 0.01815, 0.03879, 0.0715, 0.1169, \
                 0.1759, 0.2489, 0.337");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.114, 0.1137, 0.1177, 0.1314, 0.1569, 0.1954, 0.248, 0.3156, \
                 0.3988, 0.4987");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.001065, 0.0008755, 0.003598, 0.01389, 0.03476, 0.06763, 0.1132, \
                 0.1722, 0.2453, 0.3334");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.1562, 0.1557, 0.1598, 0.1746, 0.2023, 0.2438, 0.2995, 0.3698, \
                 0.4549, 0.5558");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.004099, -0.004444, -0.002416, 0.007921, 0.03064, 0.06686, 0.1159, \
                 0.1774, 0.2523, 0.3415");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.1241, 0.1236, 0.1277, 0.1414, 0.1666, 0.2047, 0.2568, 0.3239, \
                 0.4067, 0.5061");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.04841, 0.04817, 0.05065, 0.0607, 0.08124, 0.1139, 0.1601, 0.2209, \
                 0.294, 0.3818");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.1151, 0.1147, 0.1192, 0.1332, 0.1589, 0.1979, 0.2505, 0.3184, \
                 0.4018, 0.5016");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.003719, 0.003461, 0.006106, 0.01617, 0.03686, 0.06957, 0.1151, \
                 0.1739, 0.247, 0.3351");
        }
      }

      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.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.04, -0.043, -0.021, 0.013, 0.049, 0.074, 0.099, 0.113, 0.114, 0.105",\
                 "-0.044, -0.04, -0.023, 0.007, 0.04, 0.075, 0.099, 0.113, 0.114, 0.104",\
                 "-0.059, -0.053, -0.036, -0.002, 0.031, 0.062, 0.081, 0.095, 0.097, 0.091",\
                 "-0.094, -0.091, -0.066, -0.035, 0.001, 0.033, 0.051, 0.067, 0.068, 0.065",\
                 "-0.133, -0.136, -0.117, -0.081, -0.042, -0.007, 0.012, 0.025, 0.033, 0.022",\
                 "-0.19, -0.186, -0.169, -0.131, -0.099, -0.064, -0.04, -0.02, -0.025, -0.031",\
                 "-0.244, -0.246, -0.227, -0.191, -0.154, -0.119, -0.094, -0.078, -0.076, -0.082",\
                 "-0.307, -0.309, -0.291, -0.251, -0.222, -0.185, -0.158, -0.138, -0.141, -0.138",\
                 "-0.386, -0.388, -0.362, -0.331, -0.299, -0.262, -0.241, -0.215, -0.215, -0.215",\
                 "-0.476, -0.483, -0.463, -0.426, -0.394, -0.359, -0.334, -0.311, -0.306, -0.31");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.218, -0.211, -0.198, -0.188, -0.188, -0.207, -0.228, -0.262, -0.297, -0.352",\
                 "-0.219, -0.216, -0.203, -0.191, -0.195, -0.206, -0.232, -0.266, -0.301, -0.356",\
                 "-0.228, -0.225, -0.212, -0.203, -0.2, -0.218, -0.24, -0.274, -0.314, -0.369",\
                 "-0.243, -0.241, -0.225, -0.216, -0.219, -0.231, -0.25, -0.282, -0.323, -0.377",\
                 "-0.268, -0.257, -0.242, -0.234, -0.231, -0.239, -0.261, -0.294, -0.324, -0.379",\
                 "-0.281, -0.279, -0.262, -0.252, -0.241, -0.253, -0.272, -0.298, -0.333, -0.384",\
                 "-0.287, -0.281, -0.264, -0.252, -0.251, -0.258, -0.275, -0.295, -0.337, -0.382",\
                 "-0.272, -0.267, -0.255, -0.238, -0.236, -0.243, -0.262, -0.287, -0.322, -0.373",\
                 "-0.239, -0.231, -0.217, -0.204, -0.207, -0.212, -0.236, -0.26, -0.296, -0.352",\
                 "-0.185, -0.185, -0.169, -0.157, -0.154, -0.167, -0.184, -0.212, -0.255, -0.31");
        }
      }

      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.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.344, -0.336, -0.327, -0.314, -0.314, -0.329, -0.357, -0.385, -0.429, -0.483",\
                 "-0.35, -0.344, -0.331, -0.324, -0.325, -0.337, -0.363, -0.396, -0.434, -0.487",\
                 "-0.373, -0.37, -0.363, -0.348, -0.353, -0.366, -0.386, -0.422, -0.459, -0.518",\
                 "-0.433, -0.427, -0.412, -0.406, -0.406, -0.42, -0.441, -0.473, -0.518, -0.57",\
                 "-0.504, -0.501, -0.482, -0.477, -0.477, -0.488, -0.511, -0.541, -0.581, -0.636",\
                 "-0.593, -0.585, -0.577, -0.561, -0.562, -0.576, -0.597, -0.626, -0.672, -0.718",\
                 "-0.691, -0.691, -0.677, -0.668, -0.666, -0.676, -0.701, -0.729, -0.768, -0.817",\
                 "-0.817, -0.812, -0.796, -0.784, -0.787, -0.792, -0.809, -0.848, -0.883, -0.935",\
                 "-0.945, -0.944, -0.926, -0.917, -0.913, -0.929, -0.945, -0.976, -1.015, -1.061",\
                 "-1.099, -1.094, -1.078, -1.067, -1.069, -1.077, -1.09, -1.124, -1.161, -1.211");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.137, -0.136, -0.117, -0.084, -0.053, -0.017, 0.004, 0.019, 0.021, 0.009",\
                 "-0.144, -0.141, -0.117, -0.089, -0.055, -0.025, 0.003, 0.012, 0.012, 0.003",\
                 "-0.156, -0.156, -0.134, -0.106, -0.065, -0.038, -0.01, -0.004, -0, -0.012",\
                 "-0.174, -0.169, -0.149, -0.112, -0.083, -0.05, -0.029, -0.019, -0.017, -0.027",\
                 "-0.184, -0.179, -0.165, -0.132, -0.098, -0.061, -0.045, -0.026, -0.022, -0.036",\
                 "-0.19, -0.186, -0.169, -0.131, -0.099, -0.07, -0.046, -0.028, -0.03, -0.037",\
                 "-0.176, -0.168, -0.154, -0.121, -0.086, -0.053, -0.031, -0.012, -0.014, -0.027",\
                 "-0.149, -0.143, -0.125, -0.094, -0.055, -0.021, 0.002, 0.011, 0.014, 0.007",\
                 "-0.107, -0.098, -0.08, -0.042, -0.015, 0.015, 0.042, 0.057, 0.059, 0.05",\
                 "-0.05, -0.043, -0.024, 0.01, 0.047, 0.074, 0.102, 0.114, 0.121, 0.116");
        }
      }

      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.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.504, 0.499, 0.48, 0.435, 0.39, 0.348, 0.322, 0.297, 0.29, 0.292",\
                 "0.507, 0.5, 0.478, 0.438, 0.395, 0.35, 0.32, 0.302, 0.286, 0.296",\
                 "0.519, 0.508, 0.488, 0.452, 0.401, 0.366, 0.332, 0.311, 0.299, 0.307",\
                 "0.542, 0.536, 0.516, 0.475, 0.429, 0.39, 0.356, 0.341, 0.323, 0.333",\
                 "0.597, 0.597, 0.569, 0.528, 0.484, 0.443, 0.415, 0.395, 0.379, 0.384",\
                 "0.697, 0.686, 0.664, 0.629, 0.58, 0.54, 0.511, 0.487, 0.475, 0.477",\
                 "0.829, 0.814, 0.796, 0.753, 0.712, 0.67, 0.638, 0.616, 0.593, 0.593",\
                 "0.98, 0.972, 0.955, 0.909, 0.866, 0.825, 0.781, 0.759, 0.741, 0.737",\
                 "1.171, 1.164, 1.136, 1.095, 1.05, 0.996, 0.962, 0.937, 0.912, 0.908",\
                 "1.38, 1.372, 1.347, 1.303, 1.251, 1.201, 1.165, 1.13, 1.11, 1.104");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.464, 0.455, 0.44, 0.401, 0.373, 0.36, 0.365, 0.379, 0.414, 0.453",\
                 "0.475, 0.46, 0.443, 0.408, 0.378, 0.363, 0.373, 0.39, 0.419, 0.462",\
                 "0.478, 0.474, 0.451, 0.417, 0.382, 0.373, 0.378, 0.397, 0.428, 0.472",\
                 "0.491, 0.487, 0.468, 0.432, 0.4, 0.383, 0.386, 0.407, 0.433, 0.478",\
                 "0.521, 0.51, 0.492, 0.455, 0.427, 0.408, 0.409, 0.424, 0.452, 0.487",\
                 "0.544, 0.536, 0.517, 0.486, 0.455, 0.432, 0.425, 0.438, 0.46, 0.501",\
                 "0.562, 0.552, 0.531, 0.502, 0.467, 0.445, 0.441, 0.455, 0.474, 0.511",\
                 "0.57, 0.557, 0.543, 0.507, 0.475, 0.456, 0.45, 0.456, 0.47, 0.509",\
                 "0.557, 0.545, 0.532, 0.501, 0.464, 0.445, 0.435, 0.447, 0.46, 0.497",\
                 "0.526, 0.518, 0.499, 0.469, 0.439, 0.415, 0.409, 0.417, 0.434, 0.465");
        }
      }

      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.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.595, 0.586, 0.568, 0.533, 0.5, 0.488, 0.494, 0.513, 0.546, 0.588",\
                 "0.6, 0.595, 0.572, 0.54, 0.508, 0.494, 0.503, 0.521, 0.552, 0.594",\
                 "0.631, 0.619, 0.597, 0.569, 0.536, 0.52, 0.525, 0.545, 0.581, 0.622",\
                 "0.68, 0.674, 0.654, 0.622, 0.593, 0.579, 0.581, 0.604, 0.628, 0.672",\
                 "0.758, 0.745, 0.732, 0.692, 0.659, 0.648, 0.648, 0.671, 0.7, 0.744",\
                 "0.838, 0.835, 0.818, 0.78, 0.749, 0.734, 0.737, 0.757, 0.784, 0.829",\
                 "0.949, 0.936, 0.916, 0.884, 0.854, 0.836, 0.843, 0.861, 0.888, 0.933",\
                 "1.062, 1.055, 1.035, 1.001, 0.968, 0.956, 0.96, 0.973, 0.999, 1.041",\
                 "1.202, 1.187, 1.177, 1.138, 1.105, 1.086, 1.087, 1.105, 1.134, 1.173",\
                 "1.35, 1.337, 1.321, 1.287, 1.251, 1.238, 1.233, 1.252, 1.281, 1.317");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.607, 0.598, 0.576, 0.539, 0.491, 0.457, 0.426, 0.402, 0.391, 0.397",\
                 "0.613, 0.602, 0.589, 0.54, 0.5, 0.456, 0.425, 0.408, 0.396, 0.402",\
                 "0.631, 0.619, 0.597, 0.556, 0.517, 0.473, 0.442, 0.422, 0.412, 0.415",\
                 "0.64, 0.632, 0.613, 0.57, 0.525, 0.488, 0.456, 0.439, 0.425, 0.43",\
                 "0.648, 0.64, 0.617, 0.574, 0.533, 0.497, 0.46, 0.446, 0.434, 0.435",\
                 "0.648, 0.642, 0.618, 0.584, 0.535, 0.491, 0.465, 0.446, 0.43, 0.439",\
                 "0.64, 0.631, 0.613, 0.568, 0.524, 0.484, 0.457, 0.436, 0.423, 0.429",\
                 "0.611, 0.605, 0.586, 0.547, 0.497, 0.464, 0.432, 0.407, 0.399, 0.403",\
                 "0.573, 0.568, 0.548, 0.509, 0.464, 0.42, 0.389, 0.369, 0.356, 0.361",\
                 "0.511, 0.508, 0.484, 0.447, 0.405, 0.365, 0.334, 0.318, 0.306, 0.31");
        }
      }
    }

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.02035, 0.02022, 0.02018, 0.02013, 0.0201, 0.02014, 0.02014, \
                 0.02009, 0.02011, 0.02013");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.01982, -0.01983, -0.01975, -0.01979, -0.01981, -0.01991, -0.01996, \
                 -0.01991, -0.01998, -0.01999");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.3471, 0.3465, 0.3456, 0.3455, 0.3527, 0.3759, 0.4214, 0.4902, \
                 0.5798, 0.6883");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.1761, 0.1752, 0.174, 0.1744, 0.1826, 0.2039, 0.2407, 0.2939, \
                 0.364, 0.4514");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.02021, 0.02009, 0.02014, 0.0201, 0.02008, 0.02013, 0.02014, \
                 0.02015, 0.02012, 0.02012");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.01825, -0.01848, -0.01938, -0.01972, -0.01984, -0.01989, -0.01992, \
                 -0.01997, -0.01999, -0.01999");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.347, 0.3464, 0.3456, 0.3455, 0.3528, 0.3759, 0.4215, 0.4902, \
                 0.5797, 0.6884");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.1761, 0.1752, 0.174, 0.1744, 0.1826, 0.2039, 0.2407, 0.2939, \
                 0.364, 0.4513");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.02032, 0.02013, 0.02016, 0.02015, 0.02012, 0.0201, 0.0201, 0.02013, \
                 0.02014, 0.02011");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.01983, -0.01975, -0.01978, -0.01976, -0.01983, -0.01988, -0.01991, \
                 -0.01996, -0.01998, -0.01998");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.07017, 0.07021, 0.07016, 0.07001, 0.07, 0.06994, 0.06997, 0.07004, \
                 0.06997, 0.07003");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.01575, -0.01622, -0.01706, -0.01779, -0.01838, -0.01873, -0.019, \
                 -0.01916, -0.01929, -0.01935");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.02015, 0.02013, 0.02012, 0.0201, 0.02006, 0.02011, 0.0201, 0.02014, \
                 0.02014, 0.02013");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.01852, -0.01873, -0.01942, -0.01975, -0.01985, -0.01988, -0.01993, \
                 -0.01996, -0.01994, -0.02001");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.0702, 0.07017, 0.07015, 0.07009, 0.06993, 0.06995, 0.06999, \
                 0.07001, 0.07004, 0.07004");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.01575, -0.01622, -0.01705, -0.01779, -0.01838, -0.01873, -0.01901, \
                 -0.01916, -0.01929, -0.01934");
        }
      }

      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.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.103, -0.099, -0.077, -0.05, -0.019, 0.013, 0.038, 0.049, 0.052, 0.039",\
                 "-0.107, -0.101, -0.083, -0.053, -0.021, 0.012, 0.029, 0.048, 0.044, 0.038",\
                 "-0.116, -0.113, -0.093, -0.058, -0.027, 0.002, 0.026, 0.039, 0.04, 0.029",\
                 "-0.128, -0.127, -0.108, -0.069, -0.038, -0.005, 0.011, 0.027, 0.025, 0.022",\
                 "-0.15, -0.144, -0.127, -0.092, -0.063, -0.025, -0.011, 0.011, 0.006, -0.001",\
                 "-0.165, -0.167, -0.149, -0.108, -0.081, -0.048, -0.026, -0.011, -0.015, -0.018",\
                 "-0.176, -0.177, -0.154, -0.126, -0.092, -0.059, -0.039, -0.022, -0.025, -0.027",\
                 "-0.19, -0.19, -0.168, -0.133, -0.098, -0.062, -0.045, -0.023, -0.031, -0.031",\
                 "-0.2, -0.199, -0.185, -0.144, -0.116, -0.08, -0.06, -0.034, -0.044, -0.036",\
                 "-0.22, -0.225, -0.205, -0.162, -0.136, -0.1, -0.075, -0.045, -0.058, -0.049");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.258, -0.255, -0.238, -0.234, -0.23, -0.249, -0.271, -0.309, -0.352, -0.403",\
                 "-0.263, -0.256, -0.246, -0.233, -0.238, -0.25, -0.276, -0.307, -0.348, -0.407",\
                 "-0.261, -0.259, -0.249, -0.237, -0.238, -0.252, -0.276, -0.311, -0.355, -0.405",\
                 "-0.266, -0.259, -0.246, -0.233, -0.236, -0.254, -0.275, -0.309, -0.348, -0.403",\
                 "-0.268, -0.257, -0.252, -0.24, -0.238, -0.247, -0.272, -0.301, -0.342, -0.396",\
                 "-0.263, -0.261, -0.249, -0.236, -0.233, -0.248, -0.265, -0.298, -0.338, -0.39",\
                 "-0.253, -0.246, -0.237, -0.226, -0.228, -0.238, -0.26, -0.286, -0.331, -0.382",\
                 "-0.225, -0.226, -0.211, -0.199, -0.2, -0.21, -0.234, -0.27, -0.309, -0.366",\
                 "-0.176, -0.176, -0.161, -0.153, -0.152, -0.171, -0.196, -0.228, -0.274, -0.326",\
                 "-0.11, -0.109, -0.096, -0.087, -0.091, -0.105, -0.136, -0.174, -0.221, -0.281");
        }
      }

      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.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.103, -0.099, -0.077, -0.05, -0.019, 0.013, 0.038, 0.049, 0.052, 0.044",\
                 "-0.107, -0.101, -0.083, -0.053, -0.021, 0.012, 0.029, 0.048, 0.051, 0.038",\
                 "-0.116, -0.113, -0.093, -0.058, -0.027, 0.002, 0.026, 0.039, 0.04, 0.029",\
                 "-0.128, -0.127, -0.108, -0.069, -0.038, -0.005, 0.011, 0.027, 0.034, 0.022",\
                 "-0.15, -0.144, -0.127, -0.092, -0.063, -0.025, -0.011, 0.011, 0.015, -0.001",\
                 "-0.165, -0.167, -0.149, -0.108, -0.081, -0.048, -0.026, -0.011, -0.01, -0.018",\
                 "-0.176, -0.177, -0.154, -0.121, -0.092, -0.059, -0.039, -0.022, -0.019, -0.027",\
                 "-0.19, -0.19, -0.168, -0.133, -0.098, -0.071, -0.045, -0.023, -0.025, -0.031",\
                 "-0.2, -0.199, -0.185, -0.144, -0.116, -0.08, -0.06, -0.034, -0.029, -0.036",\
                 "-0.22, -0.225, -0.205, -0.168, -0.136, -0.099, -0.082, -0.053, -0.05, -0.049");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.258, -0.255, -0.238, -0.234, -0.23, -0.249, -0.271, -0.309, -0.352, -0.403",\
                 "-0.263, -0.256, -0.246, -0.233, -0.238, -0.25, -0.276, -0.307, -0.348, -0.407",\
                 "-0.261, -0.259, -0.249, -0.237, -0.238, -0.252, -0.276, -0.311, -0.355, -0.405",\
                 "-0.266, -0.259, -0.246, -0.233, -0.236, -0.254, -0.275, -0.309, -0.348, -0.403",\
                 "-0.268, -0.257, -0.252, -0.24, -0.238, -0.247, -0.272, -0.301, -0.342, -0.396",\
                 "-0.263, -0.261, -0.249, -0.236, -0.233, -0.248, -0.265, -0.298, -0.338, -0.39",\
                 "-0.253, -0.246, -0.237, -0.226, -0.228, -0.238, -0.26, -0.286, -0.331, -0.382",\
                 "-0.225, -0.226, -0.211, -0.199, -0.2, -0.21, -0.234, -0.27, -0.309, -0.366",\
                 "-0.176, -0.176, -0.161, -0.153, -0.152, -0.171, -0.196, -0.228, -0.274, -0.326",\
                 "-0.115, -0.109, -0.096, -0.087, -0.091, -0.105, -0.136, -0.174, -0.221, -0.281");
        }
      }

      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.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.572, 0.567, 0.544, 0.504, 0.458, 0.415, 0.391, 0.367, 0.36, 0.362",\
                 "0.575, 0.568, 0.546, 0.504, 0.465, 0.425, 0.39, 0.373, 0.357, 0.366",\
                 "0.583, 0.576, 0.555, 0.514, 0.469, 0.427, 0.405, 0.379, 0.371, 0.374",\
                 "0.6, 0.59, 0.571, 0.527, 0.485, 0.443, 0.411, 0.393, 0.382, 0.387",\
                 "0.631, 0.623, 0.607, 0.562, 0.519, 0.479, 0.443, 0.431, 0.416, 0.418",\
                 "0.709, 0.698, 0.678, 0.637, 0.598, 0.55, 0.518, 0.503, 0.481, 0.489",\
                 "0.829, 0.822, 0.797, 0.753, 0.712, 0.67, 0.638, 0.606, 0.593, 0.593",\
                 "0.98, 0.972, 0.949, 0.909, 0.859, 0.808, 0.771, 0.748, 0.728, 0.722",\
                 "1.163, 1.148, 1.128, 1.087, 1.032, 0.985, 0.945, 0.912, 0.889, 0.891",\
                 "1.36, 1.352, 1.331, 1.287, 1.234, 1.183, 1.137, 1.108, 1.084, 1.075");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.51, 0.499, 0.48, 0.447, 0.416, 0.402, 0.408, 0.431, 0.461, 0.508",\
                 "0.507, 0.5, 0.486, 0.45, 0.421, 0.406, 0.408, 0.432, 0.466, 0.508",\
                 "0.519, 0.508, 0.483, 0.452, 0.421, 0.406, 0.415, 0.434, 0.468, 0.508",\
                 "0.514, 0.505, 0.488, 0.458, 0.417, 0.405, 0.411, 0.433, 0.467, 0.511",\
                 "0.521, 0.51, 0.492, 0.455, 0.427, 0.408, 0.409, 0.431, 0.462, 0.504",\
                 "0.526, 0.517, 0.497, 0.471, 0.429, 0.416, 0.418, 0.438, 0.46, 0.501",\
                 "0.528, 0.526, 0.503, 0.467, 0.439, 0.418, 0.417, 0.436, 0.457, 0.504",\
                 "0.523, 0.516, 0.494, 0.468, 0.439, 0.415, 0.413, 0.429, 0.45, 0.494",\
                 "0.511, 0.498, 0.484, 0.45, 0.418, 0.399, 0.395, 0.408, 0.43, 0.472",\
                 "0.476, 0.468, 0.453, 0.426, 0.388, 0.372, 0.368, 0.379, 0.4, 0.436");
        }
      }

      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.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.573, 0.567, 0.544, 0.504, 0.458, 0.415, 0.391, 0.367, 0.36, 0.362",\
                 "0.575, 0.568, 0.546, 0.504, 0.465, 0.425, 0.39, 0.373, 0.357, 0.366",\
                 "0.583, 0.576, 0.555, 0.514, 0.469, 0.427, 0.396, 0.379, 0.371, 0.374",\
                 "0.6, 0.59, 0.571, 0.527, 0.486, 0.443, 0.411, 0.393, 0.382, 0.387",\
                 "0.631, 0.623, 0.607, 0.562, 0.519, 0.479, 0.443, 0.424, 0.416, 0.418",\
                 "0.709, 0.698, 0.678, 0.637, 0.598, 0.55, 0.518, 0.503, 0.481, 0.489",\
                 "0.829, 0.822, 0.796, 0.753, 0.712, 0.67, 0.638, 0.606, 0.593, 0.593",\
                 "0.98, 0.972, 0.949, 0.909, 0.859, 0.808, 0.771, 0.748, 0.728, 0.722",\
                 "1.163, 1.148, 1.128, 1.087, 1.032, 0.985, 0.945, 0.912, 0.889, 0.891",\
                 "1.36, 1.357, 1.331, 1.287, 1.234, 1.177, 1.137, 1.108, 1.084, 1.075");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.51, 0.499, 0.48, 0.447, 0.416, 0.402, 0.408, 0.431, 0.461, 0.508",\
                 "0.507, 0.5, 0.486, 0.45, 0.421, 0.406, 0.408, 0.432, 0.466, 0.508",\
                 "0.519, 0.508, 0.483, 0.452, 0.421, 0.406, 0.415, 0.434, 0.468, 0.508",\
                 "0.514, 0.505, 0.488, 0.458, 0.417, 0.405, 0.411, 0.433, 0.467, 0.511",\
                 "0.521, 0.51, 0.492, 0.455, 0.427, 0.408, 0.409, 0.431, 0.462, 0.504",\
                 "0.526, 0.517, 0.497, 0.471, 0.429, 0.416, 0.418, 0.438, 0.46, 0.5",\
                 "0.528, 0.526, 0.503, 0.467, 0.439, 0.418, 0.417, 0.436, 0.457, 0.497",\
                 "0.523, 0.516, 0.494, 0.468, 0.439, 0.415, 0.413, 0.429, 0.45, 0.494",\
                 "0.511, 0.498, 0.484, 0.45, 0.418, 0.399, 0.4, 0.408, 0.43, 0.472",\
                 "0.481, 0.468, 0.448, 0.426, 0.388, 0.372, 0.368, 0.379, 0.4, 0.436");
        }
      }
    }

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

