/*
 * 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_n40C_1v98) {
        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         : -40;
        nom_voltage             : 1.98;
        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.315;
        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, 1.98);
         voltage_map (VSS, 0.00);
         operating_conditions(ff_1p98v_m40C) {
                process       : 1;
                temperature   : -40;
                voltage       : 1.98;
                tree_type     : balanced_tree;
         }

         default_operating_conditions : ff_1p98v_m40C;
         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      : 0.973;
                  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.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
			  index_2 ("0.01, 0.02732, 0.08813, 0.2042, 0.3851, 0.639, 0.973");
                          values  ( \
                            "8.32344, 8.36412, 8.4588, 8.63556, 8.89152, 9.22644, 9.69096", \
                            "8.32752, 8.37204, 8.45436, 8.63988, 8.89728, 9.23832, 9.68868", \
                            "8.34672, 8.39004, 8.48556, 8.667, 8.9118, 9.24972, 9.714", \
                            "8.39352, 8.43576, 8.52852, 8.7078, 8.95632, 9.31824, 9.75708", \
                            "8.46156, 8.49384, 8.59368, 8.7732, 9.01728, 9.37224, 9.8262", \
                            "8.52972, 8.56968, 8.66472, 8.82708, 9.08508, 9.441, 9.8856", \
                            "8.56452, 8.59848, 8.70576, 8.8668, 9.12276, 9.47472, 9.92988" \
                          )
                          }
                          rise_transition(q_slew_template) {
                          index_1 ("0.01, 0.02732, 0.08813, 0.2042, 0.3851, 0.639, 0.973");
                          values  ( \
  	                     "0.257448, 0.303864, 0.462312, 0.736788, 1.18348, 1.84908, 2.71752" \
                          )

                          }
                          cell_fall(q_delay_template) {
                          index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          index_2 ("0.01, 0.02732, 0.08813, 0.2042, 0.3851, 0.639, 0.973");
                          values  ( \
                            "8.70156, 8.7312, 8.81808, 8.94612, 9.10632, 9.29472, 9.53736", \
                            "8.69748, 8.7396, 8.8164, 8.94816, 9.1194, 9.29724, 9.53964", \
                            "8.72364, 8.7636, 8.841, 8.98044, 9.12624, 9.32004, 9.55836", \
                            "8.77056, 8.8038, 8.8866, 9.02316, 9.17616, 9.37572, 9.60816", \
                            "8.83272, 8.86884, 8.94756, 9.084, 9.23388, 9.43788, 9.67344", \
                            "8.89908, 8.934, 9.02136, 9.14064, 9.30348, 9.50292, 9.73212", \
                            "8.9352, 8.96928, 9.0588, 9.18, 9.342, 9.53484, 9.77328" \
                          )
                          }
                          fall_transition(q_slew_template) {
                          index_1 ("0.01, 0.02732, 0.08813, 0.2042, 0.3851, 0.639, 0.973");
                          values  ( \
                            "0.253248, 0.293364, 0.384828, 0.52242, 0.726192, 1.01678, 1.38084" \
                          )
                          }
                  }
          }
          pin(CLK)   {
                  direction            : input;
                  capacitance          : 0.270218;
                  clock                : true;
                  max_transition       : 2.315;
                  min_pulse_width_high : 4.25379;
                  min_pulse_width_low  : 4.340025;
                  min_period           : 10.94493;

/* 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.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                values  ("133.709, 133.709, 133.709, 133.709, 133.709, 133.709, 133.709");
              }
              fall_power(power_template) {
                index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                values  ("133.709, 133.709, 133.709, 133.709, 133.709, 133.709, 133.709");
              }
             }
/* DISABLED POWER */
             internal_power() {
              when : "CEN";
              rise_power(power_template) {
                index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                values  ("9.73823e-05, 9.73823e-05, 9.73823e-05, 9.73823e-05, 9.73823e-05, 9.73823e-05, 9.73823e-05");
              }
              fall_power(power_template) {
                index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                values  ("9.73823e-05, 9.73823e-05, 9.73823e-05, 9.73823e-05, 9.73823e-05, 9.73823e-05, 9.73823e-05");
              }
             }
/* READ POWER */
             internal_power() {
             when : "!CEN & GWEN";
             rise_power(power_template) {
                index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                values  ("121.344, 121.344, 121.344, 121.344, 121.344, 121.344, 121.344");
              }
              fall_power(power_template) {
                index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                values  ("121.344, 121.344, 121.344, 121.344, 121.344, 121.344, 121.344");
              }
             }
          }

          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.0171529;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          values  ( \
                            "0.796862, 0.790702, 0.789459, 0.834702, 0.938432, 1.09252, 1.24307", \
                            "0.788799, 0.780835, 0.779592, 0.824835, 0.928576, 1.08266, 1.24044", \
                            "0.754523, 0.748363, 0.746911, 0.792363, 0.896104, 1.05018, 1.20074", \
                            "0.70873, 0.700777, 0.697191, 0.742511, 0.837507, 0.98571, 1.13658", \
                            "0.708059, 0.699666, 0.698819, 0.742313, 0.83732, 0.96888, 1.07416", \
                            "0.707905, 0.700447, 0.698643, 0.742159, 0.837177, 0.968715, 1.05642", \
                            "0.708026, 0.700568, 0.698764, 0.742269, 0.837287, 0.968836, 1.06705" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          values  ( \
                            "0.654852, 0.662068, 0.691625, 0.762399, 0.88308, 1.05601, 1.2593", \
                            "0.651981, 0.657701, 0.688875, 0.758406, 0.879626, 1.05295, 1.24945", \
                            "0.651585, 0.657283, 0.688534, 0.758065, 0.879296, 1.0526, 1.24892", \
                            "0.651244, 0.656953, 0.688149, 0.757724, 0.878944, 1.05227, 1.24858", \
                            "0.651068, 0.656777, 0.687973, 0.757548, 0.878779, 1.0521, 1.24841", \
                            "0.650914, 0.656623, 0.687863, 0.757394, 0.878603, 1.05193, 1.24825", \
                            "0.65109, 0.656744, 0.687973, 0.757515, 0.878724, 1.05205, 1.24838" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          values  ( \
                            "2.00079, 2.00651, 2.00827, 1.96482, 1.86978, 1.73822, 1.65055", \
                            "2.00585, 2.01333, 2.0152, 1.97164, 1.8766, 1.74504, 1.64681", \
                            "2.03709, 2.04292, 2.04688, 2.00123, 1.90619, 1.77463, 1.68696", \
                            "2.10386, 2.11178, 2.11541, 2.07009, 1.97505, 1.8436, 1.75582", \
                            "2.20946, 2.21782, 2.2187, 2.17514, 2.08021, 1.94865, 1.86087", \
                            "2.34718, 2.35466, 2.35642, 2.31297, 2.21793, 2.08637, 1.9987", \
                            "2.47852, 2.486, 2.48787, 2.44431, 2.34927, 2.21771, 2.11948" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          values  ( \
                            "2.05601, 2.05029, 2.01916, 1.94953, 1.82831, 1.65506, 1.45871", \
                            "2.06283, 2.05711, 2.02598, 1.95646, 1.83524, 1.66188, 1.46553", \
                            "2.09242, 2.0867, 2.05546, 1.98594, 1.86472, 1.69136, 1.49512", \
                            "2.16139, 2.15567, 2.12443, 2.05491, 1.93369, 1.76033, 1.56398", \
                            "2.26644, 2.26072, 2.22948, 2.15996, 2.03874, 1.86538, 1.66903", \
                            "2.40416, 2.39844, 2.3672, 2.29768, 2.17646, 2.00321, 1.80686", \
                            "2.5355, 2.52989, 2.49865, 2.42913, 2.30791, 2.13455, 1.9382" \
                          )
                          }
                 }
          }
          pin(GWEN)   {
                  direction            : input;
                  capacitance          : 0.0440073;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          values  ( \
                            "1.00473, 1.01448, 1.04632, 1.1077, 1.20421, 1.3186, 1.42758", \
                            "0.990517, 0.999614, 1.03235, 1.09344, 1.18996, 1.30353, 1.41339", \
                            "0.963303, 0.971619, 1.00511, 1.06623, 1.16274, 1.27713, 1.38611", \
                            "0.90904, 0.917367, 0.950884, 1.01198, 1.10849, 1.22288, 1.33188", \
                            "0.818334, 0.828146, 0.860277, 0.921371, 1.01788, 1.13227, 1.24128", \
                            "0.73469, 0.744425, 0.776523, 0.837507, 0.934142, 1.04852, 1.15753", \
                            "0.674201, 0.682363, 0.716023, 0.777117, 0.873631, 0.987206, 1.09864" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          values  ( \
                            "1.19323, 1.19202, 1.23745, 1.31388, 1.4487, 1.62426, 1.83887", \
                            "1.17362, 1.17772, 1.21962, 1.29963, 1.43528, 1.60996, 1.82468", \
                            "1.15176, 1.15058, 1.19244, 1.27241, 1.408, 1.58279, 1.7974", \
                            "1.09738, 1.09634, 1.1392, 1.21814, 1.353, 1.52856, 1.74317", \
                            "1.00156, 1.00569, 1.04756, 1.12756, 1.26326, 1.43792, 1.65253", \
                            "0.923164, 0.92191, 0.96382, 1.04381, 1.17868, 1.35421, 1.56882", \
                            "0.862521, 0.861432, 0.903298, 0.98329, 1.11814, 1.29366, 1.50832" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          values  ( \
                            "1.37621, 1.3673, 1.3354, 1.2775, 1.19979, 1.13379, 1.08314", \
                            "1.38149, 1.37379, 1.34068, 1.28277, 1.20506, 1.13905, 1.08684", \
                            "1.40294, 1.39634, 1.36213, 1.3042, 1.2265, 1.16049, 1.10985", \
                            "1.44309, 1.43649, 1.40184, 1.34431, 1.26664, 1.19945, 1.14939", \
                            "1.4916, 1.48269, 1.45079, 1.39282, 1.31516, 1.24915, 1.19851", \
                            "1.54495, 1.53604, 1.50403, 1.44617, 1.36851, 1.30249, 1.25183", \
                            "1.58851, 1.58191, 1.5477, 1.48984, 1.41218, 1.34618, 1.29549" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          values  ( \
                            "0.744667, 0.729619, 0.693209, 0.609488, 0.484583, 0.310115, 0.112004", \
                            "0.7491, 0.734932, 0.698346, 0.614724, 0.489225, 0.315402, 0.117275", \
                            "0.771386, 0.756283, 0.72116, 0.636163, 0.510653, 0.33682, 0.138703", \
                            "0.811514, 0.795278, 0.758824, 0.675466, 0.550154, 0.377003, 0.177661", \
                            "0.860035, 0.844943, 0.808434, 0.724812, 0.599291, 0.425491, 0.227365", \
                            "0.91322, 0.898282, 0.861784, 0.778151, 0.653191, 0.47872, 0.280698", \
                            "0.956791, 0.941919, 0.905421, 0.82181, 0.695431, 0.522478, 0.324347" \
                          )
                          }
                 }
          }
          bus(WEN)   {
                  bus_type             : Q_BUS;
                  direction            : input;
                  capacitance          : 0.00700372;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          values  ( \
                            "0, 0, 0, 0, 0, 0.04389, 0.100034", \
                            "0, 0, 0, 0, 0, 0.039347, 0.095491", \
                            "0, 0, 0, 0, 0, 0.016918, 0.073062", \
                            "0, 0, 0, 0, 0, 0, 0.036399", \
                            "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.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          values  ( \
                            "0.428637, 0.43945, 0.480568, 0.558976, 0.687379, 0.862092, 1.06198", \
                            "0.424017, 0.435831, 0.476146, 0.554642, 0.683045, 0.857439, 1.0574", \
                            "0.40447, 0.413468, 0.452749, 0.532191, 0.660616, 0.83512, 1.03501", \
                            "0.367807, 0.376739, 0.416966, 0.495407, 0.624866, 0.798347, 0.998294", \
                            "0.318663, 0.327441, 0.368093, 0.446611, 0.575619, 0.749419, 0.949366", \
                            "0.263427, 0.275139, 0.315369, 0.393855, 0.520894, 0.69696, 0.896665", \
                            "0.216347, 0.228456, 0.268677, 0.347182, 0.476597, 0.650276, 0.850014" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          values  ( \
                            "1.37863, 1.3695, 1.33969, 1.27896, 1.20377, 1.13379, 1.08314", \
                            "1.38391, 1.37478, 1.34497, 1.28424, 1.20905, 1.13905, 1.08684", \
                            "1.40602, 1.39689, 1.36708, 1.30632, 1.23114, 1.16049, 1.10985", \
                            "1.44551, 1.43649, 1.40657, 1.34574, 1.27061, 1.19945, 1.14939", \
                            "1.49402, 1.48489, 1.45508, 1.39425, 1.31912, 1.24915, 1.19851", \
                            "1.54737, 1.53824, 1.50832, 1.4476, 1.37247, 1.30249, 1.25183", \
                            "1.59104, 1.58191, 1.5521, 1.49127, 1.41614, 1.34618, 1.29549" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          values  ( \
                            "0.744667, 0.729619, 0.693209, 0.609488, 0.484583, 0.310115, 0.112608", \
                            "0.7491, 0.734932, 0.698346, 0.614724, 0.489225, 0.315402, 0.117886", \
                            "0.771386, 0.756283, 0.7216, 0.636614, 0.511115, 0.33682, 0.140045", \
                            "0.811514, 0.795278, 0.759649, 0.675873, 0.551045, 0.377003, 0.179424", \
                            "0.860035, 0.844943, 0.808434, 0.724812, 0.599291, 0.425491, 0.227939", \
                            "0.91322, 0.898282, 0.861784, 0.778151, 0.653191, 0.47872, 0.28128", \
                            "0.956791, 0.941919, 0.905421, 0.82181, 0.695431, 0.522478, 0.32496" \
                          )
                          }
                 }
          }
          bus(A)   {
                  bus_type             : A_BUS;
                  direction            : input;
                  capacitance          : 0.0374395;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          values  ( \
                            "1.19772, 1.18879, 1.19165, 1.23798, 1.34695, 1.48566, 1.65165", \
                            "1.1918, 1.18043, 1.18593, 1.23432, 1.33441, 1.4773, 1.64483", \
                            "1.16417, 1.16099, 1.1593, 1.20515, 1.3136, 1.45299, 1.62261", \
                            "1.12538, 1.1236, 1.12644, 1.17422, 1.28241, 1.42318, 1.5906", \
                            "1.08009, 1.0767, 1.07668, 1.12747, 1.23013, 1.36972, 1.53582", \
                            "1.03065, 1.01886, 1.0211, 1.06901, 1.18004, 1.31804, 1.48302", \
                            "0.984786, 0.977295, 0.981794, 1.03771, 1.13302, 1.26979, 1.43935" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          values  ( \
                            "1.48258, 1.49094, 1.52856, 1.59093, 1.71072, 1.8843, 2.10958", \
                            "1.48522, 1.49237, 1.52471, 1.58466, 1.70313, 1.88078, 2.10815", \
                            "1.45739, 1.45882, 1.49589, 1.55793, 1.67992, 1.85625, 2.0768", \
                            "1.42098, 1.42593, 1.46443, 1.5301, 1.64439, 1.82512, 2.04952", \
                            "1.37555, 1.38072, 1.41284, 1.47741, 1.60083, 1.77474, 2.00332", \
                            "1.32033, 1.3277, 1.35806, 1.42043, 1.53879, 1.71996, 1.94601", \
                            "1.28086, 1.28094, 1.31567, 1.37742, 1.49798, 1.67992, 1.89849" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          values  ( \
                            "0.773685, 0.777425, 0.772464, 0.720005, 0.65472, 0.556798, 0.44484", \
                            "0.786016, 0.790262, 0.785829, 0.733381, 0.668074, 0.570042, 0.455268", \
                            "0.813912, 0.818213, 0.813824, 0.76142, 0.696036, 0.598004, 0.483945", \
                            "0.874291, 0.878537, 0.874115, 0.821656, 0.75636, 0.658328, 0.544269", \
                            "0.964821, 0.969661, 0.964733, 0.91234, 0.846956, 0.749034, 0.635228", \
                            "1.08633, 1.09056, 1.08615, 1.03368, 0.968385, 0.870353, 0.756283", \
                            "1.19677, 1.20099, 1.19546, 1.12452, 1.07881, 0.980782, 0.866679" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          values  ( \
                            "0.84392, 0.838167, 0.803044, 0.748242, 0.684475, 0.613261, 0.543609", \
                            "0.857285, 0.850564, 0.81642, 0.761629, 0.697851, 0.626637, 0.556996", \
                            "0.886017, 0.879494, 0.844327, 0.789569, 0.725802, 0.654588, 0.584936", \
                            "0.947012, 0.940797, 0.904695, 0.849893, 0.786126, 0.714912, 0.645348", \
                            "1.03694, 1.03039, 0.99528, 0.940478, 0.876733, 0.805497, 0.735856", \
                            "1.15839, 1.15088, 1.11669, 1.06192, 0.998151, 0.926948, 0.857384", \
                            "1.26873, 1.26324, 1.22716, 1.17236, 1.10859, 1.03738, 0.967725" \
                          )
                          }
                 }
          }
          bus(D)   {
                  bus_type             : Q_BUS;
                  memory_write() {
                          address      : A;
                          clocked_on   : "CLK";
                  }
                  direction            : input;
                  capacitance          : 0.0153635;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          values  ( \
                            "0.883498, 0.892199, 0.923956, 0.969518, 1.00601, 1.0167, 1.01477", \
                            "0.872993, 0.888459, 0.917609, 0.96998, 1.00477, 1.0198, 1.00984", \
                            "0.855448, 0.863676, 0.893552, 0.938443, 0.980254, 0.996171, 0.978582", \
                            "0.816618, 0.830005, 0.858121, 0.905234, 0.945956, 0.963248, 0.948024", \
                            "0.771353, 0.779416, 0.809138, 0.859881, 0.894113, 0.912692, 0.903375", \
                            "0.712096, 0.719455, 0.755238, 0.802626, 0.836528, 0.85778, 0.842347", \
                            "0.67199, 0.682253, 0.713361, 0.758043, 0.793199, 0.815518, 0.799634" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          values  ( \
                            "0.138776, 0.137582, 0.171993, 0.249663, 0.373714, 0.548009, 0.74558", \
                            "0.133855, 0.132572, 0.166972, 0.244774, 0.368665, 0.542971, 0.740564", \
                            "0.108603, 0.107591, 0.142, 0.21786, 0.343893, 0.518023, 0.715594", \
                            "0.075559, 0.074525, 0.108933, 0.186733, 0.310531, 0.484935, 0.68222", \
                            "0.025982, 0.024981, 0.059202, 0.136998, 0.263887, 0.435193, 0.632786", \
                            "0, 0, 0.002871, 0.081048, 0.204686, 0.383372, 0.57684", \
                            "0, 0, 0, 0.037411, 0.161504, 0.33561, 0.533203" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          values  ( \
                            "0.612282, 0.601414, 0.571241, 0.523149, 0.488664, 0.47652, 0.473088", \
                            "0.617331, 0.60654, 0.577511, 0.528253, 0.493746, 0.474727, 0.476751", \
                            "0.63558, 0.624822, 0.598059, 0.546381, 0.512028, 0.494406, 0.49698", \
                            "0.672507, 0.663553, 0.634227, 0.585673, 0.550792, 0.533159, 0.535194", \
                            "0.718014, 0.708268, 0.678106, 0.630135, 0.595507, 0.576741, 0.57992", \
                            "0.77836, 0.770594, 0.737363, 0.689535, 0.654786, 0.636009, 0.639199", \
                            "0.822349, 0.813065, 0.783376, 0.735471, 0.69982, 0.680537, 0.683177" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
                          values  ( \
                            "1.10362, 1.10608, 1.07018, 0.994015, 0.870144, 0.693539, 0.500676", \
                            "1.1088, 1.11112, 1.07521, 0.999031, 0.875171, 0.698566, 0.505692", \
                            "1.12691, 1.12937, 1.09348, 1.0173, 0.893431, 0.716826, 0.523963", \
                            "1.16568, 1.16812, 1.13223, 1.05606, 0.932195, 0.75559, 0.562716", \
                            "1.21039, 1.21285, 1.17695, 1.10078, 0.97691, 0.800305, 0.607431", \
                            "1.26722, 1.27212, 1.23661, 1.16005, 1.03618, 0.859584, 0.66671", \
                            "1.3147, 1.31716, 1.28127, 1.20509, 1.08122, 0.904618, 0.711755" \
                          )
                          }
                 }
        }
          cell_leakage_power : 9.738234e-05;
}
}
