blob: 7e875d640968189e478824fad0cbb098875c7119 [file] [log] [blame]
/*
* 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;
}
}