blob: dd796a5bc341ca3cb341980b9c4f2088536b0f63 [file] [log] [blame]
library (ls05_stdcells) {
capacitive_load_unit (1.0, pf);
current_unit: "1uA";
default_operating_conditions: typical;
delay_model: table_lookup;
in_place_swap_mode: match_footprint;
input_threshold_pct_fall: 50.0;
input_threshold_pct_rise: 50.0;
leakage_power_unit: "1nW";
nom_process: 1.0;
nom_temperature: 25.0;
nom_voltage: 5.0;
output_threshold_pct_fall: 50.0;
output_threshold_pct_rise: 50.0;
pulling_resistance_unit: "1kohm";
slew_lower_threshold_pct_fall: 20.0;
slew_lower_threshold_pct_rise: 20.0;
slew_upper_threshold_pct_fall: 80.0;
slew_upper_threshold_pct_rise: 80.0;
time_unit: "1ns";
voltage_unit: "1V";
operating_conditions (typical) {
process: 1.0;
temperature: 25.0;
voltage: 5.0;
}
lu_table_template (delay_template_5x1) {
index_1 (
"1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
);
variable_1: input_net_transition;
}
lu_table_template (delay_template_5x5) {
index_1 (
"1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
);
index_2 (
"1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
);
variable_1: total_output_net_capacitance;
variable_2: input_net_transition;
}
lu_table_template (delay_template_5x6) {
index_1 (
"1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
);
index_2 (
"1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
);
variable_1: total_output_net_capacitance;
variable_2: input_net_transition;
}
lu_table_template (delay_template_6x1) {
index_1 (
"1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
);
variable_1: input_net_transition;
}
lu_table_template (delay_template_6x6) {
index_1 (
"1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
);
index_2 (
"1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
);
variable_1: total_output_net_capacitance;
variable_2: input_net_transition;
}
power_lut_template (energy_template_5x5) {
index_1 (
"1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
);
index_2 (
"1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
);
variable_1: total_output_net_capacitance;
variable_2: input_transition_time;
}
power_lut_template (energy_template_5x6) {
index_1 (
"1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
);
index_2 (
"1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
);
variable_1: total_output_net_capacitance;
variable_2: input_transition_time;
}
power_lut_template (energy_template_6x6) {
index_1 (
"1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
);
index_2 (
"1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
);
variable_1: total_output_net_capacitance;
variable_2: input_transition_time;
}
lu_table_template (hold_template_3x5) {
index_1 (
"1000.0, 1001.0, 1002.0"
);
index_2 (
"1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
);
variable_1: related_pin_transition;
variable_2: constrained_pin_transition;
}
lu_table_template (hold_template_3x6) {
index_1 (
"1000.0, 1001.0, 1002.0"
);
index_2 (
"1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
);
variable_1: related_pin_transition;
variable_2: constrained_pin_transition;
}
power_lut_template (passive_energy_template_5x1) {
index_1 (
"1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
);
variable_1: input_transition_time;
}
power_lut_template (passive_energy_template_6x1) {
index_1 (
"1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
);
variable_1: input_transition_time;
}
lu_table_template (recovery_template_3x6) {
index_1 (
"1000.0, 1001.0, 1002.0"
);
index_2 (
"1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
);
variable_1: related_pin_transition;
variable_2: constrained_pin_transition;
}
lu_table_template (recovery_template_6x6) {
index_1 (
"1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
);
index_2 (
"1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
);
variable_1: related_pin_transition;
variable_2: constrained_pin_transition;
}
lu_table_template (removal_template_3x6) {
index_1 (
"1000.0, 1001.0, 1002.0"
);
index_2 (
"1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
);
variable_1: related_pin_transition;
variable_2: constrained_pin_transition;
}
lu_table_template (setup_template_3x5) {
index_1 (
"1000.0, 1001.0, 1002.0"
);
index_2 (
"1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
);
variable_1: related_pin_transition;
variable_2: constrained_pin_transition;
}
lu_table_template (setup_template_3x6) {
index_1 (
"1000.0, 1001.0, 1002.0"
);
index_2 (
"1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
);
variable_1: related_pin_transition;
variable_2: constrained_pin_transition;
}
cell (HAX1) {
area: 603504.0;
cell_leakage_power: 0.1173;
pin (B) {
capacitance: 0.009565996302413171;
direction: input;
fall_capacitance: 0.008432988155991751;
rise_capacitance: 0.010699004448834593;
}
pin (A) {
capacitance: 0.012290968093010312;
direction: input;
fall_capacitance: 0.013216336710577052;
rise_capacitance: 0.01136559947544357;
}
pin (YS) {
direction: output;
function: "(!(A & B + !A & !B))";
timing () {
related_pin: "B";
timing_sense: non_unate;
cell_rise (delay_template_5x5) {
index_1 (
"0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
);
index_2 (
"0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
);
values (
"0.004033, 0.032150, 0.044845, 0.050474, 0.051335", \
"0.055892, 0.068037, 0.080785, 0.093045, 0.114132", \
"0.094044, 0.101015, 0.112537, 0.126712, 0.158920", \
"0.175648, 0.176204, 0.184990, 0.197179, 0.244777", \
"0.873435, 0.863339, 0.864298, 0.866078, 0.855109"
);
}
cell_fall (delay_template_5x5) {
index_1 (
"0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
);
index_2 (
"0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
);
values (
"0.017244, 0.032461, 0.048132, 0.062118, 0.137542", \
"0.058835, 0.069633, 0.084719, 0.104232, 0.192012", \
"0.100970, 0.106394, 0.118870, 0.138651, 0.235211", \
"0.187793, 0.189005, 0.197350, 0.213800, 0.316894", \
"0.902163, 0.898308, 0.900032, 0.906364, 0.948955"
);
}
rise_transition (delay_template_5x5) {
index_1 (
"0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
);
index_2 (
"0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
);
values (
"0.040974, 0.074951, 0.060349, 0.076555, 0.409013", \
"0.091957, 0.122622, 0.111250, 0.115255, 0.415747", \
"0.154170, 0.166605, 0.165996, 0.172579, 0.465956", \
"0.289870, 0.292343, 0.293138, 0.299508, 0.559512", \
"1.420665, 1.420862, 1.420515, 1.421028, 1.493654"
);
}
fall_transition (delay_template_5x5) {
index_1 (
"0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
);
index_2 (
"0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
);
values (
"0.028737, 0.067929, 0.109033, 0.090482, 0.482822", \
"0.100377, 0.125774, 0.164469, 0.180526, 0.509483", \
"0.180975, 0.197032, 0.211922, 0.221778, 0.555289", \
"0.348738, 0.353197, 0.357789, 0.370377, 0.658930", \
"1.725367, 1.725946, 1.725663, 1.725932, 1.793771"
);
}
}
timing () {
related_pin: "A";
timing_sense: non_unate;
cell_rise (delay_template_5x5) {
index_1 (
"0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
);
index_2 (
"0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
);
values (
"-0.002915, 0.042398, 0.052176, 0.055423, 0.107987", \
"0.062544, 0.079393, 0.088727, 0.101216, 0.163975", \
"0.098867, 0.112677, 0.121587, 0.133731, 0.204781", \
"0.178683, 0.187584, 0.195187, 0.205349, 0.275393", \
"0.873877, 0.874214, 0.876238, 0.875094, 0.864245"
);
}
cell_fall (delay_template_5x5) {
index_1 (
"0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
);
index_2 (
"0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
);
values (
"0.018517, 0.033815, 0.052985, 0.063145, 0.108475", \
"0.059426, 0.069693, 0.089732, 0.106611, 0.160828", \
"0.101430, 0.106262, 0.124529, 0.143828, 0.205452", \
"0.188322, 0.188871, 0.203005, 0.222224, 0.292784", \
"0.902655, 0.898231, 0.905344, 0.918863, 0.964905"
);
}
rise_transition (delay_template_5x5) {
index_1 (
"0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
);
index_2 (
"0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
);
values (
"0.048575, 0.056963, 0.055452, 0.077660, 0.348951", \
"0.097387, 0.109829, 0.107257, 0.116455, 0.374171", \
"0.157790, 0.160813, 0.162764, 0.173185, 0.415244", \
"0.289541, 0.291335, 0.292385, 0.299387, 0.509268", \
"1.420940, 1.420534, 1.420747, 1.420655, 1.464278"
);
}
fall_transition (delay_template_5x5) {
index_1 (
"0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
);
index_2 (
"0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
);
values (
"0.029875, 0.067731, 0.077584, 0.067492, 0.350562", \
"0.099533, 0.125664, 0.168623, 0.123478, 0.376209", \
"0.180545, 0.196321, 0.205234, 0.198481, 0.424205", \
"0.348869, 0.353115, 0.356059, 0.358578, 0.546504", \
"1.725470, 1.725570, 1.725963, 1.725775, 1.781596"
);
}
}
}
pin (YC) {
direction: output;
function: "(A & B)";
timing () {
related_pin: "B";
timing_sense: positive_unate;
cell_rise (delay_template_5x5) {
index_1 (
"0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
);
index_2 (
"0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
);
values (
"-0.002932, 0.031845, 0.046203, 0.059680, 0.206545", \
"0.049948, 0.068231, 0.085039, 0.104520, 0.274220", \
"0.089788, 0.101410, 0.117157, 0.136354, 0.323085", \
"0.173455, 0.176265, 0.188945, 0.205397, 0.412891", \
"0.873808, 0.861079, 0.865149, 0.869380, 0.984923"
);
}
cell_fall (delay_template_5x5) {
index_1 (
"0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
);
index_2 (
"0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
);
values (
"0.020712, 0.024396, 0.025178, 0.022025, -0.060067", \
"0.060435, 0.061372, 0.064388, 0.066859, 0.006598", \
"0.103540, 0.102168, 0.102489, 0.103050, 0.053408", \
"0.191891, 0.188927, 0.186482, 0.180921, 0.136742", \
"0.906360, 0.902330, 0.897105, 0.883862, 0.767023"
);
}
rise_transition (delay_template_5x5) {
index_1 (
"0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
);
index_2 (
"0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
);
values (
"0.029065, 0.076707, 0.058814, 0.085996, 0.589693", \
"0.084308, 0.124052, 0.114916, 0.121842, 0.582858", \
"0.150913, 0.169854, 0.170202, 0.177980, 0.592114", \
"0.289080, 0.293361, 0.294671, 0.299955, 0.642962", \
"1.420626, 1.420601, 1.420595, 1.420438, 1.521560"
);
}
fall_transition (delay_template_5x5) {
index_1 (
"0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
);
index_2 (
"0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
);
values (
"0.023168, 0.037493, 0.061782, 0.104667, 0.614021", \
"0.093949, 0.101336, 0.115157, 0.147186, 0.632991", \
"0.178031, 0.179618, 0.188053, 0.212969, 0.683615", \
"0.349299, 0.349430, 0.351228, 0.362707, 0.786505", \
"1.724877, 1.725713, 1.726013, 1.726067, 1.845083"
);
}
}
timing () {
related_pin: "A";
timing_sense: positive_unate;
cell_rise (delay_template_5x5) {
index_1 (
"0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
);
index_2 (
"0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
);
values (
"-0.002877, 0.029610, 0.051114, 0.071379, 0.191002", \
"0.048630, 0.065299, 0.090272, 0.109498, 0.261067", \
"0.088953, 0.098443, 0.122749, 0.144721, 0.312452", \
"0.173170, 0.173273, 0.195093, 0.217717, 0.411821", \
"0.874061, 0.858051, 0.871543, 0.889533, 1.026567"
);
}
cell_fall (delay_template_5x5) {
index_1 (
"0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
);
index_2 (
"0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
);
values (
"0.022256, 0.026455, 0.029553, 0.031901, -0.015917", \
"0.062541, 0.063639, 0.067746, 0.071999, 0.041159", \
"0.104940, 0.104109, 0.105543, 0.107246, 0.080735", \
"0.192752, 0.190680, 0.189057, 0.184951, 0.147242", \
"0.907257, 0.903593, 0.899162, 0.887044, 0.752494"
);
}
rise_transition (delay_template_5x5) {
index_1 (
"0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
);
index_2 (
"0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
);
values (
"0.026048, 0.073817, 0.050978, 0.065940, 0.443696", \
"0.083033, 0.121825, 0.103425, 0.102000, 0.436305", \
"0.150571, 0.172361, 0.163617, 0.164690, 0.449813", \
"0.288981, 0.293984, 0.293415, 0.294741, 0.517577", \
"1.420646, 1.420437, 1.420500, 1.420898, 1.486892"
);
}
fall_transition (delay_template_5x5) {
index_1 (
"0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
);
index_2 (
"0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
);
values (
"0.025591, 0.040492, 0.065936, 0.108105, 0.550325", \
"0.095286, 0.101971, 0.117506, 0.150589, 0.584408", \
"0.179426, 0.180898, 0.189227, 0.214201, 0.625356", \
"0.348855, 0.349403, 0.351841, 0.363528, 0.724101", \
"1.724988, 1.724959, 1.726109, 1.725779, 1.806215"
);
}
}
}
}
}