| 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 (AOI22X1) { |
| area: 274320.0; |
| cell_leakage_power: 0.1173; |
| pin (D) { |
| capacitance: 0.0020974613531819556; |
| direction: input; |
| fall_capacitance: 4.4104117800871274e-05; |
| rise_capacitance: 0.004150818588563039; |
| } |
| pin (C) { |
| capacitance: 0.004812606268016478; |
| direction: input; |
| fall_capacitance: 0.004689865191387634; |
| rise_capacitance: 0.0049353473446453215; |
| } |
| pin (B) { |
| capacitance: 0.004946165373579888; |
| direction: input; |
| fall_capacitance: 0.005741463237564304; |
| rise_capacitance: 0.0041508675095954725; |
| } |
| pin (A) { |
| capacitance: 0.006371776083769734; |
| direction: input; |
| fall_capacitance: 0.007808127096433607; |
| rise_capacitance: 0.004935425071105862; |
| } |
| pin (Y) { |
| direction: output; |
| function: "(!(A & B & C & D + A & B & C & !D + A & B & D & !C + A & C & D & !B + B & C & D & !A + A & B & !C & !D + C & D & !A & !B))"; |
| timing () { |
| related_pin: "D"; |
| timing_sense: negative_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.016935, 0.014883, 0.015703, 0.012454, -0.033501", \ |
| "0.090542, 0.082772, 0.082614, 0.090524, 0.114504", \ |
| "0.162325, 0.152911, 0.149501, 0.151692, 0.215638", \ |
| "0.305626, 0.294845, 0.288283, 0.283584, 0.379358", \ |
| "1.452827, 1.441115, 1.430562, 1.414232, 1.385088" |
| ); |
| } |
| 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.011131, 0.018803, 0.024733, 0.032496, 0.108096", \ |
| "0.102250, 0.099676, 0.101552, 0.112143, 0.253101", \ |
| "0.196075, 0.190340, 0.188422, 0.190760, 0.352663", \ |
| "0.384766, 0.377069, 0.371270, 0.364996, 0.516099", \ |
| "1.896343, 1.886398, 1.876274, 1.858129, 1.777799" |
| ); |
| } |
| 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.016765, 0.027275, 0.049942, 0.091821, 0.629255", \ |
| "0.121167, 0.122670, 0.127043, 0.150833, 0.656506", \ |
| "0.224824, 0.225478, 0.225444, 0.237122, 0.716205", \ |
| "0.433527, 0.433720, 0.433798, 0.434581, 0.814040", \ |
| "2.108310, 2.108361, 2.108226, 2.108327, 2.151506" |
| ); |
| } |
| 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.019540, 0.037485, 0.048144, 0.090862, 0.624895", \ |
| "0.148113, 0.148658, 0.152486, 0.173373, 0.676277", \ |
| "0.277916, 0.277395, 0.278530, 0.285802, 0.738740", \ |
| "0.538822, 0.539108, 0.538745, 0.539142, 0.865875", \ |
| "2.631103, 2.631167, 2.631060, 2.631158, 2.638378" |
| ); |
| } |
| } |
| timing () { |
| related_pin: "C"; |
| timing_sense: negative_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.020369, 0.018428, 0.021368, 0.020061, 0.016757", \ |
| "0.092490, 0.085158, 0.085310, 0.094546, 0.156465", \ |
| "0.164627, 0.154984, 0.151976, 0.154901, 0.251955", \ |
| "0.307751, 0.296984, 0.290533, 0.286397, 0.406843", \ |
| "1.454952, 1.443103, 1.432571, 1.416364, 1.394708" |
| ); |
| } |
| 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.010498, 0.021560, 0.028514, 0.037495, 0.082368", \ |
| "0.101825, 0.105130, 0.112161, 0.127308, 0.261185", \ |
| "0.195561, 0.196794, 0.201635, 0.213814, 0.379961", \ |
| "0.384369, 0.383935, 0.386589, 0.394605, 0.568320", \ |
| "1.895945, 1.893647, 1.893375, 1.894401, 1.975233" |
| ); |
| } |
| 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.021236, 0.031459, 0.054625, 0.095131, 0.470508", \ |
| "0.126934, 0.126375, 0.131675, 0.156729, 0.627474", \ |
| "0.229762, 0.229630, 0.230077, 0.241674, 0.716118", \ |
| "0.438091, 0.438482, 0.438252, 0.439405, 0.825499", \ |
| "2.112964, 2.112929, 2.112863, 2.112978, 2.155164" |
| ); |
| } |
| 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.021627, 0.035591, 0.035070, 0.070098, 0.433450", \ |
| "0.147776, 0.149177, 0.150009, 0.161817, 0.458917", \ |
| "0.277709, 0.277366, 0.277596, 0.280531, 0.527096", \ |
| "0.539065, 0.539093, 0.539109, 0.538946, 0.684263", \ |
| "2.631099, 2.631149, 2.631170, 2.631100, 2.631114" |
| ); |
| } |
| } |
| timing () { |
| related_pin: "B"; |
| timing_sense: negative_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.019809, 0.021467, 0.022993, 0.023258, -0.058701", \ |
| "0.092131, 0.092348, 0.095145, 0.101841, 0.098557", \ |
| "0.164877, 0.164124, 0.165065, 0.169626, 0.210368", \ |
| "0.308029, 0.307392, 0.307470, 0.309169, 0.390164", \ |
| "1.457169, 1.456286, 1.455144, 1.453124, 1.488193" |
| ); |
| } |
| 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.013313, 0.029532, 0.038717, 0.047945, 0.188158", \ |
| "0.107990, 0.110195, 0.113203, 0.124738, 0.313534", \ |
| "0.202371, 0.200606, 0.199392, 0.203099, 0.404174", \ |
| "0.391167, 0.386925, 0.382011, 0.376561, 0.554823", \ |
| "1.902931, 1.895987, 1.886227, 1.868549, 1.797821" |
| ); |
| } |
| 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.019429, 0.026568, 0.042468, 0.080756, 0.516753", \ |
| "0.124108, 0.123505, 0.123820, 0.139390, 0.517896", \ |
| "0.226304, 0.226453, 0.226121, 0.229413, 0.571103", \ |
| "0.432605, 0.432992, 0.433334, 0.433130, 0.669772", \ |
| "2.096546, 2.096500, 2.096504, 2.096401, 2.104903" |
| ); |
| } |
| 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.036963, 0.064663, 0.063261, 0.104268, 0.557323", \ |
| "0.169060, 0.168178, 0.170874, 0.190953, 0.690517", \ |
| "0.298594, 0.298892, 0.298450, 0.305039, 0.761400", \ |
| "0.559542, 0.559072, 0.559520, 0.559454, 0.890958", \ |
| "2.651812, 2.651739, 2.651820, 2.651765, 2.658183" |
| ); |
| } |
| } |
| timing () { |
| related_pin: "A"; |
| timing_sense: negative_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.022678, 0.024602, 0.027657, 0.027746, -0.014253", \ |
| "0.094425, 0.094825, 0.097714, 0.105256, 0.133288", \ |
| "0.166876, 0.166299, 0.167299, 0.172465, 0.239654", \ |
| "0.310022, 0.309359, 0.309537, 0.311595, 0.412132", \ |
| "1.459221, 1.458255, 1.457052, 1.455130, 1.495355" |
| ); |
| } |
| 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.010762, 0.031615, 0.042726, 0.054379, 0.162255", \ |
| "0.107178, 0.114877, 0.123673, 0.140333, 0.314762", \ |
| "0.201740, 0.206695, 0.212432, 0.225560, 0.423426", \ |
| "0.390675, 0.393589, 0.396909, 0.405745, 0.599731", \ |
| "1.902538, 1.903226, 1.903241, 1.904537, 1.991568" |
| ); |
| } |
| 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.023953, 0.030647, 0.045679, 0.081384, 0.352989", \ |
| "0.128243, 0.127626, 0.127724, 0.144629, 0.476733", \ |
| "0.230700, 0.231079, 0.230551, 0.233540, 0.563234", \ |
| "0.437513, 0.437483, 0.437930, 0.437603, 0.677229", \ |
| "2.101139, 2.101103, 2.101049, 2.100995, 2.109091" |
| ); |
| } |
| 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.035078, 0.066496, 0.049387, 0.080483, 0.340869", \ |
| "0.168775, 0.168226, 0.168846, 0.179604, 0.463584", \ |
| "0.298761, 0.298598, 0.298932, 0.300297, 0.541365", \ |
| "0.559293, 0.559471, 0.559155, 0.559533, 0.704149", \ |
| "2.651791, 2.651807, 2.651756, 2.651826, 2.651827" |
| ); |
| } |
| } |
| } |
| } |
| } |