/*
 * 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_n40C_3v00) {
        delay_model             : table_lookup;
        revision                : 1.0;
        date                    : "June 20, 2014";
        comment                 : "GF 180nm 5V Green";
        voltage_unit            : "1V";
        time_unit               : "1ns";
        current_unit            : "1mA";
        leakage_power_unit      : "1mW";
        nom_process             : 1;
        nom_temperature         : -40;
        nom_voltage             : 3.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         : 6.4830;
        default_cell_leakage_power     : 0;

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

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

         voltage_map (VDD, 3.0);
         voltage_map (VSS, 0.00);
         operating_conditions(ss_3p0v_m40C) {
                process       : 1;
                temperature   : -40;
                voltage       : 3.0;
                tree_type     : balanced_tree;
         }

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

         library_features(report_delay_calculation);

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

                 bus(Q)   {
                  bus_type             : Q_BUS;
                  direction            : output;
                  max_capacitance      : 1.1369;
                  memory_read() {
                        address        : A;
                  }
                  timing() {
                          related_pin  : "CLK";
                          timing_type  : rising_edge;
                          timing_sense : non_unate;
       		  when : "((!CEN) & (GWEN))";
        	  sdf_cond : "CEN== 1'b0 && GWEN== 1'b1";
                          cell_rise(q_delay_template) {
			  index_1 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
			  index_2 ("0.0100, 0.0303, 0.1014, 0.2373, 0.4490, 0.7460, 1.1369");
                          values  ( \
                            "9.27288, 9.29724, 9.42672, 9.61176, 9.89364, 10.27188, 10.77048", \
                            "9.27108, 9.32304, 9.44508, 9.62388, 9.9108, 10.299, 10.79796", \
                            "9.33636, 9.36828, 9.4908, 9.68724, 9.96552, 10.35144, 10.878", \
                            "9.39624, 9.4632, 9.56484, 9.75912, 10.04424, 10.43544, 10.92528", \
                            "9.4872, 9.52428, 9.66516, 9.82632, 10.12104, 10.497, 11.00148", \
                            "9.54948, 9.58248, 9.7116, 9.89568, 10.1814, 10.56444, 11.0406", \
                            "9.52068, 9.56652, 9.67716, 9.88728, 10.15044, 10.5282, 11.06484" \
                          )
                          }
                          rise_transition(q_slew_template) {
                          index_1 ("0.0100, 0.0303, 0.1014, 0.2373, 0.4490, 0.7460, 1.1369");
                          values  ( \
  	                     "0.2682, 0.318804, 0.48954, 0.804936, 1.32276, 2.05296, 3.02064" \
                          )

                          }
                          cell_fall(q_delay_template) {
                          index_1 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          index_2 ("0.0100, 0.0303, 0.1014, 0.2373, 0.4490, 0.7460, 1.1369");
                          values  ( \
                            "9.62772, 9.651, 9.77208, 9.92604, 10.14636, 10.39308, 10.71204", \
                            "9.62484, 9.67884, 9.78624, 9.94248, 10.15308, 10.40112, 10.72608", \
                            "9.69, 9.71988, 9.84372, 10.00872, 10.20732, 10.46556, 10.80792", \
                            "9.7548, 9.81864, 9.91068, 10.0836, 10.28676, 10.54296, 10.85712", \
                            "9.84684, 9.88212, 10.01496, 10.1514, 10.37412, 10.61028, 10.93944", \
                            "9.90648, 9.94116, 10.05924, 10.2144, 10.42524, 10.67412, 10.97256", \
                            "9.88236, 9.91488, 10.02204, 10.20672, 10.39356, 10.6428, 10.98864" \
                          )
                          }
                          fall_transition(q_slew_template) {
                          index_1 ("0.0100, 0.0303, 0.1014, 0.2373, 0.4490, 0.7460, 1.1369");
                          values  ( \
                            "0.264528, 0.314244, 0.427188, 0.610632, 0.877668, 1.2624, 1.76868" \
                          )
                          }
                  }
          }
          pin(CLK)   {
                  direction            : input;
                  capacitance          : 0.310692;
                  clock                : true;
                  max_transition       : 6.4830;
                  min_pulse_width_high : 4.59879;
                  min_pulse_width_low  : 5.82354;
                  min_period           : 12.55293;

/* WRITE POWER */
             internal_power() {
              when : "!CEN & !GWEN & (!WEN[0] | !WEN[1] | !WEN[2] | !WEN[3] | !WEN[4] | !WEN[5] | !WEN[6] | !WEN[7])";
              rise_power(power_template) {
                index_1 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                values  ("330.795, 330.795, 330.795, 330.795, 330.795, 330.795, 330.795");
              }
              fall_power(power_template) {
                index_1 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                values  ("330.795, 330.795, 330.795, 330.795, 330.795, 330.795, 330.795");
              }
             }
/* DISABLED POWER */
             internal_power() {
              when : "CEN";
              rise_power(power_template) {
                index_1 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                values  ("0.00022272, 0.00022272, 0.00022272, 0.00022272, 0.00022272, 0.00022272, 0.00022272");
              }
              fall_power(power_template) {
                index_1 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                values  ("0.00022272, 0.00022272, 0.00022272, 0.00022272, 0.00022272, 0.00022272, 0.00022272");
              }
             }
/* READ POWER */
             internal_power() {
             when : "!CEN & GWEN";
             rise_power(power_template) {
                index_1 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                values  ("301.665, 301.665, 301.665, 301.665, 301.665, 301.665, 301.665");
              }
              fall_power(power_template) {
                index_1 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                values  ("301.665, 301.665, 301.665, 301.665, 301.665, 301.665, 301.665");
              }
             }
          }

          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.0195066;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          index_2 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          values  ( \
                            "0.803187, 0.791956, 0.829818, 1.01032, 1.24361, 1.42582, 1.55804", \
                            "0.786137, 0.768064, 0.803429, 0.975788, 1.21296, 1.41097, 1.52911", \
                            "0.755953, 0.734129, 0.774268, 0.942689, 1.13041, 1.30174, 1.44683", \
                            "0.755414, 0.736967, 0.772596, 0.941061, 1.11466, 1.22499, 1.34024", \
                            "0.746438, 0.73557, 0.772178, 0.940555, 1.11415, 1.22448, 1.28292", \
                            "0.750013, 0.731203, 0.771804, 0.940258, 1.11428, 1.22838, 1.28404", \
                            "0.747549, 0.730411, 0.771408, 0.936122, 1.10672, 1.22409, 1.32396" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          index_2 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          values  ( \
                            "0.657998, 0.673101, 0.765072, 0.959475, 1.22398, 1.51228, 1.80268", \
                            "0.65384, 0.668602, 0.761046, 0.948695, 1.21994, 1.49919, 1.79355", \
                            "0.650485, 0.664873, 0.757141, 0.951555, 1.21607, 1.49523, 1.78959", \
                            "0.648186, 0.663036, 0.755491, 0.94314, 1.21441, 1.4971, 1.78794", \
                            "0.647295, 0.662684, 0.754963, 0.949388, 1.21386, 1.49314, 1.77826", \
                            "0.646943, 0.666116, 0.754688, 0.949113, 1.21365, 1.49292, 1.78717", \
                            "0.646448, 0.661496, 0.753907, 0.941556, 1.2128, 1.49204, 1.7864" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          index_2 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          values  ( \
                            "1.90608, 1.91752, 1.88111, 1.71259, 1.53934, 1.42857, 1.37027", \
                            "1.92401, 1.94205, 1.90872, 1.74878, 1.56805, 1.44606, 1.3948", \
                            "2.0141, 2.03599, 1.99584, 1.82743, 1.65374, 1.55419, 1.48445", \
                            "2.18251, 2.20088, 2.16524, 1.99683, 1.82325, 1.71292, 1.65462", \
                            "2.37303, 2.38392, 2.34729, 2.17888, 2.0053, 1.89497, 1.83656", \
                            "2.51196, 2.53077, 2.49018, 2.32166, 2.14764, 2.03357, 1.97791", \
                            "2.60084, 2.618, 2.57697, 2.4123, 2.24169, 2.12432, 2.06635" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          index_2 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          values  ( \
                            "2.0053, 1.99012, 1.89816, 1.70379, 1.43924, 1.16005, 0.865689", \
                            "2.03005, 2.0152, 1.9228, 1.73514, 1.46388, 1.18465, 0.890285", \
                            "2.11959, 2.10518, 2.01289, 1.81852, 1.55397, 1.2748, 0.980441", \
                            "2.28965, 2.2748, 2.1824, 1.99474, 1.72348, 1.44078, 1.1499", \
                            "2.47214, 2.45674, 2.36445, 2.17008, 1.90564, 1.62635, 1.34123", \
                            "2.61503, 2.59578, 2.50723, 2.31286, 2.04831, 1.76902, 1.47477", \
                            "2.70193, 2.68686, 2.59446, 2.4068, 2.13565, 1.85636, 1.562" \
                          )
                          }
                 }
          }
          pin(GWEN)   {
                  direction            : input;
                  capacitance          : 0.0486853;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          index_2 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          values  ( \
                            "1.02765, 1.04799, 1.1382, 1.30141, 1.5015, 1.68157, 1.82655", \
                            "1.00936, 1.02785, 1.11973, 1.28315, 1.48676, 1.65869, 1.81071", \
                            "0.924451, 0.944152, 1.03406, 1.19716, 1.40217, 1.5796, 1.71842", \
                            "0.76802, 0.787545, 0.877283, 1.04042, 1.24538, 1.41856, 1.56563", \
                            "0.630597, 0.651651, 0.742456, 0.904541, 1.10948, 1.28268, 1.42978", \
                            "0.529771, 0.549087, 0.639078, 0.80212, 1.00658, 1.18465, 1.32638", \
                            "0.479523, 0.498707, 0.58861, 0.753082, 0.956637, 1.12459, 1.27766" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          index_2 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          values  ( \
                            "1.16357, 1.18789, 1.29503, 1.5114, 1.82853, 2.18944, 2.58148", \
                            "1.14022, 1.16631, 1.27599, 1.49358, 1.80895, 2.16997, 2.56157", \
                            "1.05585, 1.08312, 1.19088, 1.40965, 1.72436, 2.08538, 2.47687", \
                            "0.902418, 0.92323, 1.03408, 1.25044, 1.56761, 1.93127, 2.32023", \
                            "0.768383, 0.791747, 0.898689, 1.11456, 1.43176, 1.7963, 2.18603", \
                            "0.666017, 0.684684, 0.795828, 1.01215, 1.32935, 1.68982, 2.08197", \
                            "0.615648, 0.633809, 0.745833, 0.963501, 1.27892, 1.63988, 2.03159" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          index_2 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          values  ( \
                            "1.50568, 1.48423, 1.39733, 1.26968, 1.16043, 1.08067, 1.03698", \
                            "1.51217, 1.49259, 1.40327, 1.27578, 1.16544, 1.08686, 1.04378", \
                            "1.56937, 1.55001, 1.4608, 1.3332, 1.22275, 1.13808, 1.10263", \
                            "1.64604, 1.62657, 1.53747, 1.40976, 1.29943, 1.22113, 1.17774", \
                            "1.71721, 1.69818, 1.61128, 1.48137, 1.37104, 1.29275, 1.2487", \
                            "1.7391, 1.72018, 1.63075, 1.50304, 1.39282, 1.31219, 1.27608", \
                            "1.74273, 1.72348, 1.63438, 1.50667, 1.39634, 1.32572, 1.27405" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          index_2 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          values  ( \
                            "0.770792, 0.739002, 0.632566, 0.424358, 0.125435, 0, 0", \
                            "0.778723, 0.756822, 0.637659, 0.426558, 0.13154, 0, 0", \
                            "0.832964, 0.808764, 0.696102, 0.483857, 0.18923, 0, 0", \
                            "0.910503, 0.885291, 0.77264, 0.565345, 0.265525, 0, 0", \
                            "1.02637, 1.00388, 0.891616, 0.675015, 0.367873, 0.041558, 0", \
                            "1.20342, 1.18444, 1.06872, 0.852126, 0.544984, 0.220665, 0", \
                            "1.33452, 1.31549, 1.19994, 0.982135, 0.676093, 0.351791, 0" \
                          )
                          }
                 }
          }
          bus(WEN)   {
                  bus_type             : Q_BUS;
                  direction            : input;
                  capacitance          : 0.00791289;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          index_2 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          values  ( \
                            "0, 0, 0, 0, 0.036696, 0.118996, 0.163967", \
                            "0, 0, 0, 0, 0.032703, 0.113323, 0.157799", \
                            "0, 0, 0, 0, 0, 0.06094, 0.100998", \
                            "0, 0, 0, 0, 0, 0, 0.02651", \
                            "0, 0, 0, 0, 0, 0, 0", \
                            "0, 0, 0, 0, 0, 0, 0", \
                            "0, 0, 0, 0, 0, 0, 0" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          index_2 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          values  ( \
                            "0.390687, 0.420354, 0.529287, 0.736879, 1.03519, 1.37896, 1.77342", \
                            "0.38104, 0.405262, 0.524139, 0.734558, 1.02904, 1.37269, 1.76869", \
                            "0.32857, 0.350537, 0.466323, 0.678205, 0.973709, 1.31538, 1.71061", \
                            "0.25365, 0.278565, 0.391908, 0.598543, 0.899041, 1.24372, 1.63603", \
                            "0.179187, 0.203766, 0.319352, 0.526548, 0.825077, 1.17234, 1.56596", \
                            "0.156442, 0.182408, 0.296586, 0.504163, 0.804254, 1.14503, 1.54055", \
                            "0.154585, 0.177706, 0.295066, 0.506429, 0.800129, 1.14402, 1.54011" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          index_2 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          values  ( \
                            "1.50667, 1.4916, 1.40107, 1.26968, 1.16063, 1.08372, 1.03698", \
                            "1.51283, 1.49776, 1.40712, 1.27578, 1.16677, 1.08986, 1.04378", \
                            "1.57025, 1.55507, 1.46454, 1.3332, 1.22411, 1.14721, 1.10263", \
                            "1.64681, 1.63174, 1.5411, 1.40976, 1.30075, 1.22384, 1.17774", \
                            "1.71842, 1.70335, 1.61271, 1.48137, 1.37236, 1.29547, 1.2487", \
                            "1.7402, 1.72513, 1.63449, 1.50304, 1.39414, 1.31725, 1.27608", \
                            "1.74383, 1.72876, 1.63823, 1.50667, 1.39777, 1.32572, 1.27405" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          index_2 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          values  ( \
                            "0.771826, 0.739607, 0.635415, 0.427306, 0.131431, 0, 0", \
                            "0.782111, 0.756822, 0.640596, 0.429539, 0.137538, 0, 0", \
                            "0.835769, 0.808764, 0.698896, 0.483857, 0.194892, 0, 0", \
                            "0.911878, 0.885874, 0.775489, 0.567116, 0.271529, 0, 0", \
                            "0.983884, 0.958518, 0.846736, 0.639034, 0.343134, 0, 0", \
                            "1.01076, 0.982333, 0.868934, 0.660814, 0.364914, 0.018711, 0", \
                            "1.01283, 0.986733, 0.872146, 0.660539, 0.368566, 0.021241, 0" \
                          )
                          }
                 }
          }
          bus(A)   {
                  bus_type             : A_BUS;
                  direction            : input;
                  capacitance          : 0.043725;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          index_2 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          values  ( \
                            "1.24583, 1.23937, 1.2806, 1.45464, 1.68223, 1.89222, 2.03841", \
                            "1.23974, 1.22858, 1.27986, 1.45332, 1.67662, 1.89959, 2.02895", \
                            "1.18229, 1.16974, 1.22063, 1.39293, 1.61612, 1.82677, 1.96988", \
                            "1.10986, 1.10106, 1.14567, 1.32132, 1.54253, 1.74724, 1.8986", \
                            "1.03356, 1.02676, 1.0718, 1.2435, 1.47224, 1.68465, 1.82974", \
                            "1.01669, 1.00154, 1.05417, 1.22587, 1.4487, 1.65825, 1.80257", \
                            "1.0132, 1.00102, 1.04623, 1.21898, 1.44683, 1.66188, 1.79432" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          index_2 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          values  ( \
                            "1.69268, 1.70544, 1.79806, 2.00541, 2.28921, 2.59149, 2.92523", \
                            "1.68124, 1.69983, 1.7919, 2.00002, 2.28393, 2.58412, 2.91665", \
                            "1.62602, 1.64098, 1.73844, 1.94128, 2.22156, 2.53385, 2.86539", \
                            "1.55397, 1.56651, 1.6643, 1.8667, 2.1505, 2.45608, 2.78619", \
                            "1.48137, 1.49457, 1.59357, 1.793, 2.0779, 2.3848, 2.71942", \
                            "1.46201, 1.47345, 1.57355, 1.7776, 2.04974, 2.35851, 2.69181", \
                            "1.45002, 1.47059, 1.5631, 1.77155, 2.0537, 2.35763, 2.68917" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          index_2 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          values  ( \
                            "0.884026, 0.89452, 0.84546, 0.761134, 0.67826, 0.613096, 0.542388", \
                            "0.898634, 0.913594, 0.862818, 0.775577, 0.695453, 0.632566, 0.559867", \
                            "0.990594, 1.00551, 0.954547, 0.870232, 0.787358, 0.724922, 0.651783", \
                            "1.15005, 1.1651, 1.1141, 1.02705, 0.94688, 0.884631, 0.813571", \
                            "1.35014, 1.36202, 1.3112, 1.224, 1.14387, 1.08098, 1.00828", \
                            "1.51591, 1.53065, 1.47972, 1.3926, 1.31241, 1.24997, 1.18368", \
                            "1.64373, 1.65847, 1.60754, 1.52042, 1.44023, 1.37588, 1.30702" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          index_2 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          values  ( \
                            "0.947727, 0.930765, 0.843645, 0.75251, 0.675081, 0.598719, 0.555654", \
                            "0.964183, 0.94622, 0.860827, 0.76967, 0.692252, 0.616077, 0.572825", \
                            "1.05663, 1.03805, 0.952743, 0.861586, 0.784168, 0.707993, 0.664741", \
                            "1.21606, 1.20014, 1.11228, 1.02113, 0.943712, 0.86735, 0.824285", \
                            "1.41328, 1.39645, 1.30922, 1.21811, 1.14073, 1.06448, 1.02125", \
                            "1.58147, 1.56321, 1.47785, 1.38677, 1.30933, 1.2331, 1.18986", \
                            "1.70962, 1.69103, 1.60567, 1.51459, 1.43715, 1.36081, 1.31769" \
                          )
                          }
                 }
          }
          bus(D)   {
                  bus_type             : Q_BUS;
                  memory_write() {
                          address      : A;
                          clocked_on   : "CLK";
                  }
                  direction            : input;
                  capacitance          : 0.0174073;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          index_2 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          values  ( \
                            "0.961158, 0.980925, 1.05653, 1.1071, 1.12279, 1.08313, 0.984753", \
                            "0.952633, 0.976206, 1.04994, 1.10736, 1.12056, 1.07661, 0.986623", \
                            "0.896159, 0.923527, 0.996006, 1.04655, 1.05869, 1.01099, 0.931095", \
                            "0.820435, 0.846604, 0.919864, 0.969716, 0.984445, 0.934868, 0.849244", \
                            "0.753434, 0.776567, 0.84337, 0.901142, 0.910239, 0.875116, 0.777447", \
                            "0.732424, 0.753203, 0.825154, 0.879428, 0.887535, 0.84854, 0.770011", \
                            "0.728101, 0.75097, 0.819676, 0.872586, 0.891627, 0.841269, 0.749826" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          index_2 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          values  ( \
                            "0.11975, 0.132561, 0.238579, 0.459162, 0.739959, 1.06807, 1.45288", \
                            "0.118955, 0.127383, 0.232911, 0.453596, 0.734393, 1.06248, 1.44716", \
                            "0.063921, 0.070521, 0.176188, 0.396803, 0.677435, 1.00565, 1.39051", \
                            "0, 0, 0.101091, 0.321706, 0.602481, 0.930644, 1.31538", \
                            "0, 0, 0.028941, 0.249528, 0.53031, 0.858407, 1.24323", \
                            "0, 0, 0.006765, 0.227315, 0.507969, 0.837199, 1.22101", \
                            "0, 0, 0.003399, 0.223947, 0.504724, 0.833613, 1.21764" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          index_2 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          values  ( \
                            "0.668019, 0.646503, 0.572154, 0.51546, 0.502601, 0.542927, 0.637395", \
                            "0.673794, 0.650331, 0.581218, 0.515878, 0.506143, 0.549637, 0.642873", \
                            "0.732424, 0.703307, 0.633545, 0.574651, 0.566071, 0.611578, 0.699809", \
                            "0.80531, 0.781033, 0.709335, 0.653334, 0.639496, 0.683144, 0.774675", \
                            "0.875314, 0.849376, 0.778877, 0.721017, 0.716606, 0.751685, 0.843282", \
                            "0.900592, 0.880044, 0.806674, 0.752158, 0.74239, 0.776083, 0.858143", \
                            "0.905003, 0.882508, 0.807609, 0.752521, 0.738991, 0.783057, 0.868978" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          index_2 ("0.0200, 0.1363, 0.5445, 1.3241, 2.5384, 4.2420, 6.4830");
                          values  ( \
                            "1.14609, 1.13513, 1.02872, 0.810051, 0.53053, 0.203653, 0", \
                            "1.1496, 1.14135, 1.03495, 0.816266, 0.536745, 0.209865, 0", \
                            "1.20486, 1.19814, 1.09172, 0.873048, 0.593527, 0.266645, 0", \
                            "1.2813, 1.27244, 1.166, 0.947342, 0.667821, 0.340945, 0", \
                            "1.35256, 1.34343, 1.23697, 1.0183, 0.738782, 0.411895, 0.02926", \
                            "1.37643, 1.36829, 1.26185, 1.04318, 0.763664, 0.436788, 0.054142", \
                            "1.3805, 1.37225, 1.26584, 1.04718, 0.767657, 0.44077, 0.058124" \
                          )
                          }
                 }
        }
          cell_leakage_power : 0.00022272;
}
}
