/*
 * 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__tt_025C_5v00) {
        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         : 25;
        nom_voltage             : 5.0;
        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         : 1.547;
        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, 5.0);
         voltage_map (VSS, 0.00);
         operating_conditions(tt_5p0v_25C) {
                process       : 1;
                temperature   : 25;
                voltage       : 5.0;
                tree_type     : balanced_tree;
         }

         default_operating_conditions : tt_5p0v_25C;
         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.119;
                  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.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
			  index_2 ("0.01, 0.02994, 0.09995, 0.2336, 0.4419, 0.7342, 1.119");
                          values  ( \
                            "4.85988, 4.88364, 4.93692, 5.03712, 5.1858, 5.38896, 5.65848", \
                            "4.86036, 4.88316, 4.93812, 5.03664, 5.18496, 5.385, 5.65884", \
                            "4.8678, 4.88364, 4.94472, 5.04516, 5.18916, 5.39772, 5.66628", \
                            "4.87644, 4.89204, 4.95228, 5.05752, 5.20116, 5.40696, 5.67636", \
                            "4.8828, 4.89324, 4.95084, 5.05776, 5.20692, 5.40528, 5.6772", \
                            "4.8876, 4.90404, 4.96836, 5.0646, 5.214, 5.41656, 5.68404", \
                            "4.8762, 4.8972, 4.94808, 5.04984, 5.20044, 5.4024, 5.67492" \
                          )
                          }
                          rise_transition(q_slew_template) {
                          index_1 ("0.01, 0.02994, 0.09995, 0.2336, 0.4419, 0.7342, 1.119");
                          values  ( \
  	                     "0.167832, 0.193392, 0.29304, 0.473508, 0.762972, 1.18465, 1.7352" \
                          )

                          }
                          cell_fall(q_delay_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.01, 0.02994, 0.09995, 0.2336, 0.4419, 0.7342, 1.119");
                          values  ( \
                            "5.00796, 5.02872, 5.08488, 5.17464, 5.29512, 5.4462, 5.64108", \
                            "5.0064, 5.02896, 5.088, 5.17536, 5.29692, 5.44356, 5.64144", \
                            "5.0148, 5.02908, 5.09124, 5.18256, 5.29992, 5.45676, 5.64888", \
                            "5.0232, 5.03964, 5.09904, 5.19468, 5.31168, 5.46408, 5.65896", \
                            "5.02908, 5.03976, 5.09844, 5.19672, 5.31732, 5.46348, 5.65932", \
                            "5.03376, 5.05176, 5.11392, 5.2026, 5.32272, 5.47524, 5.66964", \
                            "5.02176, 5.04396, 5.0964, 5.18844, 5.31108, 5.45964, 5.65872" \
                          )
                          }
                          fall_transition(q_slew_template) {
                          index_1 ("0.01, 0.02994, 0.09995, 0.2336, 0.4419, 0.7342, 1.119");
                          values  ( \
                            "0.174396, 0.195348, 0.264276, 0.376332, 0.546216, 0.790704, 1.10563" \
                          )
                          }
                  }
          }
          pin(CLK)   {
                  direction            : input;
                  capacitance          : 0.297584;
                  clock                : true;
                  max_transition       : 1.547;
                  min_pulse_width_high : 2.37687;
                  min_pulse_width_low  : 2.25216;
                  min_period           : 6.593715;

/* 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.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                values  ("1017.1, 1017.1, 1017.1, 1017.1, 1017.1, 1017.1, 1017.1");
              }
              fall_power(power_template) {
                index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                values  ("1017.1, 1017.1, 1017.1, 1017.1, 1017.1, 1017.1, 1017.1");
              }
             }
/* DISABLED POWER */
             internal_power() {
              when : "CEN";
              rise_power(power_template) {
                index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                values  ("0.0006242, 0.0006242, 0.0006242, 0.0006242, 0.0006242, 0.0006242, 0.0006242");
              }
              fall_power(power_template) {
                index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                values  ("0.0006242, 0.0006242, 0.0006242, 0.0006242, 0.0006242, 0.0006242, 0.0006242");
              }
             }
/* READ POWER */
             internal_power() {
             when : "!CEN & GWEN";
             rise_power(power_template) {
                index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                values  ("908.1, 908.1, 908.1, 908.1, 908.1, 908.1, 908.1");
              }
              fall_power(power_template) {
                index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                values  ("908.1, 908.1, 908.1, 908.1, 908.1, 908.1, 908.1");
              }
             }
          }

          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.0181905;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "0.435435, 0.430452, 0.42317, 0.429946, 0.451946, 0.489346, 0.522467", \
                            "0.433983, 0.428879, 0.421894, 0.42889, 0.455026, 0.487542, 0.520652", \
                            "0.432025, 0.428373, 0.421091, 0.427933, 0.448745, 0.474342, 0.506847", \
                            "0.433191, 0.428076, 0.420937, 0.427757, 0.453244, 0.474155, 0.485342", \
                            "0.432817, 0.427757, 0.420563, 0.427405, 0.448217, 0.473803, 0.492921", \
                            "0.43241, 0.42702, 0.420057, 0.427108, 0.44792, 0.473517, 0.487366", \
                            "0.432267, 0.427361, 0.420101, 0.426943, 0.447744, 0.473011, 0.48829" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "0.405911, 0.40799, 0.417956, 0.444312, 0.494483, 0.558052, 0.62766", \
                            "0.404866, 0.406868, 0.416911, 0.442805, 0.493438, 0.557007, 0.626516", \
                            "0.40381, 0.405911, 0.415877, 0.442057, 0.493955, 0.555984, 0.625482", \
                            "0.403447, 0.405768, 0.415723, 0.44187, 0.492822, 0.554422, 0.625306", \
                            "0.403238, 0.40546, 0.415338, 0.442299, 0.493416, 0.555445, 0.624954", \
                            "0.403161, 0.405086, 0.415052, 0.441892, 0.493141, 0.55517, 0.625845", \
                            "0.402754, 0.405031, 0.414887, 0.441045, 0.49137, 0.553608, 0.624767" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "1.10864, 1.11362, 1.1209, 1.11412, 1.09325, 1.06765, 1.04853", \
                            "1.11382, 1.11892, 1.12591, 1.1189, 1.09277, 1.07243, 1.05332", \
                            "1.12659, 1.13024, 1.13752, 1.13068, 1.10987, 1.08427, 1.06469", \
                            "1.15364, 1.15876, 1.1659, 1.15908, 1.13359, 1.11268, 1.10149", \
                            "1.19354, 1.19859, 1.2058, 1.19896, 1.17814, 1.15256, 1.13344", \
                            "1.23049, 1.23588, 1.24285, 1.2358, 1.21498, 1.18939, 1.17554", \
                            "1.25894, 1.26383, 1.27105, 1.26425, 1.24345, 1.21818, 1.204" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "1.13815, 1.13608, 1.12611, 1.09976, 1.04959, 0.986007, 0.916399", \
                            "1.14293, 1.14092, 1.13089, 1.10499, 1.05436, 0.990792, 0.921283", \
                            "1.1548, 1.1527, 1.14274, 1.11656, 1.06466, 1.00263, 0.93313", \
                            "1.18339, 1.18107, 1.1711, 1.14497, 1.09402, 1.03242, 0.961521", \
                            "1.22312, 1.2209, 1.21101, 1.18405, 1.13295, 1.07091, 1.0014", \
                            "1.25974, 1.25782, 1.24785, 1.22101, 1.16976, 1.10773, 1.03706", \
                            "1.28843, 1.28612, 1.27633, 1.25016, 1.19983, 1.1376, 1.06643" \
                          )
                          }
                 }
          }
          pin(GWEN)   {
                  direction            : input;
                  capacitance          : 0.0494974;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "0.590128, 0.59378, 0.604769, 0.633457, 0.678216, 0.734668, 0.78925", \
                            "0.5885, 0.592119, 0.603196, 0.631752, 0.676621, 0.733359, 0.787578", \
                            "0.575894, 0.57948, 0.590898, 0.619124, 0.663982, 0.721028, 0.776017", \
                            "0.549835, 0.553575, 0.565554, 0.593131, 0.638077, 0.695057, 0.750057", \
                            "0.505428, 0.510037, 0.522027, 0.549615, 0.594473, 0.65153, 0.705496", \
                            "0.466697, 0.471328, 0.483043, 0.510884, 0.555764, 0.612865, 0.667799", \
                            "0.430969, 0.434577, 0.446578, 0.474155, 0.519013, 0.57607, 0.631059" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "0.627077, 0.631268, 0.649418, 0.68915, 0.757097, 0.846967, 0.952633", \
                            "0.625977, 0.629508, 0.647746, 0.686323, 0.755425, 0.844305, 0.951016", \
                            "0.612876, 0.616946, 0.635184, 0.675389, 0.74107, 0.832612, 0.937838", \
                            "0.586817, 0.591052, 0.609191, 0.649352, 0.714945, 0.805079, 0.91201", \
                            "0.543312, 0.547459, 0.565664, 0.606419, 0.67155, 0.762223, 0.868483", \
                            "0.505109, 0.509091, 0.526944, 0.567545, 0.632841, 0.724372, 0.829609", \
                            "0.468732, 0.471955, 0.490215, 0.529903, 0.597894, 0.687643, 0.792077" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "0.865172, 0.864875, 0.852423, 0.825352, 0.796059, 0.770297, 0.751883", \
                            "0.8668, 0.865513, 0.854161, 0.827123, 0.797764, 0.772068, 0.753709", \
                            "0.866712, 0.866646, 0.854117, 0.827475, 0.797852, 0.77209, 0.753236", \
                            "0.873268, 0.87208, 0.860376, 0.833998, 0.804364, 0.778591, 0.75977", \
                            "0.88154, 0.880968, 0.868483, 0.842105, 0.812482, 0.78672, 0.768361", \
                            "0.884092, 0.882651, 0.871189, 0.844591, 0.814968, 0.789195, 0.770363", \
                            "0.877558, 0.876733, 0.864666, 0.838288, 0.808665, 0.782903, 0.76406" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "0.492481, 0.489137, 0.470261, 0.430452, 0.36223, 0.280379, 0.175767", \
                            "0.497277, 0.490666, 0.471889, 0.430815, 0.363968, 0.285637, 0.180395", \
                            "0.495286, 0.490644, 0.472043, 0.430034, 0.36663, 0.282403, 0.18023", \
                            "0.500863, 0.497387, 0.478368, 0.436898, 0.371745, 0.289795, 0.185098", \
                            "0.508915, 0.505384, 0.486728, 0.444543, 0.381282, 0.3003, 0.192928", \
                            "0.518793, 0.515042, 0.496606, 0.456687, 0.38863, 0.299574, 0.19972", \
                            "0.575157, 0.57046, 0.552024, 0.512534, 0.44253, 0.35486, 0.256109" \
                          )
                          }
                 }
          }
          bus(WEN)   {
                  bus_type             : Q_BUS;
                  direction            : input;
                  capacitance          : 0.00784667;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          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.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "0.239133, 0.242915, 0.261331, 0.30107, 0.369138, 0.450967, 0.556127", \
                            "0.233786, 0.241551, 0.258743, 0.299673, 0.366476, 0.445104, 0.552079", \
                            "0.235087, 0.240271, 0.258361, 0.299739, 0.363561, 0.447436, 0.549032", \
                            "0.229873, 0.233802, 0.252209, 0.293524, 0.358611, 0.441232, 0.544951", \
                            "0.221571, 0.225865, 0.24399, 0.285582, 0.349217, 0.430089, 0.538087", \
                            "0.215993, 0.223124, 0.241095, 0.281985, 0.346291, 0.430584, 0.536217", \
                            "0.224579, 0.229606, 0.247484, 0.287694, 0.354651, 0.437074, 0.540188" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "0.865172, 0.864875, 0.8525, 0.826661, 0.796059, 0.770297, 0.751883", \
                            "0.8668, 0.865513, 0.854238, 0.82841, 0.797764, 0.772068, 0.753709", \
                            "0.866712, 0.866646, 0.854249, 0.828421, 0.797852, 0.77209, 0.753236", \
                            "0.873268, 0.87208, 0.860772, 0.834944, 0.804364, 0.778591, 0.75977", \
                            "0.88154, 0.880968, 0.868868, 0.84304, 0.812482, 0.78672, 0.768361", \
                            "0.884092, 0.882651, 0.871365, 0.845537, 0.814968, 0.789195, 0.770363", \
                            "0.877558, 0.876733, 0.864864, 0.839036, 0.808665, 0.782903, 0.76406" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "0.493097, 0.489137, 0.470261, 0.430452, 0.362758, 0.280665, 0.175767", \
                            "0.497277, 0.490666, 0.472109, 0.430815, 0.364045, 0.2871, 0.180395", \
                            "0.495286, 0.490644, 0.472043, 0.431112, 0.36663, 0.282645, 0.18023", \
                            "0.5016, 0.497387, 0.478368, 0.439065, 0.371745, 0.291082, 0.185098", \
                            "0.509718, 0.505384, 0.486728, 0.444961, 0.381282, 0.30173, 0.192928", \
                            "0.515229, 0.507749, 0.489027, 0.447799, 0.383757, 0.299761, 0.194525", \
                            "0.505681, 0.501523, 0.482768, 0.442244, 0.375738, 0.293249, 0.189864" \
                          )
                          }
                 }
          }
          bus(A)   {
                  bus_type             : A_BUS;
                  direction            : input;
                  capacitance          : 0.0401181;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "0.633182, 0.628375, 0.624316, 0.633963, 0.660605, 0.701635, 0.736978", \
                            "0.630388, 0.624635, 0.622204, 0.631807, 0.66506, 0.699446, 0.735911", \
                            "0.630751, 0.625548, 0.619817, 0.630586, 0.661914, 0.700854, 0.734415", \
                            "0.623612, 0.619795, 0.616473, 0.626637, 0.657767, 0.694683, 0.728794", \
                            "0.615637, 0.609895, 0.606848, 0.616814, 0.645645, 0.685564, 0.719367", \
                            "0.611237, 0.608025, 0.605044, 0.614768, 0.644391, 0.682011, 0.716716", \
                            "0.619025, 0.614636, 0.610588, 0.619289, 0.646767, 0.68728, 0.721941" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "0.947419, 0.950653, 0.966405, 0.991749, 1.04409, 1.11675, 1.20299", \
                            "0.946638, 0.950158, 0.962434, 0.990418, 1.04356, 1.11592, 1.20459", \
                            "0.946946, 0.948772, 0.962907, 0.989362, 1.04272, 1.11519, 1.20261", \
                            "0.942854, 0.94545, 0.957836, 0.982674, 1.03568, 1.10843, 1.19699", \
                            "0.933097, 0.935, 0.947738, 0.974578, 1.02901, 1.09875, 1.18613", \
                            "0.928246, 0.933878, 0.945208, 0.971619, 1.02682, 1.09669, 1.18546", \
                            "0.933251, 0.938531, 0.949366, 0.976382, 1.03014, 1.10251, 1.19197" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "0.536239, 0.539968, 0.543004, 0.541013, 0.540892, 0.540089, 0.53878", \
                            "0.540199, 0.543884, 0.54692, 0.54494, 0.544808, 0.544005, 0.542696", \
                            "0.552805, 0.556699, 0.559746, 0.557777, 0.557645, 0.556831, 0.555533", \
                            "0.575949, 0.579931, 0.582967, 0.580987, 0.580855, 0.580052, 0.578743", \
                            "0.616264, 0.620136, 0.623227, 0.621247, 0.621115, 0.620312, 0.619003", \
                            "0.659648, 0.663575, 0.666589, 0.664609, 0.664499, 0.663696, 0.662387", \
                            "0.695156, 0.698852, 0.701877, 0.699897, 0.699765, 0.698962, 0.697664" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "0.548955, 0.546414, 0.533819, 0.517385, 0.512512, 0.51788, 0.527406", \
                            "0.552871, 0.55033, 0.537746, 0.521312, 0.516428, 0.521796, 0.531322", \
                            "0.565675, 0.563255, 0.550561, 0.534149, 0.529254, 0.534622, 0.544148", \
                            "0.588984, 0.586278, 0.573793, 0.557348, 0.552475, 0.557832, 0.567369", \
                            "0.629156, 0.626736, 0.614042, 0.597608, 0.592735, 0.598092, 0.607618", \
                            "0.672507, 0.6699, 0.657437, 0.641003, 0.636119, 0.641476, 0.651013", \
                            "0.707762, 0.705166, 0.692692, 0.676269, 0.671385, 0.676742, 0.686279" \
                          )
                          }
                 }
          }
          bus(D)   {
                  bus_type             : Q_BUS;
                  memory_write() {
                          address      : A;
                          clocked_on   : "CLK";
                  }
                  direction            : input;
                  capacitance          : 0.0167494;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "0.457721, 0.460196, 0.473352, 0.483736, 0.479457, 0.461901, 0.424094", \
                            "0.458084, 0.462143, 0.472208, 0.481569, 0.478203, 0.459888, 0.422455", \
                            "0.454696, 0.45903, 0.46937, 0.478753, 0.477092, 0.458535, 0.421982", \
                            "0.449691, 0.453607, 0.465564, 0.473803, 0.472494, 0.454047, 0.415041", \
                            "0.442717, 0.445467, 0.455213, 0.46596, 0.463078, 0.445423, 0.405108", \
                            "0.438735, 0.443091, 0.453464, 0.462099, 0.459437, 0.441045, 0.403766", \
                            "0.44231, 0.446292, 0.457589, 0.469546, 0.465025, 0.445753, 0.409013" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "0.0939961, 0.0932382, 0.111436, 0.159321, 0.239146, 0.340824, 0.471493", \
                            "0.0935902, 0.0919358, 0.110068, 0.159887, 0.238268, 0.339548, 0.469425", \
                            "0.0926453, 0.0904332, 0.108948, 0.156954, 0.236973, 0.338602, 0.468963", \
                            "0.0869231, 0.0855272, 0.103531, 0.153451, 0.231745, 0.333014, 0.463375", \
                            "0.0779636, 0.0763884, 0.0942667, 0.144573, 0.222289, 0.323906, 0.453849", \
                            "0.0752213, 0.0736769, 0.0919039, 0.139699, 0.219618, 0.321266, 0.45155", \
                            "0.0798182, 0.0789547, 0.0968704, 0.147051, 0.224785, 0.326381, 0.456467" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "0.484077, 0.483252, 0.470877, 0.460042, 0.463265, 0.482053, 0.518716", \
                            "0.486728, 0.482658, 0.473495, 0.463001, 0.466499, 0.485023, 0.521378", \
                            "0.489302, 0.487278, 0.474826, 0.46497, 0.467192, 0.486541, 0.522731", \
                            "0.494417, 0.492415, 0.479963, 0.469854, 0.471911, 0.491535, 0.530442", \
                            "0.503976, 0.500764, 0.489159, 0.477466, 0.482317, 0.500225, 0.538175", \
                            "0.505912, 0.501644, 0.491799, 0.481679, 0.483912, 0.502898, 0.53944", \
                            "0.500533, 0.498982, 0.486431, 0.475772, 0.478544, 0.49764, 0.534072" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "0.674146, 0.675972, 0.657712, 0.607981, 0.529793, 0.428318, 0.299684", \
                            "0.676478, 0.678084, 0.660044, 0.610313, 0.532125, 0.43065, 0.302159", \
                            "0.678172, 0.679998, 0.661738, 0.611996, 0.533808, 0.432344, 0.303842", \
                            "0.683078, 0.684706, 0.666611, 0.61688, 0.538692, 0.437217, 0.308726", \
                            "0.692153, 0.693792, 0.675708, 0.625977, 0.547789, 0.446325, 0.317823", \
                            "0.69476, 0.696619, 0.678348, 0.628628, 0.55044, 0.448976, 0.320474", \
                            "0.689414, 0.691075, 0.673244, 0.62326, 0.545072, 0.443597, 0.315106" \
                          )
                          }
                 }
        }
          cell_leakage_power : 0.0006242;
}
}
