| 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 (XNOR2X1) { |
| area: 1.0; |
| cell_leakage_power: 0.1173; |
| pin (B) { |
| capacitance: 0.013514822660098; |
| direction: input; |
| fall_capacitance: 0.01444352653236194; |
| rise_capacitance: 0.012586118787834062; |
| } |
| pin (A) { |
| capacitance: 0.01216821188263561; |
| direction: input; |
| fall_capacitance: 0.01160051626672843; |
| rise_capacitance: 0.01273590749854279; |
| } |
| pin (Y) { |
| direction: output; |
| function: "(!(A & !B + B & !A))"; |
| 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.016692, 0.026466, 0.032210, 0.035327, 0.047236", \ |
| "0.091623, 0.096157, 0.101268, 0.112236, 0.182896", \ |
| "0.168714, 0.171487, 0.175299, 0.184006, 0.283106", \ |
| "0.323178, 0.324836, 0.326819, 0.332014, 0.455088", \ |
| "1.562758, 1.563072, 1.562761, 1.562230, 1.609484" |
| ); |
| } |
| 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.026885, 0.032485, 0.038933, 0.047083, 0.088356", \ |
| "0.117931, 0.120641, 0.124872, 0.135278, 0.246294", \ |
| "0.211363, 0.213025, 0.215480, 0.223412, 0.363623", \ |
| "0.399691, 0.400466, 0.401437, 0.406163, 0.555052", \ |
| "1.911060, 1.910782, 1.909790, 1.909219, 1.963747" |
| ); |
| } |
| 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.025286, 0.030976, 0.039578, 0.069148, 0.271887", \ |
| "0.132863, 0.133148, 0.134699, 0.146335, 0.398431", \ |
| "0.245392, 0.244781, 0.245027, 0.248852, 0.500046", \ |
| "0.469752, 0.469734, 0.469539, 0.469707, 0.636982", \ |
| "2.271914, 2.271860, 2.271907, 2.271883, 2.273532" |
| ); |
| } |
| 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.028424, 0.032113, 0.039714, 0.069558, 0.259508", \ |
| "0.158149, 0.158097, 0.158297, 0.165758, 0.432914", \ |
| "0.288248, 0.287926, 0.287602, 0.288201, 0.539323", \ |
| "0.548453, 0.548729, 0.548771, 0.548859, 0.704675", \ |
| "2.640916, 2.640957, 2.640961, 2.640975, 2.640935" |
| ); |
| } |
| } |
| 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.013989, 0.017922, 0.023819, 0.023910, 0.045077", \ |
| "0.087124, 0.084574, 0.088506, 0.101490, 0.176795", \ |
| "0.164482, 0.158794, 0.159586, 0.166358, 0.271935", \ |
| "0.318605, 0.311099, 0.308187, 0.308499, 0.436242", \ |
| "1.557737, 1.548082, 1.540255, 1.529227, 1.518552" |
| ); |
| } |
| 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.013397, 0.017881, 0.023473, 0.028401, 0.048333", \ |
| "0.105060, 0.099768, 0.099684, 0.107137, 0.189063", \ |
| "0.198273, 0.190917, 0.187291, 0.187394, 0.294003", \ |
| "0.386416, 0.377286, 0.370618, 0.362674, 0.471656", \ |
| "1.897499, 1.886493, 1.875774, 1.856923, 1.754103" |
| ); |
| } |
| 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.024118, 0.038502, 0.063416, 0.087635, 0.566949", \ |
| "0.133840, 0.133055, 0.136674, 0.159516, 0.603141", \ |
| "0.245168, 0.244344, 0.245288, 0.252595, 0.662450", \ |
| "0.469128, 0.469774, 0.469389, 0.469661, 0.759403", \ |
| "2.272025, 2.271869, 2.271945, 2.272010, 2.283692" |
| ); |
| } |
| 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.025980, 0.033978, 0.052062, 0.093692, 0.572048", \ |
| "0.158104, 0.158727, 0.159581, 0.178242, 0.640536", \ |
| "0.287711, 0.288211, 0.287992, 0.293228, 0.713557", \ |
| "0.548627, 0.548574, 0.548857, 0.548865, 0.845995", \ |
| "2.640933, 2.640942, 2.640979, 2.640983, 2.646792" |
| ); |
| } |
| } |
| } |
| } |
| } |