Initial version of donated sources by Avertec, 3.4p5.
[tas-yagle.git] / distrib / sources / tas / lib / lib_lib.h
1 /******************************************************************************/
2 /* */
3 /* Chaine de CAO & VLSI AVERTEC */
4 /* */
5 /* Produit : LIB Version 1.00 */
6 /* Fichier : lib100.h */
7 /* */
8 /* (c) copyright 2000 AVERTEC */
9 /* Tous droits reserves */
10 /* */
11 /* Auteur(s) : Gilles Augustins */
12 /* */
13 /******************************************************************************/
14
15 #ifndef LIB
16 #define LIB
17
18 #include <stdio.h>
19 #include <stdlib.h>
20 #include <math.h>
21 #include <limits.h>
22 #include <string.h>
23 #include <time.h>
24 #include <sys/types.h>
25 #include <sys/time.h>
26 #include <sys/resource.h>
27 #include <signal.h>
28 #include MUT_H
29 #include MLO_H
30 #include MLU_H
31 #include ELP_H
32 #include MCC_H
33 #include TUT_H
34 #include RCN_H
35 #include TRC_H
36 #define API_HIDE_TOKENS
37 #include STM_H
38 #include TTV_H
39 #include BEH_H
40 #include CBH_H
41
42 #ifdef AVERTEC
43 #include AVT_H
44 #endif
45
46 /******************************************************************************/
47 /* defines */
48 /******************************************************************************/
49 #define LIB_NOM_PROCESS 1.0
50 #define LIB_DERATE_PROCESS 0.0
51 #define LIB_FALLING 0 /* falling transistion */
52 #define LIB_RISING 1 /* rising transistion */
53
54 /*** context define ***/
55 #define LIB_TYPE ((long)0x01)
56 #define CELL_TYPE ((long)0x02)
57 #define PIN_TYPE ((long)0x03)
58 #define FF_TYPE ((long)0x04)
59 #define LATCH_TYPE ((long)0x05)
60 #define STATETABLE_TYPE ((long)0x06)
61 #define LU_TEMPL_TYPE ((long)0x07)
62 #define TIMING_TYPE ((long)0x08)
63 #define DLY_RISE_TYPE ((long)0x09)
64 #define DLY_FALL_TYPE ((long)0x0A)
65 #define SLW_RISE_TYPE ((long)0x0B)
66 #define SLW_FALL_TYPE ((long)0x0C)
67 #define RISE_CONSTR_TYPE ((long)0x0D)
68 #define FALL_CONSTR_TYPE ((long)0x0E)
69 #define WIRE_LOAD_TYPE ((long)0x0F)
70 #define BUS_TYPE ((long)0x10)
71 #define TYPE_TYPE ((long)0x11)
72 #define WIRE_LOAD_TABLE_TYPE ((long)0x12)
73 #define POWER_SUPPLY_TYPE ((long)0x13)
74 #define NO_ACTION_TYPE ((long)0xFF)
75
76 /*** simple attribute define ***/
77 #define SA_NO_INFO ((long)0x1 )
78 #define SA_TIME_UNIT ((long)0x2 )
79 #define SA_RES_UNIT ((long)0x3 )
80 #define SA_SLEW_LOW_FALL_UNIT ((long)0x4 )
81 #define SA_SLEW_LOW_RISE_UNIT ((long)0x5 )
82 #define SA_SLEW_UP_FALL_UNIT ((long)0x6 )
83 #define SA_SLEW_UP_RISE_UNIT ((long)0x7 )
84 #define SA_VAR1 ((long)0x8 )
85 #define SA_VAR2 ((long)0x9 )
86 #define SA_DIR ((long)0xA )
87 #define SA_CAPA ((long)0xB )
88 #define SA_FUNC ((long)0xC )
89 #define SA_TS_FUNC ((long)0xD )
90 #define SA_X_FUNC ((long)0xE )
91 #define SA_REL_PIN ((long)0xF )
92 #define SA_TIM_SENS ((long)0x10)
93 #define SA_TIM_TYPE ((long)0x11)
94 #define SA_CK ((long)0x12)
95 #define SA_NEXT_ST ((long)0x13)
96 #define SA_CLEAR ((long)0x14)
97 #define SA_PRESET ((long)0x15)
98 #define SA_CPVAR1 ((long)0x16)
99 #define SA_CPVAR2 ((long)0x17)
100 #define SA_CK_ON ((long)0x18)
101 #define SA_CK_ON_ALSO ((long)0x19)
102 #define SA_ENABLE ((long)0x1A)
103 #define SA_DATA ((long)0x1B)
104 #define SA_INTR_RISE ((long)0x1C)
105 #define SA_INTR_FALL ((long)0x1D)
106 #define SA_SLOPE_RISE ((long)0x1E)
107 #define SA_SLOPE_FALL ((long)0x1F)
108 #define SA_RESI ((long)0x20)
109 #define SA_DEFAULT_WIRE_LOAD ((long)0x21)
110 #define SA_BASE_TYPE ((long)0x22)
111 #define SA_BIT_FROM ((long)0x23)
112 #define SA_BIT_TO ((long)0x24)
113 #define SA_BIT_WIDTH ((long)0x25)
114 #define SA_DATA_TYPE ((long)0x26)
115 #define SA_DOWNTO ((long)0x27)
116 #define SA_BUS_TYPE ((long)0x28)
117 #define SA_BUS_NAMING_STYLE ((long)0x29)
118 #define SA_NOM_VOLTAGE ((long)0x2A)
119 #define SA_NOM_TEMP ((long)0x2B)
120 #define SA_INPUT_DTH_RISE ((long)0x2C)
121 #define SA_INPUT_DTH_FALL ((long)0x2D)
122 #define SA_OUTPUT_DTH_RISE ((long)0x2E)
123 #define SA_OUTPUT_DTH_FALL ((long)0x2F)
124 #define SA_DEFAULT_SLOPE_RISE ((long)0x30)
125 #define SA_DEFAULT_SLOPE_FALL ((long)0x31)
126 #define SA_DEFAULT_POWER_RAIL ((long)0x32)
127 #define SA_INPUT_SIGNAL_LEVEL ((long)0x33)
128 #define SA_OUTPUT_SIGNAL_LEVEL ((long)0x34)
129
130 /*** complex attribute define ***/
131 #define CA_NO_INFO ((long)0x1 )
132 #define CA_CAPA_UNIT ((long)0x2 )
133 #define CA_INDEX1 ((long)0x3 )
134 #define CA_INDEX2 ((long)0x4 )
135 #define CA_VALUES ((long)0x5 )
136 #define CA_FANOUT_LENGTH ((long)0x6 )
137 #define CA_FANOUT_CAPACITANCE ((long)0x7 )
138 #define CA_FANOUT_RESISTANCE ((long)0x8 )
139 #define CA_POWER_RAIL ((long)0x9 )
140 #define CA_RAIL_CONNECTION ((long)0x10 )
141
142 #define LIB_DRIVED_LINE ((long) 0x20070124 )
143 #define LIB_MAX_CAPACITANCE 0x20080624
144 #define LIB_GENERATED_CLOCK_INFO 0x20080725
145 #define LIB_GENERATED_CLOCK_MASTERS 0x20080728
146 #define LIB_CONNECTOR_ENERGY_MODEL_NAME 0x20090415
147
148 /*** units ***/
149 /* time */
150 #define LIB_NS 'N' /* nanosecond */
151 #define LIB_PS 'P' /* picosecond */
152
153 /* resistance */
154 #define LIB_OHM 'O' /* ohm */
155 #define LIB_KOHM 'K' /* kilo-ohm */
156
157 /* capacitance */
158 #define LIB_PF 'P' /* picofarad */
159 #define LIB_FF 'F' /* femtofarad */
160
161
162 /*** timing sense ***/
163 #define LIB_POS 'P' /* positive unate */
164 #define LIB_NEG 'I' /* negative unate */
165 #define LIB_NON 'N' /* non unate */
166
167 /*** timing type ***/
168 #define LIB_SETUP_RISE 'S' /* setup_rising */
169 #define LIB_SETUP_FALL 's' /* setup_falling */
170 #define LIB_HOLD_RISE 'H' /* hold_rising */
171 #define LIB_HOLD_FALL 'h' /* hold_falling */
172 #define LIB_RISE_EDGE 'E' /* rising_edge */
173 #define LIB_FALL_EDGE 'e' /* falling_edge */
174 #define LIB_TS_ENABLE 'T' /* falling_edge */
175 #define LIB_TS_DISABLE 't' /* falling_edge */
176 #define LIB_NOTYPE 'N' /* aucun des cas precedents */
177
178
179 /******************************************************************************/
180 /* globals */
181 /******************************************************************************/
182 extern ht *tut_tablasharea;
183 extern char *TMA_TUNIT;
184 extern chain_list *LIB_TTVFIG_LIST;
185 extern char *LIB_BUS_DELIM;
186 /******************************************************************************/
187 /* structures */
188 /******************************************************************************/
189
190 /******************************************************************************/
191 /* functions */
192 /******************************************************************************/
193
194
195 extern void lib_drive (chain_list*, chain_list*, char*, char*) ;
196 extern void lib_parse (char*);
197 void lib_parse_this_file (char *filename, char *ext);
198 extern chain_list *lib_load (char*);
199 extern void libenv() ;
200 extern void lib_driveheader (FILE*, char*, ttvinfo_list*);
201 extern char *lib_get_tg_pinname(char *str);
202 #endif
203