/*
 * 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__sram256x8m8wm1
 *      Technology                 : GF 180nm 5V Green
 *
 *      ---------
 *      Pin name:
 *      ---------
 *      Input Pins : CLK CEN GWEN WEN[7:0] A[7: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__sram256x8m8wm1__tt_025C_5v00) {
        delay_model             : table_lookup;
        revision                : 1.0;
        date                    : "June 20, 2014";
        comment                 : "GF 180nm 5V Green";
        voltage_unit            : "1V";
        time_unit               : "1ns";
        current_unit            : "1mA";
        leakage_power_unit      : "1mW";
        nom_process             : 1;
        nom_temperature         : 25;
        nom_voltage             : 5.0;
        capacitive_load_unit    (1,pf);
        pulling_resistance_unit : "1kohm";

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

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

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

         voltage_map (VDD, 5.0);
         voltage_map (VSS, 0.00);
         operating_conditions(tt_5p0v_25C) {
                process       : 1;
                temperature   : 25;
                voltage       : 5.0;
                tree_type     : balanced_tree;
         }

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

         library_features(report_delay_calculation);

         type (A_BUS) {
                base_type : array;
                data_type : bit;
                bit_width : 8;
                bit_from  : 7;
                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__sram256x8m8wm1) {
        area             : 147212.4368;
        dont_use         : TRUE;
        dont_touch       : TRUE;
        interface_timing : TRUE;
        memory() {
                type          : ram;
                address_width : 8;
                word_width    : 8;
        }

                 bus(Q)   {
                  bus_type             : Q_BUS;
                  direction            : output;
                  max_capacitance      : 1.119;
                  memory_read() {
                        address        : A;
                  }
                  timing() {
                          related_pin  : "CLK";
                          timing_type  : rising_edge;
                          timing_sense : non_unate;
       		  when : "((!CEN) & (GWEN))";
        	  sdf_cond : "CEN== 1'b0 && GWEN== 1'b1";
                          cell_rise(q_delay_template) {
			  index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
			  index_2 ("0.01, 0.02994, 0.09995, 0.2336, 0.4419, 0.7342, 1.119");
                          values  ( \
                            "4.56924, 4.58664, 4.647, 4.74636, 4.8942, 5.0994, 5.36832", \
                            "4.5726, 4.58808, 4.65036, 4.74732, 4.8972, 5.10216, 5.3682", \
                            "4.57788, 4.5966, 4.65096, 4.75116, 4.90224, 5.1084, 5.37408", \
                            "4.58376, 4.60212, 4.66188, 4.761, 4.911, 5.11476, 5.38416", \
                            "4.59036, 4.6062, 4.66932, 4.76688, 4.91916, 5.121, 5.39028", \
                            "4.59924, 4.61844, 4.67292, 4.77552, 4.91916, 5.12604, 5.39652", \
                            "4.58808, 4.6104, 4.66632, 4.76412, 4.91076, 5.11704, 5.38512" \
                          )
                          }
                          rise_transition(q_slew_template) {
                          index_1 ("0.01, 0.02994, 0.09995, 0.2336, 0.4419, 0.7342, 1.119");
                          values  ( \
  	                     "0.16728, 0.193944, 0.293448, 0.47322, 0.760944, 1.18441, 1.73928" \
                          )

                          }
                          cell_fall(q_delay_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.01, 0.02994, 0.09995, 0.2336, 0.4419, 0.7342, 1.119");
                          values  ( \
                            "4.71576, 4.73436, 4.79244, 4.88376, 5.0052, 5.15532, 5.35128", \
                            "4.7178, 4.73592, 4.7952, 4.88532, 5.00844, 5.16204, 5.34984", \
                            "4.72368, 4.74216, 4.79928, 4.88916, 5.0124, 5.16552, 5.3568", \
                            "4.72848, 4.7508, 4.80864, 4.8996, 5.01948, 5.1726, 5.36388", \
                            "4.73496, 4.755, 4.81572, 4.90644, 5.03088, 5.17776, 5.37192", \
                            "4.74444, 4.7658, 4.82196, 4.9146, 5.0298, 5.18496, 5.37792", \
                            "4.73496, 4.75788, 4.81104, 4.90116, 5.02224, 5.17548, 5.36976" \
                          )
                          }
                          fall_transition(q_slew_template) {
                          index_1 ("0.01, 0.02994, 0.09995, 0.2336, 0.4419, 0.7342, 1.119");
                          values  ( \
                            "0.175236, 0.196392, 0.263148, 0.378876, 0.5466, 0.788136, 1.10702" \
                          )
                          }
                  }
          }
          pin(CLK)   {
                  direction            : input;
                  capacitance          : 0.298056;
                  clock                : true;
                  max_transition       : 1.547;
                  min_pulse_width_high : 2.6907;
                  min_pulse_width_low  : 2.666055;
                  min_period           : 6.11805;

/* WRITE POWER */
             internal_power() {
              when : "!CEN & !GWEN & (!WEN[0] | !WEN[1] | !WEN[2] | !WEN[3] | !WEN[4] | !WEN[5] | !WEN[6] | !WEN[7])";
              rise_power(power_template) {
                index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                values  ("939.625, 939.625, 939.625, 939.625, 939.625, 939.625, 939.625");
              }
              fall_power(power_template) {
                index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                values  ("939.625, 939.625, 939.625, 939.625, 939.625, 939.625, 939.625");
              }
             }
/* DISABLED POWER */
             internal_power() {
              when : "CEN";
              rise_power(power_template) {
                index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                values  ("0.000343015, 0.000343015, 0.000343015, 0.000343015, 0.000343015, 0.000343015, 0.000343015");
              }
              fall_power(power_template) {
                index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                values  ("0.000343015, 0.000343015, 0.000343015, 0.000343015, 0.000343015, 0.000343015, 0.000343015");
              }
             }
/* READ POWER */
             internal_power() {
             when : "!CEN & GWEN";
             rise_power(power_template) {
                index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                values  ("841.225, 841.225, 841.225, 841.225, 841.225, 841.225, 841.225");
              }
              fall_power(power_template) {
                index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                values  ("841.225, 841.225, 841.225, 841.225, 841.225, 841.225, 841.225");
              }
             }
          }

          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.0182857;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "0.435039, 0.43054, 0.423115, 0.429814, 0.454465, 0.485716, 0.522511", \
                            "0.433994, 0.429308, 0.422136, 0.429077, 0.45342, 0.485859, 0.516164", \
                            "0.432421, 0.429264, 0.421146, 0.428054, 0.448701, 0.474155, 0.507628", \
                            "0.431508, 0.428241, 0.420816, 0.427867, 0.452199, 0.474276, 0.488114", \
                            "0.431926, 0.427966, 0.420651, 0.427515, 0.448107, 0.473935, 0.493053", \
                            "0.432553, 0.42746, 0.420079, 0.427229, 0.451572, 0.473649, 0.484836", \
                            "0.432366, 0.428186, 0.420123, 0.425447, 0.451396, 0.473143, 0.490556" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "0.406043, 0.407836, 0.418022, 0.444125, 0.495627, 0.558151, 0.627693", \
                            "0.40491, 0.407033, 0.416977, 0.443168, 0.494659, 0.555731, 0.626714", \
                            "0.403579, 0.406153, 0.415976, 0.442134, 0.493119, 0.556094, 0.62414", \
                            "0.404558, 0.405812, 0.415778, 0.441892, 0.493405, 0.554532, 0.625438", \
                            "0.403425, 0.405493, 0.415415, 0.441584, 0.49302, 0.555555, 0.625086", \
                            "0.40293, 0.405218, 0.415151, 0.441991, 0.491645, 0.555269, 0.624811", \
                            "0.402787, 0.405064, 0.414975, 0.441012, 0.491502, 0.555093, 0.623139" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "1.10807, 1.11256, 1.12, 1.11329, 1.08865, 1.07075, 1.04697", \
                            "1.114, 1.11869, 1.12586, 1.11892, 1.09458, 1.07467, 1.05867", \
                            "1.12508, 1.12824, 1.13636, 1.12945, 1.1088, 1.08335, 1.06281", \
                            "1.1552, 1.15848, 1.1659, 1.15885, 1.13452, 1.11243, 1.0986", \
                            "1.19611, 1.20007, 1.20737, 1.20052, 1.17992, 1.1541, 1.13497", \
                            "1.2305, 1.23559, 1.24298, 1.23582, 1.21147, 1.1894, 1.17821", \
                            "1.25854, 1.26273, 1.27083, 1.26544, 1.23952, 1.21778, 1.20129" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "1.13707, 1.13528, 1.12508, 1.09898, 1.04749, 0.984951, 0.91542", \
                            "1.14309, 1.14098, 1.13102, 1.10483, 1.05334, 0.992266, 0.921283", \
                            "1.15392, 1.15135, 1.14153, 1.11536, 1.06438, 1.00141, 0.933361", \
                            "1.18216, 1.18089, 1.17094, 1.14483, 1.09331, 1.03219, 0.961279", \
                            "1.22461, 1.22254, 1.21261, 1.18645, 1.13501, 1.07248, 1.00295", \
                            "1.26012, 1.25784, 1.24789, 1.22106, 1.1714, 1.10778, 1.03825", \
                            "1.2881, 1.2859, 1.276, 1.24991, 1.19942, 1.13583, 1.06778" \
                          )
                          }
                 }
          }
          pin(GWEN)   {
                  direction            : input;
                  capacitance          : 0.0494975;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "0.59026, 0.593956, 0.60588, 0.633644, 0.678403, 0.734525, 0.790658", \
                            "0.588511, 0.592196, 0.603867, 0.631961, 0.676654, 0.733403, 0.789767", \
                            "0.575058, 0.579766, 0.591668, 0.619311, 0.664169, 0.721083, 0.775533", \
                            "0.549054, 0.553718, 0.5654, 0.593329, 0.638209, 0.6952, 0.749793", \
                            "0.506539, 0.510169, 0.521928, 0.549802, 0.594605, 0.651376, 0.705078", \
                            "0.466862, 0.471548, 0.4829, 0.511115, 0.555973, 0.612964, 0.667788", \
                            "0.430166, 0.434654, 0.446182, 0.47443, 0.519288, 0.576312, 0.630322" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "0.628111, 0.631158, 0.649693, 0.68926, 0.756932, 0.846945, 0.951995", \
                            "0.625702, 0.62964, 0.647757, 0.687918, 0.755348, 0.845064, 0.95062", \
                            "0.613855, 0.617177, 0.63547, 0.675037, 0.741048, 0.832722, 0.937783", \
                            "0.586729, 0.591074, 0.609301, 0.647911, 0.716683, 0.806564, 0.912582", \
                            "0.543499, 0.547712, 0.565785, 0.604329, 0.673277, 0.763037, 0.868307", \
                            "0.504691, 0.508871, 0.527098, 0.565323, 0.634777, 0.724636, 0.829928", \
                            "0.468633, 0.472274, 0.49038, 0.528935, 0.597927, 0.687654, 0.793144" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "0.846736, 0.845548, 0.833822, 0.807598, 0.777843, 0.751652, 0.73326", \
                            "0.850333, 0.849035, 0.837496, 0.811305, 0.781396, 0.755766, 0.736901", \
                            "0.850223, 0.84964, 0.837474, 0.81103, 0.781495, 0.755865, 0.737022", \
                            "0.855921, 0.855756, 0.843557, 0.817212, 0.787446, 0.761728, 0.742874", \
                            "0.865766, 0.865271, 0.853083, 0.826672, 0.79673, 0.771045, 0.752708", \
                            "0.86845, 0.86724, 0.855756, 0.829455, 0.799601, 0.773971, 0.755106", \
                            "0.862741, 0.861322, 0.849871, 0.823559, 0.793705, 0.768064, 0.748704" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "0.475178, 0.471449, 0.452903, 0.410696, 0.344223, 0.26255, 0.159353", \
                            "0.480084, 0.474012, 0.455334, 0.413985, 0.348403, 0.266961, 0.162017", \
                            "0.477565, 0.473605, 0.455906, 0.413941, 0.348975, 0.265719, 0.160392", \
                            "0.484011, 0.479853, 0.461582, 0.421256, 0.355124, 0.272941, 0.169489", \
                            "0.493284, 0.489808, 0.471097, 0.430573, 0.364309, 0.2794, 0.177078", \
                            "0.51986, 0.515108, 0.496705, 0.458843, 0.3872, 0.298661, 0.199863", \
                            "0.574486, 0.570229, 0.552299, 0.513513, 0.443003, 0.35508, 0.255575" \
                          )
                          }
                 }
          }
          bus(WEN)   {
                  bus_type             : Q_BUS;
                  direction            : input;
                  capacitance          : 0.00784667;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "0, 0, 0, 0, 0, 0, 0", \
                            "0, 0, 0, 0, 0, 0, 0", \
                            "0, 0, 0, 0, 0, 0, 0", \
                            "0, 0, 0, 0, 0, 0, 0", \
                            "0, 0, 0, 0, 0, 0, 0", \
                            "0, 0, 0, 0, 0, 0, 0", \
                            "0, 0, 0, 0, 0, 0, 0" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "0.255199, 0.259273, 0.277871, 0.319352, 0.384956, 0.467346, 0.570658", \
                            "0.248316, 0.255679, 0.273519, 0.315436, 0.379676, 0.461428, 0.566852", \
                            "0.251206, 0.255124, 0.272809, 0.315337, 0.379698, 0.462836, 0.568304", \
                            "0.245983, 0.250582, 0.268654, 0.308847, 0.375397, 0.456104, 0.560967", \
                            "0.236476, 0.240114, 0.25853, 0.298551, 0.365376, 0.44902, 0.552475", \
                            "0.232035, 0.236233, 0.255134, 0.294943, 0.362582, 0.444587, 0.547316", \
                            "0.234754, 0.242908, 0.260467, 0.300751, 0.368522, 0.452265, 0.554884" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "0.846736, 0.845548, 0.834251, 0.808423, 0.777843, 0.751652, 0.73326", \
                            "0.850333, 0.849035, 0.837749, 0.811921, 0.781396, 0.755766, 0.736901", \
                            "0.850223, 0.84964, 0.837749, 0.811921, 0.781495, 0.755865, 0.737022", \
                            "0.855921, 0.855756, 0.8437, 0.817872, 0.787446, 0.761728, 0.742874", \
                            "0.865766, 0.865271, 0.853083, 0.826881, 0.79673, 0.771045, 0.752708", \
                            "0.86845, 0.86724, 0.855943, 0.830115, 0.799601, 0.773971, 0.755106", \
                            "0.862741, 0.861322, 0.850014, 0.824186, 0.793705, 0.768064, 0.748704" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "0.475178, 0.471449, 0.452903, 0.411895, 0.344784, 0.262831, 0.159353", \
                            "0.48026, 0.474232, 0.455873, 0.415877, 0.349316, 0.268338, 0.162017", \
                            "0.477565, 0.473979, 0.455906, 0.41459, 0.348975, 0.265719, 0.160392", \
                            "0.484011, 0.479853, 0.461582, 0.422323, 0.355124, 0.274344, 0.169489", \
                            "0.493944, 0.489808, 0.471097, 0.431629, 0.364309, 0.2794, 0.177078", \
                            "0.496837, 0.492591, 0.473682, 0.434445, 0.365838, 0.28424, 0.180464", \
                            "0.493526, 0.487025, 0.46794, 0.428692, 0.360217, 0.276254, 0.173187" \
                          )
                          }
                 }
          }
          bus(A)   {
                  bus_type             : A_BUS;
                  direction            : input;
                  capacitance          : 0.0404163;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "0.514866, 0.51073, 0.505769, 0.511808, 0.547426, 0.58674, 0.621632", \
                            "0.510818, 0.506671, 0.501897, 0.511709, 0.542883, 0.583121, 0.615648", \
                            "0.511302, 0.505835, 0.500544, 0.50974, 0.542168, 0.581658, 0.616121", \
                            "0.505076, 0.49973, 0.495715, 0.504823, 0.53746, 0.577478, 0.611006", \
                            "0.494989, 0.491425, 0.485474, 0.494461, 0.527098, 0.56683, 0.600765", \
                            "0.493042, 0.487817, 0.482383, 0.491645, 0.523798, 0.563178, 0.598246", \
                            "0.496848, 0.494307, 0.488235, 0.496584, 0.529793, 0.568348, 0.60357" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "0.682451, 0.683661, 0.692549, 0.722414, 0.775192, 0.847814, 0.933724", \
                            "0.678051, 0.677754, 0.689535, 0.718025, 0.771969, 0.843667, 0.928015", \
                            "0.677391, 0.679305, 0.690745, 0.71764, 0.77187, 0.841643, 0.927212", \
                            "0.671242, 0.6743, 0.68563, 0.713152, 0.765666, 0.837584, 0.922416", \
                            "0.659956, 0.664323, 0.674278, 0.70224, 0.753588, 0.826254, 0.916047", \
                            "0.658856, 0.660088, 0.670186, 0.698423, 0.752114, 0.823757, 0.909755", \
                            "0.664059, 0.667348, 0.676357, 0.705628, 0.756514, 0.828982, 0.916146" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "0.535073, 0.538538, 0.541244, 0.539121, 0.539022, 0.537922, 0.536657", \
                            "0.538714, 0.542278, 0.544874, 0.542762, 0.542663, 0.541552, 0.540287", \
                            "0.551364, 0.554961, 0.557799, 0.555797, 0.555445, 0.554213, 0.55308", \
                            "0.57409, 0.577555, 0.580261, 0.578138, 0.578039, 0.576939, 0.575674", \
                            "0.617166, 0.620928, 0.623524, 0.621654, 0.621302, 0.620202, 0.618937", \
                            "0.65901, 0.66264, 0.665291, 0.663421, 0.663069, 0.661969, 0.660704", \
                            "0.694265, 0.696927, 0.700436, 0.698324, 0.698225, 0.697114, 0.69586" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "0.547503, 0.544995, 0.532411, 0.516538, 0.515867, 0.520652, 0.528759", \
                            "0.551133, 0.54846, 0.536041, 0.520377, 0.519255, 0.524282, 0.533148", \
                            "0.563508, 0.561253, 0.548834, 0.532939, 0.53229, 0.537075, 0.545941", \
                            "0.58652, 0.583847, 0.571637, 0.555566, 0.554642, 0.559669, 0.567776", \
                            "0.629541, 0.627121, 0.614691, 0.598829, 0.597905, 0.602932, 0.609136", \
                            "0.671528, 0.668877, 0.656469, 0.640794, 0.639914, 0.644688, 0.652047", \
                            "0.706673, 0.704033, 0.691823, 0.675741, 0.674817, 0.679844, 0.68871" \
                          )
                          }
                 }
          }
          bus(D)   {
                  bus_type             : Q_BUS;
                  memory_write() {
                          address      : A;
                          clocked_on   : "CLK";
                  }
                  direction            : input;
                  capacitance          : 0.0164131;
                  timing() {
                          related_pin  : CLK;
                          timing_type  : setup_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "0.474419, 0.479633, 0.488642, 0.500786, 0.496551, 0.476663, 0.440737", \
                            "0.470976, 0.474892, 0.486244, 0.496507, 0.491513, 0.474903, 0.435666", \
                            "0.470426, 0.473484, 0.484924, 0.494186, 0.491579, 0.473253, 0.433103", \
                            "0.466158, 0.469172, 0.479127, 0.490204, 0.485254, 0.469876, 0.430111", \
                            "0.45452, 0.459778, 0.468688, 0.479655, 0.475343, 0.459019, 0.421234", \
                            "0.451539, 0.454652, 0.466499, 0.477114, 0.473165, 0.455213, 0.416702", \
                            "0.456368, 0.463177, 0.471493, 0.483725, 0.478764, 0.459943, 0.423368" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "0.107906, 0.109314, 0.127823, 0.177889, 0.255253, 0.356895, 0.487179", \
                            "0.106632, 0.105019, 0.123577, 0.173342, 0.251109, 0.352693, 0.483021", \
                            "0.106043, 0.105075, 0.122597, 0.172909, 0.251257, 0.351637, 0.482053", \
                            "0.100623, 0.0997975, 0.117819, 0.16848, 0.246239, 0.347589, 0.477015", \
                            "0.0897655, 0.0887315, 0.10696, 0.158502, 0.235754, 0.336644, 0.466356", \
                            "0.0873928, 0.0860497, 0.104257, 0.154325, 0.23267, 0.333542, 0.463661", \
                            "0.0933174, 0.0913374, 0.110183, 0.158814, 0.238382, 0.339768, 0.469051" \
                          )
                          }
                  }
                  timing() {
                          related_pin     : CLK;
                          timing_type     : hold_rising;
                          rise_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "0.469887, 0.463903, 0.454773, 0.444092, 0.44748, 0.466136, 0.502898", \
                            "0.471746, 0.468677, 0.45925, 0.449207, 0.451363, 0.470041, 0.509245", \
                            "0.47399, 0.471196, 0.459492, 0.448822, 0.452397, 0.469491, 0.506979", \
                            "0.479303, 0.476267, 0.46541, 0.453189, 0.457798, 0.475684, 0.515108", \
                            "0.490358, 0.486838, 0.475233, 0.464772, 0.467456, 0.486035, 0.522951", \
                            "0.491502, 0.490094, 0.478632, 0.467555, 0.471306, 0.488796, 0.527395", \
                            "0.486409, 0.481877, 0.472681, 0.462143, 0.46552, 0.483989, 0.521884" \
                          )
                          }
                          fall_constraint(constraint_template) {
                          index_1 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          index_2 ("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547");
                          values  ( \
                            "0.658955, 0.659527, 0.641311, 0.591547, 0.513392, 0.411917, 0.283426", \
                            "0.662486, 0.664224, 0.645964, 0.596233, 0.518045, 0.416658, 0.288079", \
                            "0.662508, 0.664202, 0.645997, 0.596266, 0.517594, 0.416603, 0.287969", \
                            "0.668162, 0.669702, 0.651629, 0.601898, 0.52371, 0.422235, 0.293744", \
                            "0.678392, 0.680526, 0.661947, 0.612216, 0.534028, 0.432564, 0.304062", \
                            "0.681362, 0.682792, 0.664741, 0.61501, 0.536349, 0.435347, 0.306856", \
                            "0.675884, 0.677589, 0.659351, 0.60962, 0.531432, 0.429957, 0.301466" \
                          )
                          }
                 }
        }
          cell_leakage_power : 0.000343015;
}
}
