/*
 * 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__sram64x8m8wm1
 *      Technology                 : GF 180nm 5V Green
 *
 *      ---------
 *      Pin name:
 *      ---------
 *      Input Pins : CLK CEN GWEN WEN[7:0] A[5: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__sram64x8m8wm1__tt_025C_1v80) {
        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             : 1.8;
        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         : 4.617;
        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.8);
         voltage_map (VSS, 0.00);
         operating_conditions(tt_1p8v_25C) {
                process       : 1;
                temperature   : 25;
                voltage       : 1.8;
                tree_type     : balanced_tree;
         }

         default_operating_conditions : tt_1p8v_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 : 6;
                bit_from  : 5;
                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__sram64x8m8wm1) {
        area             : 100571.5568;
        dont_use         : TRUE;
        dont_touch       : TRUE;
        interface_timing : TRUE;
        memory() {
                type          : ram;
                address_width : 6;
                word_width    : 8;
        }

                 bus(Q)   {
                  bus_type             : Q_BUS;
                  direction            : output;
                  max_capacitance      : 0.9747;
                  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.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
			  index_2 ("0.01, 0.02735, 0.08826, 0.2046, 0.3858, 0.6401, 0.9747");
                          values  ( \
                            "15.2892, 15.3864, 15.5844, 15.9036, 16.4544, 17.0808, 17.988", \
                            "15.3288, 15.3876, 15.6144, 15.9564, 16.4364, 17.1432, 18.006", \
                            "15.3996, 15.4668, 15.6516, 16.0116, 16.5288, 17.232, 18.0852", \
                            "15.4776, 15.5472, 15.7344, 16.0752, 16.6092, 17.2836, 18.216", \
                            "15.636, 15.7104, 15.9648, 16.2948, 16.7556, 17.4888, 18.3792", \
                            "15.8448, 15.9228, 16.1256, 16.452, 16.992, 17.6568, 18.5604", \
                            "16.0992, 16.176, 16.3776, 16.686, 17.2152, 17.9064, 18.8148" \
                          )
                          }
                          rise_transition(q_slew_template) {
                          index_1 ("0.01, 0.02735, 0.08826, 0.2046, 0.3858, 0.6401, 0.9747");
                          values  ( \
  	                     "0.501348, 0.588912, 0.879672, 1.43688, 2.34972, 3.63756, 5.35032" \
                          )

                          }
                          cell_fall(q_delay_template) {
                          index_1 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          index_2 ("0.01, 0.02735, 0.08826, 0.2046, 0.3858, 0.6401, 0.9747");
                          values  ( \
                            "16.1808, 16.2636, 16.4232, 16.638, 16.9908, 17.2752, 17.7192", \
                            "16.2168, 16.2672, 16.452, 16.6848, 16.9776, 17.3544, 17.7276", \
                            "16.2888, 16.356, 16.5072, 16.758, 17.0724, 17.4144, 17.8224", \
                            "16.3668, 16.4244, 16.5924, 16.83, 17.1396, 17.4852, 17.9556", \
                            "16.53, 16.5984, 16.8, 17.028, 17.2944, 17.676, 18.0948", \
                            "16.722, 16.818, 16.9848, 17.2032, 17.544, 17.856, 18.2868", \
                            "16.992, 17.0496, 17.214, 17.43, 17.7516, 18.1008, 18.5328" \
                          )
                          }
                          fall_transition(q_slew_template) {
                          index_1 ("0.01, 0.02735, 0.08826, 0.2046, 0.3858, 0.6401, 0.9747");
                          values  ( \
                            "0.501756, 0.557112, 0.741972, 0.98592, 1.3518, 1.88208, 2.5596" \
                          )
                          }
                  }
          }
          pin(CLK)   {
                  direction            : input;
                  capacitance          : 0.280919;
                  clock                : true;
                  max_transition       : 4.617;
                  min_pulse_width_high : 5.59182;
                  min_pulse_width_low  : 9.346725;
                  min_period           : 21.43875;

/* 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.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                values  ("92.043, 92.043, 92.043, 92.043, 92.043, 92.043, 92.043");
              }
              fall_power(power_template) {
                index_1 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                values  ("92.043, 92.043, 92.043, 92.043, 92.043, 92.043, 92.043");
              }
             }
/* DISABLED POWER */
             internal_power() {
              when : "CEN";
              rise_power(power_template) {
                index_1 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                values  ("1.69949e-05, 1.69949e-05, 1.69949e-05, 1.69949e-05, 1.69949e-05, 1.69949e-05, 1.69949e-05");
              }
              fall_power(power_template) {
                index_1 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                values  ("1.69949e-05, 1.69949e-05, 1.69949e-05, 1.69949e-05, 1.69949e-05, 1.69949e-05, 1.69949e-05");
              }
             }
/* READ POWER */
             internal_power() {
             when : "!CEN & GWEN";
             rise_power(power_template) {
                index_1 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                values  ("84.3399, 84.3399, 84.3399, 84.3399, 84.3399, 84.3399, 84.3399");
              }
              fall_power(power_template) {
                index_1 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                values  ("84.3399, 84.3399, 84.3399, 84.3399, 84.3399, 84.3399, 84.3399");
              }
             }
          }

          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.0177614;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          index_2 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          values  ( \
                            "1.56453, 1.53395, 1.52757, 1.67464, 1.92819, 2.3793, 2.88244", \
                            "1.54495, 1.51899, 1.51338, 1.65451, 1.90465, 2.33398, 2.8699", \
                            "1.45299, 1.44441, 1.46564, 1.58565, 1.83634, 2.26567, 2.80159", \
                            "1.32396, 1.30898, 1.30052, 1.44056, 1.70621, 2.13697, 2.64407", \
                            "1.3, 1.27498, 1.27621, 1.41603, 1.6742, 2.06767, 2.54859", \
                            "1.29856, 1.28175, 1.29049, 1.41284, 1.67827, 2.06459, 2.57598", \
                            "1.28942, 1.27794, 1.27675, 1.41163, 1.67805, 2.09264, 2.55376" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          index_2 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          values  ( \
                            "1.15313, 1.13939, 1.24235, 1.38776, 1.68256, 2.06195, 2.57191", \
                            "1.1309, 1.11819, 1.22103, 1.36642, 1.66122, 2.0405, 2.55057", \
                            "1.08078, 1.08013, 1.17107, 1.32583, 1.60908, 1.99177, 2.49139", \
                            "1.07952, 1.09242, 1.17061, 1.32528, 1.60864, 1.99133, 2.49084", \
                            "1.07878, 1.09139, 1.16948, 1.32418, 1.60754, 1.99012, 2.48974", \
                            "1.07855, 1.07868, 1.16977, 1.32451, 1.6082, 1.99045, 2.49007", \
                            "1.0782, 1.07782, 1.1689, 1.32352, 1.60699, 1.98957, 2.48919" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          index_2 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          values  ( \
                            "3.82987, 3.85363, 3.8599, 3.71833, 3.45136, 3.03446, 2.56399", \
                            "3.85341, 3.87101, 3.87816, 3.73692, 3.47897, 3.08572, 2.58522", \
                            "3.93602, 3.94933, 3.93382, 3.80809, 3.5497, 3.15634, 2.65584", \
                            "4.07099, 4.08386, 4.09178, 3.95604, 3.69754, 3.28108, 2.81281", \
                            "4.32234, 4.34742, 4.34621, 4.2064, 3.94812, 3.55465, 3.07373", \
                            "4.63254, 4.64926, 4.64057, 4.51825, 4.25282, 3.8665, 3.355", \
                            "5.00874, 5.02018, 5.02139, 4.88653, 4.62011, 4.20552, 3.74451" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          index_2 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          values  ( \
                            "4.04932, 4.04987, 3.95868, 3.80402, 3.52066, 3.13797, 2.63835", \
                            "4.0755, 4.07506, 3.98398, 3.82921, 3.54585, 3.16338, 2.66354", \
                            "4.14491, 4.14557, 4.0546, 3.89983, 3.61658, 3.23389, 2.73427", \
                            "4.28835, 4.27548, 4.19727, 4.04261, 3.75925, 3.37656, 2.87705", \
                            "4.54355, 4.53101, 4.45291, 4.29825, 4.01478, 3.6322, 3.13258", \
                            "4.85254, 4.85232, 4.76124, 4.60658, 4.32289, 3.94053, 3.44102", \
                            "5.21994, 5.22038, 5.1293, 4.97464, 4.69117, 4.30859, 3.80897" \
                          )
                          }
                 }
          }
          pin(GWEN)   {
                  direction            : input;
                  capacitance          : 0.0444991;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          index_2 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          values  ( \
                            "1.88485, 1.90212, 1.98297, 2.12608, 2.35444, 2.64429, 2.9656", \
                            "1.86373, 1.88694, 1.96031, 2.10738, 2.33343, 2.61723, 2.94503", \
                            "1.8018, 1.81313, 1.89365, 2.0394, 2.26545, 2.54936, 2.87727", \
                            "1.65858, 1.67145, 1.74889, 1.89233, 2.12388, 2.41175, 2.73471", \
                            "1.42087, 1.43814, 1.51481, 1.66419, 1.89035, 2.17448, 2.50228", \
                            "1.20485, 1.22816, 1.30252, 1.44386, 1.672, 1.96603, 2.28723", \
                            "0.979253, 1.00363, 1.07916, 1.21774, 1.44771, 1.74053, 2.06096" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          index_2 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          values  ( \
                            "2.41692, 2.43364, 2.52329, 2.70424, 2.98507, 3.36413, 3.89224", \
                            "2.3958, 2.41274, 2.50228, 2.68323, 2.96945, 3.33861, 3.87299", \
                            "2.32793, 2.34465, 2.43441, 2.61536, 2.89377, 3.27503, 3.80501", \
                            "2.18603, 2.20297, 2.29262, 2.47357, 2.76001, 3.13346, 3.66355", \
                            "1.95338, 1.96966, 2.05953, 2.24048, 2.5212, 2.90004, 3.43013", \
                            "1.74108, 1.75384, 1.84349, 2.02422, 2.27645, 2.68411, 3.212", \
                            "1.5015, 1.52834, 1.61821, 1.79894, 2.07988, 2.45883, 2.98881" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          index_2 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          values  ( \
                            "2.56113, 2.55288, 2.46235, 2.33244, 2.12619, 1.91972, 1.73547", \
                            "2.51933, 2.50349, 2.42011, 2.28646, 2.07999, 1.86538, 1.68806", \
                            "2.4684, 2.46048, 2.36885, 2.23597, 2.0295, 1.81478, 1.63746", \
                            "2.50943, 2.5014, 2.41175, 2.27689, 2.07042, 1.85185, 1.67915", \
                            "2.64418, 2.63604, 2.54463, 2.41153, 2.20517, 1.99034, 1.81313", \
                            "2.82711, 2.8116, 2.73119, 2.59259, 2.39184, 2.17888, 1.9954", \
                            "3.01224, 2.99673, 2.91335, 2.77981, 2.57686, 2.35444, 2.1813" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          index_2 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          values  ( \
                            "1.26049, 1.24588, 1.1519, 0.984489, 0.694067, 0.316765, 0", \
                            "1.22682, 1.20256, 1.10966, 0.942777, 0.652135, 0.280684, 0", \
                            "1.17624, 1.15158, 1.05686, 0.89045, 0.603724, 0.22546, 0", \
                            "1.21598, 1.19249, 1.09985, 0.93291, 0.64251, 0.265199, 0", \
                            "1.35168, 1.32737, 1.23353, 1.0663, 0.777524, 0.401324, 0", \
                            "1.53318, 1.51019, 1.41735, 1.2507, 0.990946, 0.583, 0.085591", \
                            "1.71325, 1.69719, 1.60061, 1.43583, 1.14543, 0.768119, 0.269784" \
                          )
                          }
                 }
          }
          bus(WEN)   {
                  bus_type             : Q_BUS;
                  direction            : input;
                  capacitance          : 0.00715847;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          index_2 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          values  ( \
                            "0, 0, 0, 0, 0, 0.089045, 0.262931", \
                            "0, 0, 0, 0, 0, 0.118061, 0.300218", \
                            "0, 0, 0, 0, 0, 0.17046, 0.352605", \
                            "0, 0, 0, 0, 0, 0.128631, 0.311594", \
                            "0, 0, 0, 0, 0, 0, 0.177448", \
                            "0, 0, 0, 0, 0, 0, 0", \
                            "0, 0, 0, 0, 0, 0, 0" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          index_2 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          values  ( \
                            "0.718696, 0.73601, 0.832106, 0.995456, 1.28772, 1.66628, 2.16821", \
                            "0.753247, 0.778767, 0.872586, 1.0407, 1.32869, 1.70137, 2.20407", \
                            "0.804199, 0.830599, 0.932151, 1.09162, 1.37841, 1.7589, 2.25643", \
                            "0.761728, 0.782914, 0.883322, 1.0438, 1.33694, 1.71127, 2.20902", \
                            "0.631169, 0.655479, 0.751432, 0.916465, 1.20508, 1.5829, 2.079", \
                            "0.448228, 0.471922, 0.565565, 0.734635, 0.99341, 1.39557, 1.89552", \
                            "0.267148, 0.281961, 0.384263, 0.544918, 0.83237, 1.20678, 1.70962" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          index_2 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          values  ( \
                            "2.57202, 2.55288, 2.47489, 2.33255, 2.1285, 1.936, 1.74031", \
                            "2.52934, 2.50866, 2.43232, 2.28987, 2.08582, 1.89332, 1.69763", \
                            "2.47874, 2.46048, 2.38172, 2.23927, 2.03522, 1.84272, 1.64703", \
                            "2.51988, 2.5014, 2.42264, 2.28019, 2.07614, 1.88364, 1.68795", \
                            "2.65419, 2.63604, 2.55706, 2.41472, 2.21067, 2.01817, 1.82237", \
                            "2.83745, 2.81677, 2.74043, 2.59798, 2.39393, 2.20044, 2.00574", \
                            "3.02258, 3.0019, 2.92545, 2.78311, 2.57906, 2.38656, 2.19087" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          index_2 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          values  ( \
                            "1.26086, 1.24634, 1.15191, 0.984489, 0.694067, 0.316765, 0", \
                            "1.22682, 1.20256, 1.10966, 0.942777, 0.652135, 0.280873, 0", \
                            "1.17624, 1.15158, 1.05686, 0.89045, 0.603724, 0.22546, 0", \
                            "1.21598, 1.19249, 1.09985, 0.93291, 0.64251, 0.265199, 0", \
                            "1.35168, 1.32737, 1.23378, 1.0663, 0.777524, 0.401324, 0", \
                            "1.53395, 1.51019, 1.41735, 1.2507, 0.990946, 0.583, 0.085591", \
                            "1.71325, 1.69719, 1.60061, 1.43583, 1.14543, 0.768119, 0.269784" \
                          )
                          }
                 }
          }
          bus(A)   {
                  bus_type             : A_BUS;
                  direction            : input;
                  capacitance          : 0.0345814;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          index_2 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          values  ( \
                            "1.81104, 1.78607, 1.80004, 1.92731, 2.2088, 2.63307, 3.14534", \
                            "1.84602, 1.8315, 1.83249, 1.96482, 2.24862, 2.67179, 3.19143", \
                            "1.90069, 1.87968, 1.89453, 2.01619, 2.29845, 2.72844, 3.23796", \
                            "1.85823, 1.83777, 1.84129, 1.97285, 2.25797, 2.67773, 3.19847", \
                            "1.71171, 1.71578, 1.72238, 1.8535, 2.12377, 2.54782, 3.04678", \
                            "1.54451, 1.52889, 1.53252, 1.66177, 1.93974, 2.36632, 2.86242", \
                            "1.35817, 1.33892, 1.33694, 1.47213, 1.75142, 2.17756, 2.69544" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          index_2 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          values  ( \
                            "1.92412, 1.93028, 2.01443, 2.16634, 2.45454, 2.85989, 3.37106", \
                            "1.93083, 1.96009, 2.05348, 2.20473, 2.48006, 2.89795, 3.40758", \
                            "1.98517, 2.01179, 2.10837, 2.25555, 2.54958, 2.94976, 3.46489", \
                            "1.95382, 1.97593, 2.06195, 2.21364, 2.50503, 2.90774, 3.4177", \
                            "1.83183, 1.84085, 1.93149, 2.07944, 2.37259, 2.77563, 3.28482", \
                            "1.63306, 1.66551, 1.74856, 1.90773, 2.20352, 2.59545, 3.10552", \
                            "1.46069, 1.47114, 1.55727, 1.71446, 1.98836, 2.40779, 2.92061" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          index_2 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          values  ( \
                            "1.27603, 1.28736, 1.2736, 1.1275, 0.857032, 0.523347, 0.142211", \
                            "1.30172, 1.31318, 1.29901, 1.15366, 0.882959, 0.549483, 0.168022", \
                            "1.36631, 1.37764, 1.36389, 1.2181, 0.947397, 0.613921, 0.232458", \
                            "1.51085, 1.52141, 1.50821, 1.36279, 1.09206, 0.758571, 0.377113", \
                            "1.74317, 1.7545, 1.7413, 1.595, 1.32429, 0.990803, 0.608058", \
                            "2.04556, 2.05689, 2.04314, 1.89805, 1.63207, 1.29348, 0.9108", \
                            "2.35774, 2.36929, 2.35499, 2.20968, 1.93952, 1.60556, 1.22408" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          index_2 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          values  ( \
                            "1.48555, 1.46949, 1.38985, 1.23405, 1.04507, 0.827508, 0.59862", \
                            "1.5114, 1.49523, 1.4157, 1.25981, 1.07086, 0.853303, 0.624426", \
                            "1.57542, 1.55969, 1.48005, 1.32121, 1.13528, 0.91773, 0.688864", \
                            "1.72051, 1.70434, 1.6247, 1.46916, 1.27996, 1.06239, 0.833514", \
                            "1.95228, 1.93666, 1.85702, 1.70115, 1.51217, 1.29463, 1.06576", \
                            "2.25511, 2.23905, 2.15941, 2.00354, 1.81456, 1.59698, 1.36818", \
                            "2.56795, 2.55134, 2.4717, 2.31594, 2.12696, 1.90938, 1.68047" \
                          )
                          }
                 }
          }
          bus(D)   {
                  bus_type             : Q_BUS;
                  memory_write() {
                          address      : A;
                          clocked_on   : "CLK";
                  }
                  direction            : input;
                  capacitance          : 0.0161834;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          index_2 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          values  ( \
                            "1.84096, 1.87627, 1.94656, 2.07405, 2.19373, 2.27447, 2.40031", \
                            "1.89134, 1.90993, 1.98484, 2.10628, 2.23883, 2.2968, 2.41098", \
                            "1.94458, 1.96779, 2.03368, 2.16227, 2.29141, 2.37369, 2.50206", \
                            "1.89387, 1.92104, 1.9833, 2.11871, 2.25049, 2.32518, 2.4442", \
                            "1.76836, 1.79212, 1.86659, 1.98968, 2.11695, 2.19043, 2.32111", \
                            "1.57696, 1.60655, 1.67783, 1.81236, 1.94502, 2.00871, 2.12289", \
                            "1.39172, 1.41581, 1.49017, 1.61766, 1.75109, 1.82963, 1.93677" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          index_2 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          values  ( \
                            "0.024453, 0.029799, 0.08932, 0.266974, 0.539803, 0.926068, 1.40261", \
                            "0.063184, 0.06534, 0.127321, 0.305254, 0.578105, 0.964601, 1.44089", \
                            "0.114748, 0.117723, 0.179174, 0.356873, 0.629651, 1.01616, 1.485", \
                            "0.072127, 0.07557, 0.137031, 0.314678, 0.587532, 0.973775, 1.4498", \
                            "0, 0, 0.004708, 0.182636, 0.455422, 0.841676, 1.31821", \
                            "0, 0, 0, 0.002233, 0.276152, 0.661573, 1.13737", \
                            "0, 0, 0, 0, 0.085063, 0.47157, 0.947485" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          index_2 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          values  ( \
                            "0.945186, 0.923109, 0.853941, 0.728079, 0.596805, 0.525228, 0.402622", \
                            "0.908908, 0.88231, 0.812592, 0.680526, 0.563079, 0.500335, 0.367961", \
                            "0.857285, 0.835142, 0.765985, 0.640167, 0.510697, 0.427911, 0.296078", \
                            "0.906917, 0.877877, 0.807345, 0.683628, 0.553091, 0.470558, 0.351142", \
                            "1.02777, 1.0056, 0.928554, 0.808852, 0.679228, 0.597993, 0.472648", \
                            "1.21602, 1.19394, 1.12462, 0.992068, 0.869198, 0.798655, 0.669064", \
                            "1.40547, 1.37896, 1.30974, 1.18393, 1.05411, 0.971652, 0.850729" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          index_2 ("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617");
                          values  ( \
                            "2.08857, 2.08791, 2.02114, 1.84514, 1.57223, 1.18832, 0.719763", \
                            "2.04776, 2.04897, 1.98022, 1.80433, 1.53142, 1.1475, 0.678953", \
                            "2.00068, 2.002, 1.93314, 1.75725, 1.48434, 1.10041, 0.631873", \
                            "2.04336, 2.04468, 1.97582, 1.79993, 1.52702, 1.14303, 0.674487", \
                            "2.17096, 2.17217, 2.10353, 1.92753, 1.65473, 1.27072, 0.802186", \
                            "2.35873, 2.36082, 2.29185, 2.11596, 1.84305, 1.45904, 0.99055", \
                            "2.54441, 2.54595, 2.47698, 2.30098, 2.02807, 1.64417, 1.17561" \
                          )
                          }
                 }
        }
          cell_leakage_power : 1.699488e-05;
}
}
