/*
 * 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.
 *
 *      Single Port SRAM cell name : gf180mcu_fd_ip_sram__sram512x8m8wm1
 *      Technology                 : GF 180nm 5V Green
 *
 *      ---------
 *      Pin name:
 *      ---------
 *      Input Pins : CLK CEN GWEN WEN[7:0] A[8:0] D[7:0]
 *      Inout Pins:  VDD VSS
 *      Output Pins: Q[7:0]
 *
 *     Revision History: 1.0 (Initial Release: June 20, 2014)
 */

library(gf180mcu_fd_ip_sram__sram512x8m8wm1__ff_125C_3v60) {
        delay_model             : table_lookup;
        revision                : 1.0;
        date                    : "June 20, 2014";
        comment                 : "GF 180nm 5V Green";
        voltage_unit            : "1V";
        time_unit               : "1ns";
        current_unit            : "1mA";
        leakage_power_unit      : "1mW";
        nom_process             : 1;
        nom_temperature         : 125;
        nom_voltage             : 3.6;
        capacitive_load_unit    (1,pf);
        pulling_resistance_unit : "1kohm";

        /* additional header data */
        default_fanout_load            : 1;
        default_inout_pin_cap          : 0.045;
        default_input_pin_cap          : 0.045;
        default_output_pin_cap         : 0;
        default_max_transition         : 2.3877;
        default_cell_leakage_power     : 0;

         /* default attributes */
         slew_derate_from_library      : 1.000;
         slew_lower_threshold_pct_fall : 10.000;
         slew_upper_threshold_pct_fall : 90.000;
         slew_lower_threshold_pct_rise : 10.000;
         slew_upper_threshold_pct_rise : 90.000;
         input_threshold_pct_fall      : 50.000;
         input_threshold_pct_rise      : 50.000;
         output_threshold_pct_fall     : 50.000;
         output_threshold_pct_rise     : 50.000;
         default_leakage_power_density : 0;

        /* k-factors */
        k_process_recovery_fall        : 1;
        k_process_recovery_rise        : 1;
        k_process_cell_fall            : 1;
        k_process_cell_leakage_power   : 0;
        k_process_cell_rise            : 1;
        k_process_fall_transition      : 1;
        k_process_hold_fall            : 1;
        k_process_hold_rise            : 1;
        k_process_internal_power       : 0;
        k_process_min_pulse_width_high : 1;
        k_process_min_pulse_width_low  : 1;
        k_process_setup_fall           : 1;
        k_process_setup_rise           : 1;
        k_process_wire_cap             : 0;
        k_process_wire_res             : 0;
        k_process_pin_cap              : 0;
        k_process_rise_transition      : 1;
        k_temp_cell_fall               : 0.000;
        k_temp_cell_rise               : 0.000;
        k_temp_hold_fall               : 0.000;
        k_temp_hold_rise               : 0.000;
        k_temp_min_pulse_width_high    : 0.000;
        k_temp_min_pulse_width_low     : 0.000;
        k_temp_min_period              : 0.000;
        k_temp_rise_propagation        : 0.000;
        k_temp_fall_propagation        : 0.000;
        k_temp_rise_transition         : 0.000;
        k_temp_fall_transition         : 0.000;
        k_temp_recovery_fall           : 0.000;
        k_temp_recovery_rise           : 0.000;
        k_temp_setup_fall              : 0.000;
        k_temp_setup_rise              : 0.000;
        k_volt_cell_fall               : 0.000;
        k_volt_cell_rise               : 0.000;
        k_volt_hold_fall               : 0.000;
        k_volt_hold_rise               : 0.000;
        k_volt_min_pulse_width_high    : 0.000;
        k_volt_min_pulse_width_low     : 0.000;
        k_volt_min_period              : 0.000;
        k_volt_recovery_fall           : 0.000;
        k_volt_recovery_rise           : 0.000;
        k_volt_setup_fall              : 0.000;
        k_volt_setup_rise              : 0.000;
        k_volt_rise_propagation        : 0.000;
        k_volt_fall_propagation        : 0.000;
        k_volt_rise_transition         : 0.000;
        k_volt_fall_transition         : 0.000;

         voltage_map (VDD, 3.6);
         voltage_map (VSS, 0.00);
         operating_conditions(ff_3p6v_125C) {
                process       : 1;
                temperature   : 125;
                voltage       : 3.6;
                tree_type     : balanced_tree;
         }

         default_operating_conditions : ff_3p6v_125C;
         wire_load("Estimate") {
                resistance    : 1.44e-05;
                capacitance   : 0.00018;
                area          : 1.7;
                slope         : 500;
                fanout_length (1,500);
         }
         power_lut_template(power_template) {
            variable_1 : input_transition_time;
                 index_1 ("1001, 1002, 1003, 1004, 1005, 1006, 1007");
         }
         lu_table_template(q_delay_template) {
            variable_1 : input_net_transition;
            variable_2 : total_output_net_capacitance;
                 index_1 ("1001, 1002, 1003, 1004, 1005, 1006, 1007");
                 index_2 ("1001, 1002, 1003, 1004, 1005, 1006, 1007");
         }
         lu_table_template(q_slew_template) {
            variable_1 : total_output_net_capacitance;
                 index_1 ("1001, 1002, 1003, 1004, 1005, 1006, 1007");
         }
         lu_table_template(constraint_template) {
            variable_1 : related_pin_transition;
            variable_2 : constrained_pin_transition;
                 index_1 ("1001, 1002, 1003, 1004, 1005, 1006, 1007");
                 index_2 ("1001, 1002, 1003, 1004, 1005, 1006, 1007");
         }

         library_features(report_delay_calculation);

         type (A_BUS) {
                base_type : array;
                data_type : bit;
                bit_width : 9;
                bit_from  : 8;
                bit_to    : 0;
                downto    : true;
         }
         type (Q_BUS) {
                base_type : array;
                data_type : bit;
                bit_width : 8;
                bit_from  : 7;
                bit_to    : 0;
                downto    : true;
         }
 cell(gf180mcu_fd_ip_sram__sram512x8m8wm1) {
        area             : 209400.2768;
        dont_use         : TRUE;
        dont_touch       : TRUE;
        interface_timing : TRUE;
        memory() {
                type          : ram;
                address_width : 9;
                word_width    : 8;
        }

                 bus(Q)   {
                  bus_type             : Q_BUS;
                  direction            : output;
                  max_capacitance      : 1.0626;
                  memory_read() {
                        address        : A;
                  }
                  timing() {
                          related_pin  : "CLK";
                          timing_type  : rising_edge;
                          timing_sense : non_unate;
       		  when : "((!CEN) & (GWEN))";
        	  sdf_cond : "CEN== 1'b0 && GWEN== 1'b1";
                          cell_rise(q_delay_template) {
			  index_1 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
			  index_2 ("0.0100, 0.0289, 0.0954, 0.2223, 0.4200, 0.6975, 1.0626");
                          values  ( \
                            "6.03336, 6.05436, 6.12804, 6.25392, 6.43464, 6.68568, 7.01232", \
                            "6.03084, 6.05988, 6.12948, 6.255, 6.43692, 6.69072, 7.01724", \
                            "6.03624, 6.06216, 6.13308, 6.2556, 6.44232, 6.687, 7.01916", \
                            "6.04308, 6.06732, 6.138, 6.26268, 6.44544, 6.6948, 7.02852", \
                            "6.0564, 6.0762, 6.1494, 6.27564, 6.45864, 6.70668, 7.03692", \
                            "6.05436, 6.07824, 6.15, 6.27684, 6.45612, 6.70488, 7.03656", \
                            "6.01764, 6.04104, 6.10968, 6.24096, 6.42456, 6.67248, 7.00176" \
                          )
                          }
                          rise_transition(q_slew_template) {
                          index_1 ("0.0100, 0.0289, 0.0954, 0.2223, 0.4200, 0.6975, 1.0626");
                          values  ( \
  	                     "0.2343, 0.269424, 0.385656, 0.613536, 0.983832, 1.51944, 2.2176" \
                          )

                          }
                          cell_fall(q_delay_template) {
                          index_1 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          index_2 ("0.0100, 0.0289, 0.0954, 0.2223, 0.4200, 0.6975, 1.0626");
                          values  ( \
                            "6.21456, 6.2388, 6.312, 6.42252, 6.56184, 6.73584, 6.9516", \
                            "6.21552, 6.24252, 6.31464, 6.42132, 6.56268, 6.7428, 6.95628", \
                            "6.22164, 6.24816, 6.31692, 6.42564, 6.56784, 6.74016, 6.95904", \
                            "6.23232, 6.25464, 6.32172, 6.43152, 6.57348, 6.75144, 6.96804", \
                            "6.24192, 6.26748, 6.33504, 6.44544, 6.58632, 6.75852, 6.975", \
                            "6.23988, 6.26412, 6.33528, 6.44412, 6.58368, 6.75612, 6.97296", \
                            "6.20484, 6.2292, 6.297, 6.40812, 6.54852, 6.7236, 6.93996" \
                          )
                          }
                          fall_transition(q_slew_template) {
                          index_1 ("0.0100, 0.0289, 0.0954, 0.2223, 0.4200, 0.6975, 1.0626");
                          values  ( \
                            "0.23952, 0.267108, 0.344472, 0.47766, 0.677052, 0.955752, 1.32456" \
                          )
                          }
                  }
          }
          pin(CLK)   {
                  direction            : input;
                  capacitance          : 0.282001;
                  clock                : true;
                  max_transition       : 2.3877;
                  min_pulse_width_high : 3.243825;
                  min_pulse_width_low  : 3.778215;
                  min_period           : 7.959375;

/* WRITE POWER */
             internal_power() {
              when : "!CEN & !GWEN & (!WEN[0] | !WEN[1] | !WEN[2] | !WEN[3] | !WEN[4] | !WEN[5] | !WEN[6] | !WEN[7])";
              rise_power(power_template) {
                index_1 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                values  ("520.218, 520.218, 520.218, 520.218, 520.218, 520.218, 520.218");
              }
              fall_power(power_template) {
                index_1 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                values  ("520.218, 520.218, 520.218, 520.218, 520.218, 520.218, 520.218");
              }
             }
/* DISABLED POWER */
             internal_power() {
              when : "CEN";
              rise_power(power_template) {
                index_1 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                values  ("0.0121248, 0.0121248, 0.0121248, 0.0121248, 0.0121248, 0.0121248, 0.0121248");
              }
              fall_power(power_template) {
                index_1 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                values  ("0.0121248, 0.0121248, 0.0121248, 0.0121248, 0.0121248, 0.0121248, 0.0121248");
              }
             }
/* READ POWER */
             internal_power() {
             when : "!CEN & GWEN";
             rise_power(power_template) {
                index_1 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                values  ("468.576, 468.576, 468.576, 468.576, 468.576, 468.576, 468.576");
              }
              fall_power(power_template) {
                index_1 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                values  ("468.576, 468.576, 468.576, 468.576, 468.576, 468.576, 468.576");
              }
             }
          }

          pg_pin(VDD) {
                  voltage_name     : VDD;
                  pg_type          : primary_power;
          }
          pg_pin(VSS) {
                  voltage_name     : VSS;
                  pg_type          : primary_ground;
          }
          pin(CEN)   {
                  direction            : input;
                  capacitance          : 0.0174749;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          index_2 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          values  ( \
                            "0.538824, 0.532521, 0.527912, 0.549846, 0.59521, 0.629508, 0.654291", \
                            "0.532642, 0.524095, 0.520311, 0.543411, 0.587081, 0.622567, 0.647647", \
                            "0.523512, 0.516703, 0.511863, 0.530915, 0.568051, 0.602338, 0.627132", \
                            "0.522841, 0.51645, 0.511555, 0.530607, 0.559449, 0.572572, 0.597256", \
                            "0.523039, 0.516186, 0.511335, 0.530387, 0.559229, 0.572341, 0.590711", \
                            "0.523006, 0.516142, 0.511291, 0.530343, 0.560131, 0.594429, 0.619212", \
                            "0.571846, 0.563673, 0.560692, 0.582967, 0.628001, 0.662288, 0.687071" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          index_2 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          values  ( \
                            "0.496969, 0.502062, 0.523622, 0.575498, 0.660825, 0.766073, 0.878438", \
                            "0.496584, 0.501842, 0.522643, 0.575322, 0.66418, 0.763169, 0.878273", \
                            "0.496265, 0.501578, 0.522324, 0.574871, 0.663861, 0.765589, 0.877954", \
                            "0.495968, 0.501006, 0.522027, 0.574695, 0.663553, 0.765281, 0.877646", \
                            "0.495748, 0.50105, 0.521807, 0.574475, 0.663322, 0.765061, 0.877426", \
                            "0.495704, 0.500973, 0.521763, 0.57442, 0.663289, 0.765006, 0.877371", \
                            "0.503932, 0.50919, 0.530123, 0.580085, 0.66957, 0.771628, 0.885533" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          index_2 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          values  ( \
                            "1.47653, 1.48291, 1.48775, 1.46905, 1.4399, 1.42681, 1.42087", \
                            "1.4839, 1.4927, 1.49589, 1.47653, 1.44914, 1.43484, 1.42857", \
                            "1.5026, 1.50942, 1.51426, 1.49523, 1.4663, 1.45321, 1.44738", \
                            "1.54957, 1.55595, 1.5609, 1.54187, 1.51305, 1.49985, 1.49402", \
                            "1.60886, 1.61568, 1.62052, 1.60149, 1.57267, 1.55958, 1.55364", \
                            "1.65198, 1.6588, 1.66364, 1.64461, 1.61579, 1.6027, 1.59676", \
                            "1.68674, 1.69323, 1.69807, 1.67904, 1.65022, 1.63702, 1.63119" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          index_2 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          values  ( \
                            "1.50315, 1.49809, 1.47653, 1.42461, 1.33925, 1.23405, 1.12168", \
                            "1.51107, 1.5059, 1.485, 1.43242, 1.34354, 1.24453, 1.12943", \
                            "1.52988, 1.52449, 1.50381, 1.45123, 1.36224, 1.26052, 1.14816", \
                            "1.57652, 1.57146, 1.55045, 1.49776, 1.40888, 1.30713, 1.1948", \
                            "1.63614, 1.63086, 1.61007, 1.55738, 1.4685, 1.36686, 1.25444", \
                            "1.67926, 1.67398, 1.65319, 1.6005, 1.51173, 1.40998, 1.29756", \
                            "1.71369, 1.70863, 1.6874, 1.63493, 1.54605, 1.44441, 1.33199" \
                          )
                          }
                 }
          }
          pin(GWEN)   {
                  direction            : input;
                  capacitance          : 0.0480845;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          index_2 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          values  ( \
                            "0.741972, 0.744843, 0.765171, 0.807532, 0.873422, 0.941369, 0.991045", \
                            "0.736439, 0.739013, 0.76021, 0.802571, 0.868461, 0.936408, 0.9867", \
                            "0.720698, 0.723646, 0.743974, 0.786335, 0.852214, 0.920172, 0.970464", \
                            "0.67463, 0.67804, 0.698357, 0.740718, 0.806608, 0.874555, 0.924858", \
                            "0.627858, 0.630652, 0.650265, 0.694199, 0.759385, 0.827321, 0.877624", \
                            "0.600556, 0.603339, 0.624283, 0.666831, 0.732534, 0.800481, 0.850773", \
                            "0.569811, 0.571813, 0.593582, 0.635943, 0.701833, 0.76978, 0.820072" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          index_2 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          values  ( \
                            "0.812075, 0.815617, 0.848661, 0.913792, 1.01968, 1.15995, 1.31593", \
                            "0.806751, 0.811173, 0.8437, 0.90893, 1.01472, 1.15059, 1.31098", \
                            "0.790504, 0.794409, 0.827453, 0.892584, 0.99847, 1.13874, 1.2947", \
                            "0.745074, 0.749309, 0.781847, 0.846978, 0.952864, 1.09314, 1.24909", \
                            "0.697664, 0.701569, 0.734613, 0.799843, 0.905619, 1.0459, 1.20187", \
                            "0.671187, 0.675125, 0.707762, 0.772992, 0.878779, 1.01905, 1.17502", \
                            "0.640486, 0.644534, 0.677072, 0.740201, 0.848089, 0.988394, 1.14431" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          index_2 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          values  ( \
                            "1.06095, 1.05669, 1.0379, 0.99935, 0.966713, 0.951918, 0.959068", \
                            "1.06227, 1.0584, 1.04038, 1.0018, 0.969166, 0.954393, 0.961521", \
                            "1.06659, 1.06341, 1.04463, 1.00607, 0.973434, 0.958628, 0.965789", \
                            "1.07306, 1.0689, 1.05004, 1.01146, 0.978824, 0.964029, 0.971179", \
                            "1.08288, 1.07986, 1.06099, 1.02243, 0.989791, 0.974985, 0.982146", \
                            "1.07975, 1.07663, 1.05786, 1.01951, 0.986656, 0.97185, 0.979011", \
                            "1.0529, 1.05074, 1.03096, 0.992387, 0.959453, 0.944955, 0.952116" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          index_2 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          values  ( \
                            "0.599599, 0.592119, 0.562254, 0.500753, 0.393206, 0.257587, 0.0996446", \
                            "0.601755, 0.594836, 0.565059, 0.503041, 0.395164, 0.26871, 0.102099", \
                            "0.605407, 0.598961, 0.568909, 0.507254, 0.399938, 0.264304, 0.106302", \
                            "0.611655, 0.604483, 0.574002, 0.512424, 0.405328, 0.269695, 0.111699", \
                            "0.621962, 0.615318, 0.585321, 0.523655, 0.416284, 0.28065, 0.123403", \
                            "0.619333, 0.612095, 0.582131, 0.520542, 0.41316, 0.277526, 0.119597", \
                            "0.659549, 0.653961, 0.6237, 0.558041, 0.445423, 0.309958, 0.160219" \
                          )
                          }
                 }
          }
          bus(WEN)   {
                  bus_type             : Q_BUS;
                  direction            : input;
                  capacitance          : 0.0075492;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          index_2 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          values  ( \
                            "0, 0, 0, 0, 0, 0, 0", \
                            "0, 0, 0, 0, 0, 0, 0", \
                            "0, 0, 0, 0, 0, 0, 0", \
                            "0, 0, 0, 0, 0, 0, 0", \
                            "0, 0, 0, 0, 0, 0, 0", \
                            "0, 0, 0, 0, 0, 0, 0", \
                            "0, 0, 0, 0, 0, 0, 0" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          index_2 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          values  ( \
                            "0.2966, 0.303875, 0.333432, 0.39655, 0.503536, 0.639089, 0.798314", \
                            "0.294484, 0.299961, 0.331276, 0.39457, 0.50138, 0.62887, 0.796158", \
                            "0.291474, 0.297813, 0.327448, 0.388784, 0.496936, 0.633149, 0.791428", \
                            "0.284802, 0.291969, 0.322366, 0.384164, 0.492382, 0.627935, 0.786214", \
                            "0.274594, 0.281793, 0.311113, 0.374264, 0.481228, 0.61677, 0.775687", \
                            "0.275909, 0.282315, 0.312081, 0.374825, 0.482592, 0.618145, 0.777337", \
                            "0.304106, 0.310431, 0.340736, 0.405889, 0.51084, 0.646217, 0.805288" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          index_2 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          values  ( \
                            "1.06095, 1.05669, 1.03845, 0.99935, 0.96723, 0.951918, 0.959068", \
                            "1.06227, 1.0584, 1.04094, 1.0018, 0.969716, 0.954393, 0.961521", \
                            "1.06659, 1.06341, 1.0452, 1.00607, 0.973962, 0.958628, 0.965789", \
                            "1.07306, 1.0689, 1.0506, 1.01146, 0.979352, 0.964029, 0.971179", \
                            "1.08288, 1.07986, 1.06157, 1.02243, 0.99033, 0.974985, 0.982146", \
                            "1.07975, 1.07663, 1.05842, 1.01951, 0.987173, 0.97185, 0.979011", \
                            "1.0529, 1.05074, 1.03155, 0.992387, 0.9603, 0.944955, 0.952116" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          index_2 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          values  ( \
                            "0.599599, 0.592119, 0.562254, 0.500753, 0.393206, 0.257587, 0.0996446", \
                            "0.601755, 0.594836, 0.565059, 0.503041, 0.395164, 0.26871, 0.102099", \
                            "0.605407, 0.598961, 0.568909, 0.507254, 0.399938, 0.264304, 0.106302", \
                            "0.611655, 0.604483, 0.574002, 0.512424, 0.405328, 0.269695, 0.111699", \
                            "0.621962, 0.615318, 0.585321, 0.523655, 0.416284, 0.28065, 0.123403", \
                            "0.619333, 0.612095, 0.582131, 0.520542, 0.41316, 0.277526, 0.119597", \
                            "0.592405, 0.585266, 0.555192, 0.49137, 0.386298, 0.250966, 0.0933691" \
                          )
                          }
                 }
          }
          bus(A)   {
                  bus_type             : A_BUS;
                  direction            : input;
                  capacitance          : 0.0377615;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          index_2 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          values  ( \
                            "0.786896, 0.784553, 0.779867, 0.806575, 0.862807, 0.882893, 0.912362", \
                            "0.782474, 0.782012, 0.780978, 0.802868, 0.857186, 0.881232, 0.910151", \
                            "0.77814, 0.777645, 0.773641, 0.79794, 0.854073, 0.875787, 0.907093", \
                            "0.772145, 0.772618, 0.767008, 0.790592, 0.846142, 0.871189, 0.900658", \
                            "0.762498, 0.759451, 0.760056, 0.780109, 0.841258, 0.86218, 0.893849", \
                            "0.764885, 0.763664, 0.7601, 0.784872, 0.840972, 0.86416, 0.893398", \
                            "0.793331, 0.791153, 0.787721, 0.811866, 0.866778, 0.890164, 0.920513" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          index_2 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          values  ( \
                            "1.11452, 1.11882, 1.14443, 1.18623, 1.28456, 1.3992, 1.53736", \
                            "1.11191, 1.11588, 1.13983, 1.18548, 1.28228, 1.39997, 1.53461", \
                            "1.10785, 1.11334, 1.13885, 1.18089, 1.27802, 1.39095, 1.52966", \
                            "1.10401, 1.10615, 1.1316, 1.17692, 1.27178, 1.38523, 1.52394", \
                            "1.09431, 1.09837, 1.12082, 1.16479, 1.26268, 1.37665, 1.51393", \
                            "1.09359, 1.09793, 1.12191, 1.16996, 1.26437, 1.38039, 1.51657", \
                            "1.12303, 1.12893, 1.15008, 1.19512, 1.2928, 1.40965, 1.54396" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          index_2 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          values  ( \
                            "0.617331, 0.62194, 0.618354, 0.60764, 0.594132, 0.60071, 0.597619", \
                            "0.625229, 0.629277, 0.623359, 0.614966, 0.601469, 0.608025, 0.604956", \
                            "0.643005, 0.647053, 0.643467, 0.632753, 0.619245, 0.625823, 0.622743", \
                            "0.679437, 0.683474, 0.679888, 0.669174, 0.655666, 0.662244, 0.659164", \
                            "0.738936, 0.742973, 0.737066, 0.728673, 0.715165, 0.721743, 0.718663", \
                            "0.777282, 0.78133, 0.778327, 0.76703, 0.753522, 0.7601, 0.757009", \
                            "0.801372, 0.80608, 0.802494, 0.79178, 0.778272, 0.78485, 0.78177" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          index_2 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          values  ( \
                            "0.639672, 0.634667, 0.610588, 0.587895, 0.577698, 0.580415, 0.587686", \
                            "0.646822, 0.642048, 0.617914, 0.595232, 0.585035, 0.587609, 0.595023", \
                            "0.664818, 0.659659, 0.63569, 0.613008, 0.602844, 0.605528, 0.612799", \
                            "0.700953, 0.696212, 0.672111, 0.649429, 0.639243, 0.641949, 0.64922", \
                            "0.760694, 0.755612, 0.731621, 0.708939, 0.698742, 0.701316, 0.708719", \
                            "0.799084, 0.794101, 0.77, 0.747263, 0.73711, 0.739794, 0.747076", \
                            "0.82346, 0.818532, 0.794717, 0.772046, 0.761871, 0.764412, 0.771826" \
                          )
                          }
                 }
          }
          bus(D)   {
                  bus_type             : Q_BUS;
                  memory_write() {
                          address      : A;
                          clocked_on   : "CLK";
                  }
                  direction            : input;
                  capacitance          : 0.0156578;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          index_2 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          values  ( \
                            "0.539121, 0.54054, 0.560637, 0.567479, 0.549967, 0.50633, 0.42691", \
                            "0.534897, 0.542685, 0.555621, 0.565114, 0.549714, 0.501149, 0.423896", \
                            "0.533335, 0.535007, 0.554455, 0.560945, 0.543224, 0.496991, 0.41822", \
                            "0.527791, 0.530937, 0.547327, 0.553762, 0.537295, 0.491986, 0.411147", \
                            "0.518859, 0.522621, 0.539627, 0.545083, 0.527703, 0.481998, 0.402358", \
                            "0.521939, 0.522126, 0.539242, 0.54296, 0.52921, 0.485045, 0.405438", \
                            "0.545479, 0.550539, 0.566797, 0.576048, 0.556567, 0.514624, 0.433763" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          index_2 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          values  ( \
                            "0.104448, 0.101325, 0.134469, 0.212905, 0.335269, 0.494043, 0.69256", \
                            "0.101356, 0.100297, 0.131348, 0.209773, 0.332387, 0.490699, 0.689425", \
                            "0.0958727, 0.0946077, 0.127783, 0.206626, 0.328581, 0.487355, 0.685872", \
                            "0.0903529, 0.0896456, 0.12074, 0.198995, 0.32153, 0.480315, 0.678832", \
                            "0.082115, 0.079046, 0.112201, 0.190635, 0.312994, 0.471779, 0.670296", \
                            "0.0860805, 0.082918, 0.113946, 0.192361, 0.314743, 0.473517, 0.672045", \
                            "0.112071, 0.110342, 0.141384, 0.218508, 0.341924, 0.500962, 0.699468" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          index_2 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          values  ( \
                            "0.576004, 0.573826, 0.553608, 0.550341, 0.567204, 0.610093, 0.688138", \
                            "0.583154, 0.572616, 0.557953, 0.554664, 0.570746, 0.607981, 0.692813", \
                            "0.58586, 0.580426, 0.561099, 0.55803, 0.573584, 0.617826, 0.695838", \
                            "0.591437, 0.588984, 0.56749, 0.564421, 0.579975, 0.624173, 0.702229", \
                            "0.601601, 0.596178, 0.57893, 0.573848, 0.589402, 0.633644, 0.711656", \
                            "0.595353, 0.593945, 0.574552, 0.571219, 0.587037, 0.631235, 0.709214", \
                            "0.567347, 0.565422, 0.546678, 0.543609, 0.560472, 0.603361, 0.681406" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          index_2 ("0.0200, 0.0626, 0.2121, 0.4976, 0.9426, 1.5664, 2.3877");
                          values  ( \
                            "0.832293, 0.832403, 0.801922, 0.723228, 0.600919, 0.442915, 0.246573", \
                            "0.836836, 0.83699, 0.806487, 0.727793, 0.605484, 0.447491, 0.251142", \
                            "0.840004, 0.840114, 0.809611, 0.730917, 0.608608, 0.450615, 0.254277", \
                            "0.847572, 0.846549, 0.816002, 0.737319, 0.61501, 0.457006, 0.26067", \
                            "0.855756, 0.85591, 0.825429, 0.746735, 0.624437, 0.466433, 0.270082", \
                            "0.853435, 0.853556, 0.823064, 0.74437, 0.622061, 0.464068, 0.267717", \
                            "0.824824, 0.825671, 0.795179, 0.716496, 0.594187, 0.436183, 0.239851" \
                          )
                          }
                 }
        }
          cell_leakage_power : 0.0121248;
}
}
