/*
 * Copyright 2022 GlobalFoundries PDK Authors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 *      Single Port SRAM cell name : gf180mcu_fd_ip_sram__sram512x8m8wm1
 *      Technology                 : GF 180nm 5V Green
 *
 *      ---------
 *      Pin name:
 *      ---------
 *      Input Pins : CLK CEN GWEN WEN[7:0] A[8:0] D[7:0]
 *      Inout Pins:  VDD VSS
 *      Output Pins: Q[7:0]
 *
 *     Revision History: 1.0 (Initial Release: June 20, 2014)
 */

library(gf180mcu_fd_ip_sram__sram512x8m8wm1__ff_125C_1v98) {
        delay_model             : table_lookup;
        revision                : 1.0;
        date                    : "June 20, 2014";
        comment                 : "GF 180nm 5V Green";
        voltage_unit            : "1V";
        time_unit               : "1ns";
        current_unit            : "1mA";
        leakage_power_unit      : "1mW";
        nom_process             : 1;
        nom_temperature         : 125;
        nom_voltage             : 1.98;
        capacitive_load_unit    (1,pf);
        pulling_resistance_unit : "1kohm";

        /* additional header data */
        default_fanout_load            : 1;
        default_inout_pin_cap          : 0.045;
        default_input_pin_cap          : 0.045;
        default_output_pin_cap         : 0;
        default_max_transition         : 3.235;
        default_cell_leakage_power     : 0;

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

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

         voltage_map (VDD, 1.98);
         voltage_map (VSS, 0.00);
         operating_conditions(ff_1p98v_125C) {
                process       : 1;
                temperature   : 125;
                voltage       : 1.98;
                tree_type     : balanced_tree;
         }

         default_operating_conditions : ff_1p98v_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.018;
                  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.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
			  index_2 ("0.01, 0.02813, 0.09177, 0.2133, 0.4026, 0.6683, 1.018");
                          values  ( \
                            "11.3022, 11.35104, 11.50032, 11.73948, 12.0852, 12.5472, 13.1616", \
                            "11.30388, 11.35644, 11.493, 11.74176, 12.0924, 12.546, 13.1772", \
                            "11.33988, 11.39316, 11.53488, 11.76228, 12.108, 12.5844, 13.1976", \
                            "11.36028, 11.4192, 11.559, 11.80776, 12.1536, 12.6108, 13.2192", \
                            "11.41848, 11.47152, 11.60676, 11.82324, 12.1656, 12.6336, 13.2876", \
                            "11.45796, 11.53116, 11.64036, 11.89944, 12.2328, 12.7092, 13.3332", \
                            "11.47656, 11.52756, 11.68092, 11.9148, 12.2568, 12.7284, 13.356" \
                          )
                          }
                          rise_transition(q_slew_template) {
                          index_1 ("0.01, 0.02813, 0.09177, 0.2133, 0.4026, 0.6683, 1.018");
                          values  ( \
  	                     "0.403572, 0.469116, 0.700608, 1.10533, 1.76736, 2.74596, 4.00032" \
                          )

                          }
                          cell_fall(q_delay_template) {
                          index_1 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          index_2 ("0.01, 0.02813, 0.09177, 0.2133, 0.4026, 0.6683, 1.018");
                          values  ( \
                            "11.77992, 11.83392, 11.93928, 12.132, 12.3636, 12.6372, 12.9696", \
                            "11.7894, 11.83236, 11.94768, 12.1344, 12.3744, 12.648, 12.9888", \
                            "11.81292, 11.86056, 11.9862, 12.1632, 12.3876, 12.6804, 13.0116", \
                            "11.82612, 11.88168, 12.0024, 12.1956, 12.426, 12.6972, 13.032", \
                            "11.89788, 11.9484, 12.0624, 12.2088, 12.4512, 12.7248, 13.1028", \
                            "11.93052, 11.99316, 12.0924, 12.2868, 12.5124, 12.8004, 13.1436", \
                            "11.95248, 11.99964, 12.126, 12.312, 12.5436, 12.8172, 13.1604" \
                          )
                          }
                          fall_transition(q_slew_template) {
                          index_1 ("0.01, 0.02813, 0.09177, 0.2133, 0.4026, 0.6683, 1.018");
                          values  ( \
                            "0.391908, 0.442428, 0.589992, 0.806688, 1.11565, 1.53876, 2.07324" \
                          )
                          }
                  }
          }
          pin(CLK)   {
                  direction            : input;
                  capacitance          : 0.275115;
                  clock                : true;
                  max_transition       : 3.235;
                  min_pulse_width_high : 7.41081;
                  min_pulse_width_low  : 6.1401;
                  min_period           : 14.929065;

/* 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.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                values  ("144.174, 144.174, 144.174, 144.174, 144.174, 144.174, 144.174");
              }
              fall_power(power_template) {
                index_1 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                values  ("144.174, 144.174, 144.174, 144.174, 144.174, 144.174, 144.174");
              }
             }
/* DISABLED POWER */
             internal_power() {
              when : "CEN";
              rise_power(power_template) {
                index_1 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                values  ("0.0039402, 0.0039402, 0.0039402, 0.0039402, 0.0039402, 0.0039402, 0.0039402");
              }
              fall_power(power_template) {
                index_1 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                values  ("0.0039402, 0.0039402, 0.0039402, 0.0039402, 0.0039402, 0.0039402, 0.0039402");
              }
             }
/* READ POWER */
             internal_power() {
             when : "!CEN & GWEN";
             rise_power(power_template) {
                index_1 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                values  ("130.433, 130.433, 130.433, 130.433, 130.433, 130.433, 130.433");
              }
              fall_power(power_template) {
                index_1 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                values  ("130.433, 130.433, 130.433, 130.433, 130.433, 130.433, 130.433");
              }
             }
          }

          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.0176298;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          index_2 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          values  ( \
                            "0.97372, 0.966966, 0.960938, 0.999548, 1.11119, 1.23391, 1.33507", \
                            "0.961862, 0.954899, 0.948882, 0.987492, 1.09868, 1.22186, 1.32308", \
                            "0.919534, 0.912571, 0.906543, 0.945153, 1.0564, 1.17952, 1.2807", \
                            "0.850256, 0.843403, 0.838882, 0.872971, 0.981475, 1.10449, 1.20567", \
                            "0.850003, 0.84315, 0.838629, 0.861905, 0.968022, 1.04936, 1.14661", \
                            "0.850806, 0.843095, 0.838519, 0.872652, 0.972136, 1.05164, 1.11657", \
                            "0.850014, 0.842655, 0.838134, 0.872212, 0.970607, 1.04585, 1.12376" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          index_2 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          values  ( \
                            "0.801042, 0.806366, 0.846747, 0.943008, 1.09551, 1.30265, 1.52603", \
                            "0.78925, 0.798919, 0.839278, 0.931854, 1.08469, 1.29715, 1.51393", \
                            "0.789008, 0.798644, 0.839003, 0.93159, 1.07716, 1.29689, 1.51228", \
                            "0.788821, 0.798391, 0.838816, 0.931392, 1.08423, 1.29669, 1.51217", \
                            "0.788579, 0.798116, 0.838563, 0.931128, 1.08396, 1.29644, 1.51184", \
                            "0.788491, 0.798138, 0.838497, 0.931073, 1.08391, 1.29637, 1.51184", \
                            "0.788029, 0.797698, 0.838057, 0.930622, 1.08348, 1.29593, 1.5114" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          index_2 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          values  ( \
                            "2.7423, 2.75, 2.75451, 2.72052, 2.62097, 2.54551, 2.49656", \
                            "2.7467, 2.75495, 2.75957, 2.72547, 2.62614, 2.55046, 2.50162", \
                            "2.78641, 2.79477, 2.79928, 2.76518, 2.66574, 2.59017, 2.54133", \
                            "2.87133, 2.87815, 2.88266, 2.84856, 2.74901, 2.67355, 2.62471", \
                            "2.98595, 2.99277, 2.99739, 2.97407, 2.86792, 2.78663, 2.73944", \
                            "3.13665, 3.14446, 3.14897, 3.11487, 3.01532, 2.9359, 2.8908", \
                            "3.2527, 3.26007, 3.26458, 3.23048, 3.13214, 3.0569, 3.01081" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          index_2 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          values  ( \
                            "2.80456, 2.79499, 2.75462, 2.66211, 2.50921, 2.2968, 2.08131", \
                            "2.80962, 2.79994, 2.75957, 2.66706, 2.51416, 2.30175, 2.08626", \
                            "2.84933, 2.83965, 2.79939, 2.70677, 2.56113, 2.34146, 2.12597", \
                            "2.93271, 2.92314, 2.88277, 2.79015, 2.63736, 2.42484, 2.20946", \
                            "3.04744, 3.03787, 2.99739, 2.90488, 2.75198, 2.53957, 2.32408", \
                            "3.19902, 3.18934, 3.14897, 3.05646, 2.90356, 2.69115, 2.47566", \
                            "3.31474, 3.30506, 3.26469, 3.17207, 3.01928, 2.80676, 2.59138" \
                          )
                          }
                 }
          }
          pin(GWEN)   {
                  direction            : input;
                  capacitance          : 0.0457332;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          index_2 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          values  ( \
                            "1.29814, 1.30791, 1.34013, 1.41306, 1.529, 1.66166, 1.78695", \
                            "1.28905, 1.29884, 1.331, 1.40404, 1.51767, 1.65176, 1.77782", \
                            "1.26036, 1.27056, 1.30274, 1.38061, 1.49347, 1.62426, 1.74955", \
                            "1.1834, 1.19533, 1.22762, 1.29927, 1.41603, 1.54781, 1.6731", \
                            "1.07929, 1.09002, 1.12221, 1.19516, 1.3088, 1.44375, 1.5697", \
                            "0.993894, 1.0037, 1.03587, 1.10956, 1.22806, 1.35366, 1.48269", \
                            "0.943767, 0.95381, 0.984786, 1.06266, 1.17457, 1.30634, 1.43231" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          index_2 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          values  ( \
                            "1.52911, 1.53835, 1.58543, 1.672, 1.84272, 2.07075, 2.34927", \
                            "1.52009, 1.52922, 1.57641, 1.66298, 1.83359, 2.06173, 2.34014", \
                            "1.4949, 1.49919, 1.54803, 1.64527, 1.80532, 2.03346, 2.31187", \
                            "1.41856, 1.4245, 1.47158, 1.55826, 1.72887, 1.95701, 2.23542", \
                            "1.31447, 1.32044, 1.36697, 1.45365, 1.62481, 1.85295, 2.13136", \
                            "1.22383, 1.2341, 1.2812, 1.38006, 1.53846, 1.7666, 2.04501", \
                            "1.17379, 1.18302, 1.23012, 1.32737, 1.48742, 1.71545, 1.99397" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          index_2 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          values  ( \
                            "1.84657, 1.837, 1.79751, 1.72513, 1.63988, 1.57993, 1.5345", \
                            "1.84415, 1.83458, 1.79509, 1.72282, 1.64032, 1.58191, 1.53274", \
                            "1.86307, 1.8535, 1.81401, 1.74273, 1.66298, 1.59632, 1.551", \
                            "1.88518, 1.87572, 1.83623, 1.76385, 1.68146, 1.61854, 1.57322", \
                            "1.91653, 1.90696, 1.86747, 1.7952, 1.7127, 1.64989, 1.60721", \
                            "1.97571, 1.96614, 1.92665, 1.85548, 1.7677, 1.70907, 1.6632", \
                            "1.9855, 1.97593, 1.93644, 1.86516, 1.78167, 1.71886, 1.67618" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          index_2 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          values  ( \
                            "0.950158, 0.934615, 0.888239, 0.789701, 0.639276, 0.422851, 0.16185", \
                            "0.947991, 0.928367, 0.885819, 0.787358, 0.628694, 0.420453, 0.159617", \
                            "0.971278, 0.95095, 0.904728, 0.809105, 0.653169, 0.43934, 0.178727", \
                            "0.993674, 0.971542, 0.926948, 0.828267, 0.678051, 0.461516, 0.20135", \
                            "1.02428, 1.00454, 0.958078, 0.859056, 0.709346, 0.492877, 0.232008", \
                            "1.07955, 1.06206, 1.01739, 0.9174, 0.768537, 0.552013, 0.291196", \
                            "1.08927, 1.07309, 1.02718, 0.931524, 0.778327, 0.561803, 0.300985" \
                          )
                          }
                 }
          }
          bus(WEN)   {
                  bus_type             : Q_BUS;
                  direction            : input;
                  capacitance          : 0.00723483;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          index_2 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          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.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          index_2 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          values  ( \
                            "0.483912, 0.495957, 0.549857, 0.64042, 0.794321, 1.01684, 1.27013", \
                            "0.480392, 0.494439, 0.546634, 0.636922, 0.80003, 1.01332, 1.26658", \
                            "0.465454, 0.485133, 0.535337, 0.621687, 0.786159, 1.00196, 1.25523", \
                            "0.437437, 0.455499, 0.508563, 0.599643, 0.751619, 0.976052, 1.22971", \
                            "0.405636, 0.420904, 0.473088, 0.564333, 0.715847, 0.940423, 1.19407", \
                            "0.355146, 0.367477, 0.421091, 0.511984, 0.66418, 0.887282, 1.14172", \
                            "0.344278, 0.359799, 0.410542, 0.496925, 0.652773, 0.877217, 1.13087" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          index_2 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          values  ( \
                            "1.84657, 1.837, 1.79751, 1.72513, 1.63988, 1.57993, 1.53648", \
                            "1.84415, 1.83458, 1.79509, 1.72282, 1.64032, 1.58191, 1.53703", \
                            "1.86307, 1.8535, 1.81401, 1.74273, 1.66298, 1.59632, 1.55584", \
                            "1.88518, 1.87572, 1.83623, 1.76385, 1.68146, 1.61854, 1.57806", \
                            "1.91653, 1.90696, 1.86747, 1.7952, 1.7127, 1.64989, 1.6093", \
                            "1.97571, 1.96614, 1.92665, 1.85548, 1.76814, 1.70907, 1.66859", \
                            "1.9855, 1.97593, 1.93644, 1.86516, 1.78167, 1.71886, 1.67827" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          index_2 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          values  ( \
                            "0.950158, 0.934615, 0.888239, 0.789701, 0.639276, 0.422851, 0.16185", \
                            "0.947991, 0.928367, 0.885819, 0.787358, 0.628694, 0.420453, 0.159617", \
                            "0.971278, 0.951412, 0.904728, 0.809105, 0.653169, 0.43934, 0.178727", \
                            "0.993674, 0.971542, 0.926948, 0.828267, 0.678051, 0.461516, 0.20135", \
                            "1.02428, 1.00454, 0.958078, 0.859056, 0.709346, 0.492877, 0.232008", \
                            "1.07955, 1.06206, 1.01739, 0.9174, 0.768537, 0.552013, 0.291196", \
                            "1.08927, 1.07309, 1.02718, 0.931524, 0.778327, 0.561803, 0.300985" \
                          )
                          }
                 }
          }
          bus(A)   {
                  bus_type             : A_BUS;
                  direction            : input;
                  capacitance          : 0.0379165;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          index_2 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          values  ( \
                            "1.45486, 1.45794, 1.45992, 1.49919, 1.60765, 1.75351, 1.84404", \
                            "1.46245, 1.45343, 1.45354, 1.4938, 1.60127, 1.74042, 1.84195", \
                            "1.44595, 1.44474, 1.44188, 1.48181, 1.59214, 1.73811, 1.82886", \
                            "1.42296, 1.41526, 1.41416, 1.45145, 1.57047, 1.71105, 1.80147", \
                            "1.38094, 1.37929, 1.37412, 1.42362, 1.52328, 1.67673, 1.77551", \
                            "1.33771, 1.3299, 1.33859, 1.37665, 1.48016, 1.6159, 1.7083", \
                            "1.3188, 1.32363, 1.31916, 1.35311, 1.4718, 1.61084, 1.70775" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          index_2 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          values  ( \
                            "1.87495, 1.88584, 1.92489, 1.99551, 2.16656, 2.38953, 2.61932", \
                            "1.86934, 1.88056, 1.90201, 1.98715, 2.1549, 2.38315, 2.61162", \
                            "1.85768, 1.86395, 1.9052, 1.98132, 2.13972, 2.37094, 2.60392", \
                            "1.83018, 1.84349, 1.86912, 1.95514, 2.12575, 2.34707, 2.58203", \
                            "1.79487, 1.81027, 1.84074, 1.91554, 2.08329, 2.31539, 2.54232", \
                            "1.74185, 1.75813, 1.78563, 1.87451, 2.03863, 2.25192, 2.49469", \
                            "1.73492, 1.75021, 1.77848, 1.86461, 2.0306, 2.24466, 2.48006" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          index_2 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          values  ( \
                            "0.954008, 0.962324, 0.959992, 0.903991, 0.838145, 0.797654, 0.765039", \
                            "0.964942, 0.973236, 0.970926, 0.914925, 0.853743, 0.810458, 0.775973", \
                            "1.00416, 1.01245, 1.01013, 0.953436, 0.889603, 0.847737, 0.815199", \
                            "1.07921, 1.08753, 1.08519, 1.02919, 0.968011, 0.922856, 0.890252", \
                            "1.18846, 1.19678, 1.19444, 1.13851, 1.08009, 1.03211, 0.999504", \
                            "1.31655, 1.32528, 1.32088, 1.27125, 1.21754, 1.17471, 1.14077", \
                            "1.40855, 1.41691, 1.4146, 1.35861, 1.2974, 1.25225, 1.21962" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          index_2 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          values  ( \
                            "1.03665, 1.02691, 0.987393, 0.909942, 0.838618, 0.769252, 0.72259", \
                            "1.04974, 1.03877, 0.996446, 0.920876, 0.849552, 0.780186, 0.733535", \
                            "1.08822, 1.07706, 1.03441, 0.960102, 0.888778, 0.819412, 0.772761", \
                            "1.16327, 1.15216, 1.10871, 1.03514, 0.96382, 0.894454, 0.847792", \
                            "1.27248, 1.26137, 1.21799, 1.14439, 1.07308, 1.00371, 0.957055", \
                            "1.40129, 1.3904, 1.35212, 1.27247, 1.20117, 1.1318, 1.08514", \
                            "1.49336, 1.48148, 1.44012, 1.36455, 1.2932, 1.22384, 1.17725" \
                          )
                          }
                 }
          }
          bus(D)   {
                  bus_type             : Q_BUS;
                  memory_write() {
                          address      : A;
                          clocked_on   : "CLK";
                  }
                  direction            : input;
                  capacitance          : 0.0154863;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          index_2 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          values  ( \
                            "0.98318, 0.998525, 1.0288, 1.08227, 1.09407, 1.08953, 1.04586", \
                            "0.982498, 0.985424, 1.02307, 1.07379, 1.08709, 1.08571, 1.04196", \
                            "0.970574, 0.982553, 1.01265, 1.0556, 1.07875, 1.07324, 1.02738", \
                            "0.944746, 0.952864, 0.9856, 1.03044, 1.05751, 1.04757, 1.00274", \
                            "0.909744, 0.921789, 0.961433, 0.988977, 1.02555, 1.01011, 0.967153", \
                            "0.858187, 0.879747, 0.902858, 0.957869, 0.973918, 0.956813, 0.916322", \
                            "0.851378, 0.859958, 0.902407, 0.936133, 0.964051, 0.946649, 0.91388" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          index_2 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          values  ( \
                            "0.066836, 0.06468, 0.098857, 0.203407, 0.373439, 0.597157, 0.854062", \
                            "0.062403, 0.060401, 0.094248, 0.198933, 0.368973, 0.592691, 0.850058", \
                            "0.050611, 0.047608, 0.082566, 0.187116, 0.351219, 0.580877, 0.838167", \
                            "0.026983, 0.022902, 0.056903, 0.161458, 0.325563, 0.555214, 0.812581", \
                            "0, 0, 0.021945, 0.12648, 0.2905, 0.520245, 0.777612", \
                            "0, 0, 0, 0.077121, 0.241228, 0.470965, 0.728244", \
                            "0, 0, 0, 0.067474, 0.231574, 0.46123, 0.718597" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          index_2 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          values  ( \
                            "0.832117, 0.80872, 0.782606, 0.738089, 0.71599, 0.721743, 0.770506", \
                            "0.83094, 0.819236, 0.78331, 0.736923, 0.71951, 0.720566, 0.76736", \
                            "0.842501, 0.819104, 0.79299, 0.747021, 0.725604, 0.732116, 0.781044", \
                            "0.870342, 0.859496, 0.819918, 0.776325, 0.753797, 0.759968, 0.808885", \
                            "0.904717, 0.88132, 0.855206, 0.811085, 0.782276, 0.794332, 0.84326", \
                            "0.95414, 0.938663, 0.906631, 0.854678, 0.840763, 0.865667, 0.888239", \
                            "0.966372, 0.95557, 0.91432, 0.872916, 0.849827, 0.85602, 0.90288" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          index_2 ("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235");
                          values  ( \
                            "1.42692, 1.42945, 1.39579, 1.2945, 1.12071, 0.897666, 0.643632", \
                            "1.4256, 1.42824, 1.39469, 1.29333, 1.11955, 0.896489, 0.642466", \
                            "1.43715, 1.44078, 1.40624, 1.30488, 1.1311, 0.908039, 0.654016", \
                            "1.46509, 1.46762, 1.43407, 1.33276, 1.15894, 0.935891, 0.681857", \
                            "1.4993, 1.50216, 1.46839, 1.36708, 1.19331, 0.970255, 0.716232", \
                            "1.54891, 1.55144, 1.51789, 1.41658, 1.24275, 1.01969, 0.765666", \
                            "1.56101, 1.56387, 1.5301, 1.42879, 1.25498, 1.03192, 0.777909" \
                          )
                          }
                 }
        }
          cell_leakage_power : 0.0039402;
}
}
