00001 00019 #include "superInt.h" 00020 00021 /* 00022 One record in the supergate library file consists of: 00023 00024 <gate_number> <truth_table> <delay_max> <pin-to-pin-delays> <area> <gate_formula> 00025 00026 <gate_number> is a zero-based integer 00027 <truth_table> is a string of 2^n bits representing the value of the function for each minterm 00028 <delay_max> is the maximum delay of the gate 00029 <pin-to-pin-delays> is the array of n double values 00030 <area> is a floating point value 00031 <gate_formula> is the string representing the gate in the following format: 00032 GATENAME1( GATENAME2( a, c ), GATENAME3( a, d ), ... ) 00033 The gate names (GATENAME1, etc) are the names as they appear in the .genlib library. 00034 The primary inputs of the gates are denoted by lowercase chars 'a', 'b', etc. 00035 The parantheses are mandatory for each gate, except for the wire. 00036 The wire name can be omitted, so that "a" can be used instead of "**wire**( a )". 00037 The spaces are optional in any position of this string. 00038 00039 00040 The supergates are generated exhaustively from all gate combinations that 00041 have the max delay lower than the delay given by the user, or until the specified time 00042 limit is reached. 00043 00044 The supergates are stored in supergate classes by their functionality. 00045 Among the gates with the equivalent functionaly only those are dropped, which are 00046 dominated by at least one other gate in the class in terms of both delay and area. 00047 For the definition of gate dominance see pliGenCheckDominance(). 00048 */ 00049 00050 00054 00058 00072 00073 00074 00075 00076