/*
 * 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__ss_125C_4v50) {
        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             : 4.5;
        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.775;
        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, 4.5);
         voltage_map (VSS, 0.00);
         operating_conditions(ss_4p5v_125C) {
                process       : 1;
                temperature   : 125;
                voltage       : 4.5;
                tree_type     : balanced_tree;
         }

         default_operating_conditions : ss_4p5v_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.202;
                  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.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
			  index_2 ("0.01, 0.03143, 0.1067, 0.2504, 0.4742, 0.7883, 1.202");
                          values  ( \
                            "8.79552, 8.82528, 8.93916, 9.12864, 9.39108, 9.74928, 10.22232", \
                            "8.79576, 8.82804, 8.9484, 9.11616, 9.40284, 9.74808, 10.21992", \
                            "8.81352, 8.84964, 8.95548, 9.13404, 9.40776, 9.76152, 10.24476", \
                            "8.82288, 8.85804, 8.96964, 9.14808, 9.41256, 9.79548, 10.27008", \
                            "8.8644, 8.89416, 9.00264, 9.18552, 9.46356, 9.81, 10.28688", \
                            "8.86524, 8.89308, 9.01512, 9.1956, 9.4626, 9.82092, 10.30032", \
                            "8.87448, 8.90328, 9, 9.20556, 9.47172, 9.8274, 10.29984" \
                          )
                          }
                          rise_transition(q_slew_template) {
                          index_1 ("0.01, 0.03143, 0.1067, 0.2504, 0.4742, 0.7883, 1.202");
                          values  ( \
  	                     "0.29706, 0.347748, 0.52872, 0.852528, 1.37688, 2.1324, 3.11712" \
                          )

                          }
                          cell_fall(q_delay_template) {
                          index_1 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          index_2 ("0.01, 0.03143, 0.1067, 0.2504, 0.4742, 0.7883, 1.202");
                          values  ( \
                            "9.06084, 9.09576, 9.207, 9.36852, 9.585, 9.84624, 10.17576", \
                            "9.0594, 9.09252, 9.2148, 9.3624, 9.59736, 9.8412, 10.1718", \
                            "9.0774, 9.11568, 9.22152, 9.37632, 9.59952, 9.85176, 10.19916", \
                            "9.08772, 9.12408, 9.23736, 9.39264, 9.60144, 9.88764, 10.22244", \
                            "9.12792, 9.16344, 9.26784, 9.42672, 9.65688, 9.90396, 10.24236", \
                            "9.12888, 9.15588, 9.27708, 9.43968, 9.6546, 9.91476, 10.25124", \
                            "9.1422, 9.17088, 9.2646, 9.44904, 9.66216, 9.92124, 10.25556" \
                          )
                          }
                          fall_transition(q_slew_template) {
                          index_1 ("0.01, 0.03143, 0.1067, 0.2504, 0.4742, 0.7883, 1.202");
                          values  ( \
                            "0.303624, 0.345108, 0.461832, 0.669348, 0.974172, 1.39596, 1.95192" \
                          )
                          }
                  }
          }
          pin(CLK)   {
                  direction            : input;
                  capacitance          : 0.31848;
                  clock                : true;
                  max_transition       : 2.775;
                  min_pulse_width_high : 4.387335;
                  min_pulse_width_low  : 5.72349;
                  min_period           : 11.89014;

/* 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.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                values  ("830.363, 830.363, 830.363, 830.363, 830.363, 830.363, 830.363");
              }
              fall_power(power_template) {
                index_1 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                values  ("830.363, 830.363, 830.363, 830.363, 830.363, 830.363, 830.363");
              }
             }
/* DISABLED POWER */
             internal_power() {
              when : "CEN";
              rise_power(power_template) {
                index_1 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                values  ("0.00061677, 0.00061677, 0.00061677, 0.00061677, 0.00061677, 0.00061677, 0.00061677");
              }
              fall_power(power_template) {
                index_1 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                values  ("0.00061677, 0.00061677, 0.00061677, 0.00061677, 0.00061677, 0.00061677, 0.00061677");
              }
             }
/* READ POWER */
             internal_power() {
             when : "!CEN & GWEN";
             rise_power(power_template) {
                index_1 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                values  ("746.438, 746.438, 746.438, 746.438, 746.438, 746.438, 746.438");
              }
              fall_power(power_template) {
                index_1 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                values  ("746.438, 746.438, 746.438, 746.438, 746.438, 746.438, 746.438");
              }
             }
          }

          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.0197865;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          index_2 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          values  ( \
                            "0.660583, 0.65615, 0.648153, 0.6721, 0.740828, 0.814022, 0.860277", \
                            "0.654709, 0.647361, 0.640772, 0.665445, 0.731742, 0.80817, 0.85855", \
                            "0.647383, 0.641894, 0.632379, 0.653708, 0.708587, 0.785807, 0.825957", \
                            "0.647394, 0.640772, 0.632302, 0.65406, 0.708345, 0.757526, 0.782628", \
                            "0.645766, 0.634425, 0.63118, 0.653147, 0.707751, 0.750761, 0.771155", \
                            "0.64526, 0.640431, 0.630256, 0.652773, 0.707091, 0.745778, 0.779889", \
                            "0.645579, 0.638583, 0.629959, 0.651904, 0.706475, 0.749485, 0.779306" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          index_2 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          values  ( \
                            "0.586377, 0.591855, 0.616462, 0.675147, 0.779867, 0.907522, 1.04269", \
                            "0.582659, 0.586949, 0.612447, 0.670846, 0.775896, 0.896984, 1.0327", \
                            "0.580085, 0.585266, 0.609103, 0.668558, 0.775269, 0.895433, 1.03631", \
                            "0.579348, 0.583979, 0.608729, 0.667546, 0.772178, 0.90068, 1.02904", \
                            "0.578215, 0.583363, 0.608487, 0.66693, 0.771595, 0.899767, 1.02845", \
                            "0.577885, 0.582021, 0.607486, 0.666259, 0.770979, 0.899184, 1.02775", \
                            "0.577093, 0.582098, 0.60621, 0.665665, 0.769153, 0.894773, 1.02714" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          index_2 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          values  ( \
                            "1.85185, 1.85746, 1.86681, 1.84525, 1.78805, 1.74691, 1.71435", \
                            "1.86351, 1.86857, 1.87858, 1.85658, 1.80191, 1.75593, 1.72007", \
                            "1.89387, 1.89937, 1.90883, 1.88749, 1.83282, 1.78585, 1.75912", \
                            "1.94689, 1.95349, 1.96196, 1.94029, 1.88595, 1.83678, 1.81621", \
                            "2.02598, 2.03731, 2.04061, 2.01861, 1.96405, 1.92104, 1.90058", \
                            "2.11618, 2.12102, 2.13125, 2.1087, 2.05436, 2.01575, 1.98154", \
                            "2.16843, 2.17536, 2.18405, 2.16205, 2.10749, 2.06448, 2.03467" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          index_2 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          values  ( \
                            "1.9195, 1.914, 1.88936, 1.83073, 1.72601, 1.5983, 1.46311", \
                            "1.93127, 1.92698, 1.90146, 1.84305, 1.738, 1.617, 1.48126", \
                            "1.96119, 1.95591, 1.93215, 1.87264, 1.76594, 1.64582, 1.50491", \
                            "2.01498, 2.01036, 1.98561, 1.92676, 1.82215, 1.69367, 1.5653", \
                            "2.09352, 2.08846, 2.06327, 2.00486, 1.90014, 1.77199, 1.64329", \
                            "2.18361, 2.17943, 2.15402, 2.09517, 1.99045, 1.8623, 1.73371", \
                            "2.23685, 2.2319, 2.20781, 2.1483, 2.04479, 1.91917, 1.78684" \
                          )
                          }
                 }
          }
          pin(GWEN)   {
                  direction            : input;
                  capacitance          : 0.0513452;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          index_2 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          values  ( \
                            "0.934087, 0.940038, 0.962379, 1.01904, 1.10432, 1.21022, 1.30911", \
                            "0.928609, 0.934736, 0.958287, 1.01445, 1.09981, 1.20771, 1.30581", \
                            "0.908919, 0.915002, 0.939015, 0.993773, 1.07837, 1.18708, 1.28546", \
                            "0.852467, 0.858572, 0.88264, 0.937563, 1.02287, 1.13036, 1.22867", \
                            "0.770825, 0.776996, 0.799271, 0.855866, 0.94138, 1.04715, 1.14789", \
                            "0.692758, 0.697829, 0.721468, 0.777876, 0.863203, 0.970453, 1.0691", \
                            "0.633424, 0.639716, 0.662563, 0.718421, 0.803836, 0.909711, 1.01" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          index_2 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          values  ( \
                            "1.01252, 1.02146, 1.05573, 1.13241, 1.25855, 1.4223, 1.61326", \
                            "1.00717, 1.01715, 1.05167, 1.12812, 1.25407, 1.42076, 1.60908", \
                            "0.986535, 0.997029, 1.03043, 1.10708, 1.23296, 1.40019, 1.58818", \
                            "0.931106, 0.940621, 0.973995, 1.0508, 1.17518, 1.34431, 1.53175", \
                            "0.849431, 0.859034, 0.891825, 0.969639, 1.09559, 1.25707, 1.45024", \
                            "0.770473, 0.780505, 0.814825, 0.891011, 1.01747, 1.17851, 1.37203", \
                            "0.711172, 0.721556, 0.754754, 0.832183, 0.95788, 1.12242, 1.31274" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          index_2 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          values  ( \
                            "1.42351, 1.41669, 1.3937, 1.34431, 1.28161, 1.23224, 1.19436", \
                            "1.42406, 1.41768, 1.39447, 1.34486, 1.28238, 1.2286, 1.19435", \
                            "1.43011, 1.42329, 1.39975, 1.35003, 1.28821, 1.23449, 1.20012", \
                            "1.44716, 1.4399, 1.41702, 1.36752, 1.30493, 1.25055, 1.21637", \
                            "1.46245, 1.45563, 1.43264, 1.38303, 1.32055, 1.27116, 1.23276", \
                            "1.48049, 1.47389, 1.45068, 1.40118, 1.33859, 1.28425, 1.25045", \
                            "1.47708, 1.47026, 1.44793, 1.397, 1.33507, 1.28579, 1.24703" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          index_2 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          values  ( \
                            "0.741796, 0.730719, 0.695299, 0.622479, 0.496375, 0.341715, 0.159284", \
                            "0.742324, 0.734822, 0.698071, 0.619036, 0.497233, 0.339614, 0.156519", \
                            "0.747351, 0.738199, 0.704385, 0.625273, 0.504053, 0.347193, 0.165893", \
                            "0.764214, 0.756173, 0.718685, 0.641399, 0.52206, 0.362175, 0.17759", \
                            "0.780637, 0.771298, 0.737473, 0.659956, 0.535161, 0.38346, 0.193576", \
                            "0.815705, 0.806168, 0.771045, 0.694705, 0.564245, 0.408034, 0.224549", \
                            "0.911449, 0.900537, 0.867075, 0.790504, 0.660264, 0.500621, 0.320353" \
                          )
                          }
                 }
          }
          bus(WEN)   {
                  bus_type             : Q_BUS;
                  direction            : input;
                  capacitance          : 0.00826446;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          index_2 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          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.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          index_2 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          values  ( \
                            "0.300872, 0.312235, 0.347061, 0.420871, 0.547349, 0.701316, 0.886336", \
                            "0.300883, 0.307054, 0.344476, 0.422851, 0.546634, 0.703703, 0.887722", \
                            "0.295526, 0.302368, 0.336831, 0.416405, 0.539231, 0.696344, 0.878757", \
                            "0.280203, 0.2871, 0.325028, 0.401643, 0.522379, 0.682319, 0.867163", \
                            "0.260264, 0.267596, 0.301631, 0.379852, 0.505637, 0.657151, 0.84766", \
                            "0.244158, 0.249509, 0.2893, 0.364254, 0.488004, 0.638352, 0.830412", \
                            "0.248855, 0.256248, 0.290521, 0.368951, 0.493691, 0.650804, 0.836561" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          index_2 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          values  ( \
                            "1.42351, 1.41889, 1.39491, 1.34431, 1.28172, 1.23224, 1.19436", \
                            "1.42406, 1.41955, 1.39557, 1.34486, 1.28238, 1.23069, 1.19488", \
                            "1.43011, 1.42538, 1.4014, 1.35003, 1.28821, 1.23652, 1.2007", \
                            "1.44716, 1.44155, 1.41757, 1.36752, 1.30493, 1.25265, 1.21683", \
                            "1.46245, 1.45772, 1.43374, 1.38303, 1.32055, 1.27116, 1.23306", \
                            "1.48049, 1.47587, 1.45189, 1.40118, 1.3387, 1.287, 1.25114", \
                            "1.47708, 1.47235, 1.44837, 1.397, 1.33518, 1.28579, 1.24766" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          index_2 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          values  ( \
                            "0.741796, 0.731797, 0.695299, 0.622479, 0.496375, 0.341715, 0.159284", \
                            "0.743886, 0.734822, 0.698071, 0.620862, 0.497233, 0.339614, 0.156519", \
                            "0.748374, 0.739266, 0.704935, 0.627066, 0.504053, 0.347193, 0.165893", \
                            "0.765127, 0.75724, 0.719455, 0.643082, 0.52206, 0.362175, 0.17759", \
                            "0.780637, 0.771298, 0.739068, 0.659956, 0.535161, 0.38346, 0.193576", \
                            "0.799139, 0.791076, 0.75196, 0.678128, 0.554235, 0.403249, 0.211674", \
                            "0.795476, 0.788073, 0.753874, 0.67485, 0.550506, 0.393734, 0.208197" \
                          )
                          }
                 }
          }
          bus(A)   {
                  bus_type             : A_BUS;
                  direction            : input;
                  capacitance          : 0.0440049;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          index_2 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          values  ( \
                            "1.04046, 1.03751, 1.03378, 1.06152, 1.13113, 1.20736, 1.2705", \
                            "1.04441, 1.03987, 1.03582, 1.05977, 1.12969, 1.20781, 1.27204", \
                            "1.03879, 1.03294, 1.03222, 1.05268, 1.1249, 1.20182, 1.26179", \
                            "1.01838, 1.01618, 1.0124, 1.03745, 1.10758, 1.18927, 1.24929", \
                            "0.999207, 0.996259, 0.991023, 1.0172, 1.08665, 1.16609, 1.22944", \
                            "0.982388, 0.979814, 0.978406, 1.00089, 1.07151, 1.15312, 1.21178", \
                            "0.995368, 0.985391, 0.981607, 1.00482, 1.07599, 1.15639, 1.2209" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          index_2 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          values  ( \
                            "1.52834, 1.5323, 1.56409, 1.6247, 1.73217, 1.87077, 2.02411", \
                            "1.52988, 1.53329, 1.56145, 1.62283, 1.73074, 1.87022, 2.03126", \
                            "1.51899, 1.52383, 1.55914, 1.61557, 1.72623, 1.86065, 2.02125", \
                            "1.50656, 1.51129, 1.53714, 1.59995, 1.70368, 1.84932, 2.01014", \
                            "1.48709, 1.49138, 1.51745, 1.57883, 1.68751, 1.83172, 1.98748", \
                            "1.47213, 1.47499, 1.50304, 1.56684, 1.67684, 1.8139, 1.97362", \
                            "1.47807, 1.47763, 1.50986, 1.57344, 1.683, 1.82127, 1.97758" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          index_2 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          values  ( \
                            "0.818444, 0.825088, 0.827739, 0.810689, 0.802087, 0.795564, 0.790614", \
                            "0.827585, 0.834603, 0.836858, 0.819753, 0.811151, 0.804254, 0.799678", \
                            "0.852049, 0.859056, 0.861289, 0.844217, 0.835615, 0.828707, 0.824142", \
                            "0.898425, 0.905443, 0.907643, 0.890593, 0.881991, 0.875083, 0.870518", \
                            "0.983037, 0.990638, 0.992882, 0.975788, 0.967186, 0.960674, 0.955702", \
                            "1.071, 1.07734, 1.08006, 1.063, 1.05438, 1.04749, 1.04291", \
                            "1.1491, 1.15643, 1.15864, 1.14159, 1.13298, 1.12648, 1.12152" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          index_2 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          values  ( \
                            "0.85261, 0.846736, 0.818664, 0.774444, 0.746889, 0.741972, 0.748638", \
                            "0.862048, 0.855107, 0.827728, 0.783508, 0.755942, 0.751025, 0.757713", \
                            "0.885951, 0.87956, 0.852192, 0.807983, 0.780406, 0.775489, 0.782166", \
                            "0.932338, 0.926673, 0.898568, 0.854348, 0.826782, 0.821876, 0.828553", \
                            "1.01752, 1.01253, 0.983774, 0.939543, 0.911988, 0.907071, 0.913737", \
                            "1.10472, 1.09835, 1.07097, 1.02675, 0.999185, 0.994257, 1.00096", \
                            "1.18364, 1.17833, 1.14956, 1.10535, 1.07778, 1.07285, 1.07954" \
                          )
                          }
                 }
          }
          bus(D)   {
                  bus_type             : Q_BUS;
                  memory_write() {
                          address      : A;
                          clocked_on   : "CLK";
                  }
                  direction            : input;
                  capacitance          : 0.0175901;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          index_2 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          values  ( \
                            "0.724207, 0.730631, 0.75801, 0.78529, 0.783992, 0.759462, 0.704737", \
                            "0.725483, 0.731819, 0.754809, 0.780989, 0.782705, 0.759616, 0.703604", \
                            "0.720599, 0.726528, 0.746988, 0.777007, 0.779262, 0.75504, 0.695255", \
                            "0.703131, 0.713526, 0.733744, 0.761024, 0.762069, 0.738617, 0.681428", \
                            "0.681505, 0.694353, 0.715704, 0.742797, 0.738749, 0.719301, 0.66231", \
                            "0.668921, 0.677237, 0.698203, 0.726264, 0.72578, 0.702031, 0.642774", \
                            "0.67529, 0.68156, 0.70345, 0.730455, 0.731522, 0.704869, 0.650727" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          index_2 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          values  ( \
                            "0.048686, 0.05082, 0.0859892, 0.172908, 0.315535, 0.496672, 0.718707", \
                            "0.048939, 0.048763, 0.0830511, 0.169624, 0.314974, 0.496199, 0.71764", \
                            "0.043956, 0.046178, 0.0768328, 0.164595, 0.308682, 0.489346, 0.711304", \
                            "0.025157, 0.028996, 0.0610929, 0.146908, 0.29315, 0.47443, 0.696322", \
                            "0.008085, 0.00814, 0.041679, 0.13053, 0.271464, 0.453651, 0.675829", \
                            "0, 0, 0.027401, 0.112028, 0.255521, 0.438493, 0.660198", \
                            "0, 0, 0.031108, 0.118251, 0.263406, 0.444422, 0.665434" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          index_2 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          values  ( \
                            "0.716826, 0.716012, 0.685817, 0.657866, 0.660286, 0.68442, 0.738562", \
                            "0.718091, 0.71236, 0.691064, 0.664169, 0.659956, 0.6864, 0.74206", \
                            "0.725307, 0.712976, 0.693825, 0.665258, 0.66506, 0.691284, 0.74668", \
                            "0.740663, 0.734272, 0.711557, 0.680295, 0.682099, 0.705254, 0.760452", \
                            "0.759957, 0.745646, 0.72798, 0.703483, 0.702339, 0.726451, 0.779207", \
                            "0.777513, 0.77121, 0.74448, 0.71676, 0.717508, 0.742093, 0.798193", \
                            "0.768757, 0.763411, 0.739794, 0.715033, 0.711491, 0.736659, 0.791846" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          index_2 ("0.02, 0.06956, 0.2435, 0.5757, 1.093, 1.819, 2.775");
                          values  ( \
                            "1.07353, 1.07307, 1.03994, 0.953634, 0.810095, 0.628089, 0.408661", \
                            "1.07615, 1.07449, 1.04568, 0.955658, 0.81246, 0.630443, 0.410971", \
                            "1.08076, 1.07853, 1.05056, 0.960531, 0.817333, 0.635316, 0.415899", \
                            "1.0954, 1.09413, 1.06136, 0.975194, 0.831996, 0.649979, 0.430562", \
                            "1.11561, 1.11509, 1.08537, 0.995335, 0.852148, 0.67012, 0.450703", \
                            "1.13267, 1.13083, 1.09819, 1.01204, 0.868846, 0.686818, 0.467401", \
                            "1.124, 1.12591, 1.09406, 1.00661, 0.863401, 0.681384, 0.461967" \
                          )
                          }
                 }
        }
          cell_leakage_power : 0.00061677;
}
}
