blob: 39e63292eea1ad5cf47d3d0d6ea3850d27510c9f [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_n40C_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 : -40;
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 : 2.315;
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_m40C) {
process : 1;
temperature : -40;
voltage : 1.98;
tree_type : balanced_tree;
}
default_operating_conditions : ff_1p98v_m40C;
wire_load("Estimate") {
resistance : 1.44e-05;
capacitance : 0.00018;
area : 1.7;
slope : 500;
fanout_length (1,500);
}
power_lut_template(power_template) {
variable_1 : input_transition_time;
index_1 ("1001, 1002, 1003, 1004, 1005, 1006, 1007");
}
lu_table_template(q_delay_template) {
variable_1 : input_net_transition;
variable_2 : total_output_net_capacitance;
index_1 ("1001, 1002, 1003, 1004, 1005, 1006, 1007");
index_2 ("1001, 1002, 1003, 1004, 1005, 1006, 1007");
}
lu_table_template(q_slew_template) {
variable_1 : total_output_net_capacitance;
index_1 ("1001, 1002, 1003, 1004, 1005, 1006, 1007");
}
lu_table_template(constraint_template) {
variable_1 : related_pin_transition;
variable_2 : constrained_pin_transition;
index_1 ("1001, 1002, 1003, 1004, 1005, 1006, 1007");
index_2 ("1001, 1002, 1003, 1004, 1005, 1006, 1007");
}
library_features(report_delay_calculation);
type (A_BUS) {
base_type : array;
data_type : bit;
bit_width : 9;
bit_from : 8;
bit_to : 0;
downto : true;
}
type (Q_BUS) {
base_type : array;
data_type : bit;
bit_width : 8;
bit_from : 7;
bit_to : 0;
downto : true;
}
cell(gf180mcu_fd_ip_sram__sram512x8m8wm1) {
area : 209400.2768;
dont_use : TRUE;
dont_touch : TRUE;
interface_timing : TRUE;
memory() {
type : ram;
address_width : 9;
word_width : 8;
}
bus(Q) {
bus_type : Q_BUS;
direction : output;
max_capacitance : 0.973;
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.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
index_2 ("0.01, 0.02732, 0.08813, 0.2042, 0.3851, 0.639, 0.973");
values ( \
"8.32344, 8.36412, 8.4588, 8.63556, 8.89152, 9.22644, 9.69096", \
"8.32752, 8.37204, 8.45436, 8.63988, 8.89728, 9.23832, 9.68868", \
"8.34672, 8.39004, 8.48556, 8.667, 8.9118, 9.24972, 9.714", \
"8.39352, 8.43576, 8.52852, 8.7078, 8.95632, 9.31824, 9.75708", \
"8.46156, 8.49384, 8.59368, 8.7732, 9.01728, 9.37224, 9.8262", \
"8.52972, 8.56968, 8.66472, 8.82708, 9.08508, 9.441, 9.8856", \
"8.56452, 8.59848, 8.70576, 8.8668, 9.12276, 9.47472, 9.92988" \
)
}
rise_transition(q_slew_template) {
index_1 ("0.01, 0.02732, 0.08813, 0.2042, 0.3851, 0.639, 0.973");
values ( \
"0.257448, 0.303864, 0.462312, 0.736788, 1.18348, 1.84908, 2.71752" \
)
}
cell_fall(q_delay_template) {
index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
index_2 ("0.01, 0.02732, 0.08813, 0.2042, 0.3851, 0.639, 0.973");
values ( \
"8.70156, 8.7312, 8.81808, 8.94612, 9.10632, 9.29472, 9.53736", \
"8.69748, 8.7396, 8.8164, 8.94816, 9.1194, 9.29724, 9.53964", \
"8.72364, 8.7636, 8.841, 8.98044, 9.12624, 9.32004, 9.55836", \
"8.77056, 8.8038, 8.8866, 9.02316, 9.17616, 9.37572, 9.60816", \
"8.83272, 8.86884, 8.94756, 9.084, 9.23388, 9.43788, 9.67344", \
"8.89908, 8.934, 9.02136, 9.14064, 9.30348, 9.50292, 9.73212", \
"8.9352, 8.96928, 9.0588, 9.18, 9.342, 9.53484, 9.77328" \
)
}
fall_transition(q_slew_template) {
index_1 ("0.01, 0.02732, 0.08813, 0.2042, 0.3851, 0.639, 0.973");
values ( \
"0.253248, 0.293364, 0.384828, 0.52242, 0.726192, 1.01678, 1.38084" \
)
}
}
}
pin(CLK) {
direction : input;
capacitance : 0.270218;
clock : true;
max_transition : 2.315;
min_pulse_width_high : 4.25379;
min_pulse_width_low : 4.340025;
min_period : 10.94493;
/* 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.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
values ("133.709, 133.709, 133.709, 133.709, 133.709, 133.709, 133.709");
}
fall_power(power_template) {
index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
values ("133.709, 133.709, 133.709, 133.709, 133.709, 133.709, 133.709");
}
}
/* DISABLED POWER */
internal_power() {
when : "CEN";
rise_power(power_template) {
index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
values ("9.73823e-05, 9.73823e-05, 9.73823e-05, 9.73823e-05, 9.73823e-05, 9.73823e-05, 9.73823e-05");
}
fall_power(power_template) {
index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
values ("9.73823e-05, 9.73823e-05, 9.73823e-05, 9.73823e-05, 9.73823e-05, 9.73823e-05, 9.73823e-05");
}
}
/* READ POWER */
internal_power() {
when : "!CEN & GWEN";
rise_power(power_template) {
index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
values ("121.344, 121.344, 121.344, 121.344, 121.344, 121.344, 121.344");
}
fall_power(power_template) {
index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
values ("121.344, 121.344, 121.344, 121.344, 121.344, 121.344, 121.344");
}
}
}
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.0171529;
timing() {
related_pin : CLK;
timing_type : setup_rising;
rise_constraint(constraint_template) {
index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
values ( \
"0.796862, 0.790702, 0.789459, 0.834702, 0.938432, 1.09252, 1.24307", \
"0.788799, 0.780835, 0.779592, 0.824835, 0.928576, 1.08266, 1.24044", \
"0.754523, 0.748363, 0.746911, 0.792363, 0.896104, 1.05018, 1.20074", \
"0.70873, 0.700777, 0.697191, 0.742511, 0.837507, 0.98571, 1.13658", \
"0.708059, 0.699666, 0.698819, 0.742313, 0.83732, 0.96888, 1.07416", \
"0.707905, 0.700447, 0.698643, 0.742159, 0.837177, 0.968715, 1.05642", \
"0.708026, 0.700568, 0.698764, 0.742269, 0.837287, 0.968836, 1.06705" \
)
}
fall_constraint(constraint_template) {
index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
values ( \
"0.654852, 0.662068, 0.691625, 0.762399, 0.88308, 1.05601, 1.2593", \
"0.651981, 0.657701, 0.688875, 0.758406, 0.879626, 1.05295, 1.24945", \
"0.651585, 0.657283, 0.688534, 0.758065, 0.879296, 1.0526, 1.24892", \
"0.651244, 0.656953, 0.688149, 0.757724, 0.878944, 1.05227, 1.24858", \
"0.651068, 0.656777, 0.687973, 0.757548, 0.878779, 1.0521, 1.24841", \
"0.650914, 0.656623, 0.687863, 0.757394, 0.878603, 1.05193, 1.24825", \
"0.65109, 0.656744, 0.687973, 0.757515, 0.878724, 1.05205, 1.24838" \
)
}
}
timing() {
related_pin : CLK;
timing_type : hold_rising;
rise_constraint(constraint_template) {
index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
values ( \
"2.00079, 2.00651, 2.00827, 1.96482, 1.86978, 1.73822, 1.65055", \
"2.00585, 2.01333, 2.0152, 1.97164, 1.8766, 1.74504, 1.64681", \
"2.03709, 2.04292, 2.04688, 2.00123, 1.90619, 1.77463, 1.68696", \
"2.10386, 2.11178, 2.11541, 2.07009, 1.97505, 1.8436, 1.75582", \
"2.20946, 2.21782, 2.2187, 2.17514, 2.08021, 1.94865, 1.86087", \
"2.34718, 2.35466, 2.35642, 2.31297, 2.21793, 2.08637, 1.9987", \
"2.47852, 2.486, 2.48787, 2.44431, 2.34927, 2.21771, 2.11948" \
)
}
fall_constraint(constraint_template) {
index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
values ( \
"2.05601, 2.05029, 2.01916, 1.94953, 1.82831, 1.65506, 1.45871", \
"2.06283, 2.05711, 2.02598, 1.95646, 1.83524, 1.66188, 1.46553", \
"2.09242, 2.0867, 2.05546, 1.98594, 1.86472, 1.69136, 1.49512", \
"2.16139, 2.15567, 2.12443, 2.05491, 1.93369, 1.76033, 1.56398", \
"2.26644, 2.26072, 2.22948, 2.15996, 2.03874, 1.86538, 1.66903", \
"2.40416, 2.39844, 2.3672, 2.29768, 2.17646, 2.00321, 1.80686", \
"2.5355, 2.52989, 2.49865, 2.42913, 2.30791, 2.13455, 1.9382" \
)
}
}
}
pin(GWEN) {
direction : input;
capacitance : 0.0440073;
timing() {
related_pin : CLK;
timing_type : setup_rising;
rise_constraint(constraint_template) {
index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
values ( \
"1.00473, 1.01448, 1.04632, 1.1077, 1.20421, 1.3186, 1.42758", \
"0.990517, 0.999614, 1.03235, 1.09344, 1.18996, 1.30353, 1.41339", \
"0.963303, 0.971619, 1.00511, 1.06623, 1.16274, 1.27713, 1.38611", \
"0.90904, 0.917367, 0.950884, 1.01198, 1.10849, 1.22288, 1.33188", \
"0.818334, 0.828146, 0.860277, 0.921371, 1.01788, 1.13227, 1.24128", \
"0.73469, 0.744425, 0.776523, 0.837507, 0.934142, 1.04852, 1.15753", \
"0.674201, 0.682363, 0.716023, 0.777117, 0.873631, 0.987206, 1.09864" \
)
}
fall_constraint(constraint_template) {
index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
values ( \
"1.19323, 1.19202, 1.23745, 1.31388, 1.4487, 1.62426, 1.83887", \
"1.17362, 1.17772, 1.21962, 1.29963, 1.43528, 1.60996, 1.82468", \
"1.15176, 1.15058, 1.19244, 1.27241, 1.408, 1.58279, 1.7974", \
"1.09738, 1.09634, 1.1392, 1.21814, 1.353, 1.52856, 1.74317", \
"1.00156, 1.00569, 1.04756, 1.12756, 1.26326, 1.43792, 1.65253", \
"0.923164, 0.92191, 0.96382, 1.04381, 1.17868, 1.35421, 1.56882", \
"0.862521, 0.861432, 0.903298, 0.98329, 1.11814, 1.29366, 1.50832" \
)
}
}
timing() {
related_pin : CLK;
timing_type : hold_rising;
rise_constraint(constraint_template) {
index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
values ( \
"1.37621, 1.3673, 1.3354, 1.2775, 1.19979, 1.13379, 1.08314", \
"1.38149, 1.37379, 1.34068, 1.28277, 1.20506, 1.13905, 1.08684", \
"1.40294, 1.39634, 1.36213, 1.3042, 1.2265, 1.16049, 1.10985", \
"1.44309, 1.43649, 1.40184, 1.34431, 1.26664, 1.19945, 1.14939", \
"1.4916, 1.48269, 1.45079, 1.39282, 1.31516, 1.24915, 1.19851", \
"1.54495, 1.53604, 1.50403, 1.44617, 1.36851, 1.30249, 1.25183", \
"1.58851, 1.58191, 1.5477, 1.48984, 1.41218, 1.34618, 1.29549" \
)
}
fall_constraint(constraint_template) {
index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
values ( \
"0.744667, 0.729619, 0.693209, 0.609488, 0.484583, 0.310115, 0.112004", \
"0.7491, 0.734932, 0.698346, 0.614724, 0.489225, 0.315402, 0.117275", \
"0.771386, 0.756283, 0.72116, 0.636163, 0.510653, 0.33682, 0.138703", \
"0.811514, 0.795278, 0.758824, 0.675466, 0.550154, 0.377003, 0.177661", \
"0.860035, 0.844943, 0.808434, 0.724812, 0.599291, 0.425491, 0.227365", \
"0.91322, 0.898282, 0.861784, 0.778151, 0.653191, 0.47872, 0.280698", \
"0.956791, 0.941919, 0.905421, 0.82181, 0.695431, 0.522478, 0.324347" \
)
}
}
}
bus(WEN) {
bus_type : Q_BUS;
direction : input;
capacitance : 0.00700372;
timing() {
related_pin : CLK;
timing_type : setup_rising;
rise_constraint(constraint_template) {
index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
values ( \
"0, 0, 0, 0, 0, 0.04389, 0.100034", \
"0, 0, 0, 0, 0, 0.039347, 0.095491", \
"0, 0, 0, 0, 0, 0.016918, 0.073062", \
"0, 0, 0, 0, 0, 0, 0.036399", \
"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.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
values ( \
"0.428637, 0.43945, 0.480568, 0.558976, 0.687379, 0.862092, 1.06198", \
"0.424017, 0.435831, 0.476146, 0.554642, 0.683045, 0.857439, 1.0574", \
"0.40447, 0.413468, 0.452749, 0.532191, 0.660616, 0.83512, 1.03501", \
"0.367807, 0.376739, 0.416966, 0.495407, 0.624866, 0.798347, 0.998294", \
"0.318663, 0.327441, 0.368093, 0.446611, 0.575619, 0.749419, 0.949366", \
"0.263427, 0.275139, 0.315369, 0.393855, 0.520894, 0.69696, 0.896665", \
"0.216347, 0.228456, 0.268677, 0.347182, 0.476597, 0.650276, 0.850014" \
)
}
}
timing() {
related_pin : CLK;
timing_type : hold_rising;
rise_constraint(constraint_template) {
index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
values ( \
"1.37863, 1.3695, 1.33969, 1.27896, 1.20377, 1.13379, 1.08314", \
"1.38391, 1.37478, 1.34497, 1.28424, 1.20905, 1.13905, 1.08684", \
"1.40602, 1.39689, 1.36708, 1.30632, 1.23114, 1.16049, 1.10985", \
"1.44551, 1.43649, 1.40657, 1.34574, 1.27061, 1.19945, 1.14939", \
"1.49402, 1.48489, 1.45508, 1.39425, 1.31912, 1.24915, 1.19851", \
"1.54737, 1.53824, 1.50832, 1.4476, 1.37247, 1.30249, 1.25183", \
"1.59104, 1.58191, 1.5521, 1.49127, 1.41614, 1.34618, 1.29549" \
)
}
fall_constraint(constraint_template) {
index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
values ( \
"0.744667, 0.729619, 0.693209, 0.609488, 0.484583, 0.310115, 0.112608", \
"0.7491, 0.734932, 0.698346, 0.614724, 0.489225, 0.315402, 0.117886", \
"0.771386, 0.756283, 0.7216, 0.636614, 0.511115, 0.33682, 0.140045", \
"0.811514, 0.795278, 0.759649, 0.675873, 0.551045, 0.377003, 0.179424", \
"0.860035, 0.844943, 0.808434, 0.724812, 0.599291, 0.425491, 0.227939", \
"0.91322, 0.898282, 0.861784, 0.778151, 0.653191, 0.47872, 0.28128", \
"0.956791, 0.941919, 0.905421, 0.82181, 0.695431, 0.522478, 0.32496" \
)
}
}
}
bus(A) {
bus_type : A_BUS;
direction : input;
capacitance : 0.0374395;
timing() {
related_pin : CLK;
timing_type : setup_rising;
rise_constraint(constraint_template) {
index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
values ( \
"1.19772, 1.18879, 1.19165, 1.23798, 1.34695, 1.48566, 1.65165", \
"1.1918, 1.18043, 1.18593, 1.23432, 1.33441, 1.4773, 1.64483", \
"1.16417, 1.16099, 1.1593, 1.20515, 1.3136, 1.45299, 1.62261", \
"1.12538, 1.1236, 1.12644, 1.17422, 1.28241, 1.42318, 1.5906", \
"1.08009, 1.0767, 1.07668, 1.12747, 1.23013, 1.36972, 1.53582", \
"1.03065, 1.01886, 1.0211, 1.06901, 1.18004, 1.31804, 1.48302", \
"0.984786, 0.977295, 0.981794, 1.03771, 1.13302, 1.26979, 1.43935" \
)
}
fall_constraint(constraint_template) {
index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
values ( \
"1.48258, 1.49094, 1.52856, 1.59093, 1.71072, 1.8843, 2.10958", \
"1.48522, 1.49237, 1.52471, 1.58466, 1.70313, 1.88078, 2.10815", \
"1.45739, 1.45882, 1.49589, 1.55793, 1.67992, 1.85625, 2.0768", \
"1.42098, 1.42593, 1.46443, 1.5301, 1.64439, 1.82512, 2.04952", \
"1.37555, 1.38072, 1.41284, 1.47741, 1.60083, 1.77474, 2.00332", \
"1.32033, 1.3277, 1.35806, 1.42043, 1.53879, 1.71996, 1.94601", \
"1.28086, 1.28094, 1.31567, 1.37742, 1.49798, 1.67992, 1.89849" \
)
}
}
timing() {
related_pin : CLK;
timing_type : hold_rising;
rise_constraint(constraint_template) {
index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
values ( \
"0.773685, 0.777425, 0.772464, 0.720005, 0.65472, 0.556798, 0.44484", \
"0.786016, 0.790262, 0.785829, 0.733381, 0.668074, 0.570042, 0.455268", \
"0.813912, 0.818213, 0.813824, 0.76142, 0.696036, 0.598004, 0.483945", \
"0.874291, 0.878537, 0.874115, 0.821656, 0.75636, 0.658328, 0.544269", \
"0.964821, 0.969661, 0.964733, 0.91234, 0.846956, 0.749034, 0.635228", \
"1.08633, 1.09056, 1.08615, 1.03368, 0.968385, 0.870353, 0.756283", \
"1.19677, 1.20099, 1.19546, 1.12452, 1.07881, 0.980782, 0.866679" \
)
}
fall_constraint(constraint_template) {
index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
values ( \
"0.84392, 0.838167, 0.803044, 0.748242, 0.684475, 0.613261, 0.543609", \
"0.857285, 0.850564, 0.81642, 0.761629, 0.697851, 0.626637, 0.556996", \
"0.886017, 0.879494, 0.844327, 0.789569, 0.725802, 0.654588, 0.584936", \
"0.947012, 0.940797, 0.904695, 0.849893, 0.786126, 0.714912, 0.645348", \
"1.03694, 1.03039, 0.99528, 0.940478, 0.876733, 0.805497, 0.735856", \
"1.15839, 1.15088, 1.11669, 1.06192, 0.998151, 0.926948, 0.857384", \
"1.26873, 1.26324, 1.22716, 1.17236, 1.10859, 1.03738, 0.967725" \
)
}
}
}
bus(D) {
bus_type : Q_BUS;
memory_write() {
address : A;
clocked_on : "CLK";
}
direction : input;
capacitance : 0.0153635;
timing() {
related_pin : CLK;
timing_type : setup_rising;
rise_constraint(constraint_template) {
index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
values ( \
"0.883498, 0.892199, 0.923956, 0.969518, 1.00601, 1.0167, 1.01477", \
"0.872993, 0.888459, 0.917609, 0.96998, 1.00477, 1.0198, 1.00984", \
"0.855448, 0.863676, 0.893552, 0.938443, 0.980254, 0.996171, 0.978582", \
"0.816618, 0.830005, 0.858121, 0.905234, 0.945956, 0.963248, 0.948024", \
"0.771353, 0.779416, 0.809138, 0.859881, 0.894113, 0.912692, 0.903375", \
"0.712096, 0.719455, 0.755238, 0.802626, 0.836528, 0.85778, 0.842347", \
"0.67199, 0.682253, 0.713361, 0.758043, 0.793199, 0.815518, 0.799634" \
)
}
fall_constraint(constraint_template) {
index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
values ( \
"0.138776, 0.137582, 0.171993, 0.249663, 0.373714, 0.548009, 0.74558", \
"0.133855, 0.132572, 0.166972, 0.244774, 0.368665, 0.542971, 0.740564", \
"0.108603, 0.107591, 0.142, 0.21786, 0.343893, 0.518023, 0.715594", \
"0.075559, 0.074525, 0.108933, 0.186733, 0.310531, 0.484935, 0.68222", \
"0.025982, 0.024981, 0.059202, 0.136998, 0.263887, 0.435193, 0.632786", \
"0, 0, 0.002871, 0.081048, 0.204686, 0.383372, 0.57684", \
"0, 0, 0, 0.037411, 0.161504, 0.33561, 0.533203" \
)
}
}
timing() {
related_pin : CLK;
timing_type : hold_rising;
rise_constraint(constraint_template) {
index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
values ( \
"0.612282, 0.601414, 0.571241, 0.523149, 0.488664, 0.47652, 0.473088", \
"0.617331, 0.60654, 0.577511, 0.528253, 0.493746, 0.474727, 0.476751", \
"0.63558, 0.624822, 0.598059, 0.546381, 0.512028, 0.494406, 0.49698", \
"0.672507, 0.663553, 0.634227, 0.585673, 0.550792, 0.533159, 0.535194", \
"0.718014, 0.708268, 0.678106, 0.630135, 0.595507, 0.576741, 0.57992", \
"0.77836, 0.770594, 0.737363, 0.689535, 0.654786, 0.636009, 0.639199", \
"0.822349, 0.813065, 0.783376, 0.735471, 0.69982, 0.680537, 0.683177" \
)
}
fall_constraint(constraint_template) {
index_1 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
index_2 ("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315");
values ( \
"1.10362, 1.10608, 1.07018, 0.994015, 0.870144, 0.693539, 0.500676", \
"1.1088, 1.11112, 1.07521, 0.999031, 0.875171, 0.698566, 0.505692", \
"1.12691, 1.12937, 1.09348, 1.0173, 0.893431, 0.716826, 0.523963", \
"1.16568, 1.16812, 1.13223, 1.05606, 0.932195, 0.75559, 0.562716", \
"1.21039, 1.21285, 1.17695, 1.10078, 0.97691, 0.800305, 0.607431", \
"1.26722, 1.27212, 1.23661, 1.16005, 1.03618, 0.859584, 0.66671", \
"1.3147, 1.31716, 1.28127, 1.20509, 1.08122, 0.904618, 0.711755" \
)
}
}
}
cell_leakage_power : 9.738234e-05;
}
}