1 /****************************************************************************/
3 /* Chaine de CAO & VLSI Alliance */
5 /* Produit : TTV Version 1 */
6 /* Fichier : ttv200.h */
8 /* (c) copyright 1995-1998 Laboratoire LIP6 equipe ASIM */
9 /* Tous droits reserves */
10 /* Support : e-mail alliance-support@asim.lip6.fr */
12 /* Auteur(s) : DIOURY Karim */
14 /****************************************************************************/
15 /* les structures et base de donnees de TTV */
16 /****************************************************************************/
21 /* LISTE DES INCLUDE */
30 /* LISTE DES DEFINE */
32 /* defines generaux */
33 #define TTV_MAX_BLOC 256 /* taille des blocs */
34 #define TTV_MAX_SBLOC 256 /* taille des sblocs */
35 #define TTV_MAX_LBLOC 64 /* taille des lblocs */
36 #define TTV_ERROR 1 /* ttv error */
37 #define TTV_WARNING 2 /* ttv warning */
38 #define TTV_DATE_LOCAL 1 /* date et heure local */
39 #define TTV_DATE_GMT 2 /* date et heure gmt */
40 #define TTV_LANG_E 'E' /* langue anglaise */
41 #define TTV_LANG_F 'F' /* langue francaise */
42 #define TTV_SAVE_PATH 'Y' /* sauve les chemins */
43 #define TTV_NOTSAVE_PATH 'N' /* ne sauve pas les chemins */
44 #define TTV_SAVE_ALLPATH 'A' /* sauve tous les chemins */
45 #define TTV_OLD_MAX (LONG_MAX ) /* age le plus vieux */
46 #define TTV_OLD_MIN (LONG_MAX>>1 ) /* rajeunissement */
47 #define TTV_ALLOC_MAX (LONG_MAX ) /* nb d'allocation max s & l */
48 #define TTV_UP 'U' /* transition montante */
49 #define TTV_DOWN 'D' /* transition descendante */
50 #define TTV_DELAY_MAX (LONG_MAX ) /* delai maximum autorise */
51 #define TTV_DELAY_MIN (LONG_MIN ) /* delai minimum autorise */
52 #define TTV_MAX_PATHNB (INT_MAX ) /* delai minimum autorise */
53 #define TTV_MAX_PERIOD (CHAR_MAX ) /* delai minimum autorise */
54 #define TTV_NO_PHASE ((char)-1 ) /* no phase */
56 /* status des ttvfig */
57 #define TTV_STS_MARQUE ((long) 0x10000000 ) /* ttvfig marque */
58 #define TTV_STS_MODEL ((long) 0x20000000 ) /* ttvfig model */
59 #define TTV_STS_NOT_FREE ((long) 0x00080000 ) /* ttvfig a conserver */
60 #define TTV_STS_FREE_2 ((long) 0x00040000 ) /* ttvfig a liberer en 2 */
61 #define TTV_STS_FREE_1 ((long) 0x00020000 ) /* ttvfig a liberer en 1 */
62 #define TTV_STS_FREE_0 ((long) 0x00010000 ) /* ttvfig a liberer en 0 */
63 #define TTV_STS_FREE_MASK ((long) 0x000F0000 ) /* ttvfig a conserver */
64 #define TTV_STS_HEAD ((long) 0x00100000 ) /* sommet de la ttvfig */
65 #define TTV_STS_DUAL_P ((long) 0x00200000 ) /* dual des liens P */
66 #define TTV_STS_DUAL_J ((long) 0x00400000 ) /* dual des liens J */
67 #define TTV_STS_DUAL_T ((long) 0x00800000 ) /* dual des liens T */
68 #define TTV_STS_DUAL_PJT ((long) 0x00e00000 ) /* dual des liens PJT */
69 #define TTV_STS_DUAL_F ((long) 0x01000000 ) /* dual des liens F */
70 #define TTV_STS_DUAL_E ((long) 0x02000000 ) /* dual des liens E */
71 #define TTV_STS_DUAL_D ((long) 0x04000000 ) /* dual des liens D */
72 #define TTV_STS_DUAL_FED ((long) 0x07000000 ) /* dual des liens FED */
73 #define TTV_STS_DUAL ((long) 0x07e00000 ) /* dual des liens */
74 #define TTV_STS_HEADER ((long) 0x00000001 ) /* ttvfig avec H et X */
75 #define TTV_STS_LOCK ((long) 0x00000002 ) /* ttvfig locker */
76 #define TTV_STS_C ((long) 0x00000010 ) /* noeud C */
77 #define TTV_STS_L ((long) 0x00000020 ) /* noeud QLRI */
78 #define TTV_STS_S ((long) 0x00000040 ) /* noeud S */
79 #define TTV_STS_SE ((long) 0x00000080 ) /* SE ref dans la ttvfig */
80 #define TTV_STS_P ((long) 0x00000100 ) /* chemin complet */
81 #define TTV_STS_J ((long) 0x00000200 ) /* chemin partiel sur un T */
82 #define TTV_STS_T ((long) 0x00000400 ) /* chemin connecteur */
83 #define TTV_STS_F ((long) 0x00001000 ) /* temps portes interne */
84 #define TTV_STS_E ((long) 0x00002000 ) /* temps porte externe */
85 #define TTV_STS_D ((long) 0x00004000 ) /* temps porte connecteur */
86 #define TTV_STS_DENOTINPT ((long) 0x00008000 ) /* DE pas dans PT */
87 #define TTV_STS_DTX ((long) 0x000070f1 ) /* fichier dtx */
88 #define TTV_STS_TTX ((long) 0x00000731 ) /* fichier ttx */
89 #define TTV_STS_ALL ((long) 0x000077f1 ) /* ttvfig complet */
90 #define TTV_STS_L_P ((long) 0x00000120 ) /* QLRIN+P */
91 #define TTV_STS_L_J ((long) 0x00000220 ) /* QLRIN+J */
92 #define TTV_STS_L_PJ ((long) 0x00000320 ) /* QLRIN+PJ */
93 #define TTV_STS_LS ((long) 0x00000060 ) /* QLRIN+S */
94 #define TTV_STS_LS_F ((long) 0x00001060 ) /* QLRIN+S+F */
95 #define TTV_STS_LS_E ((long) 0x00002060 ) /* QLRIN+S+E */
96 #define TTV_STS_LS_FE ((long) 0x00003060 ) /* QLRIN+S+EF */
97 #define TTV_STS_CL ((long) 0x00000030 ) /* CQLRIN */
98 #define TTV_STS_CL_T ((long) 0x00000430 ) /* CQLRIN+T */
99 #define TTV_STS_CL_PJT ((long) 0x00000730 ) /* CQLRIN+PJT */
100 #define TTV_STS_CLS ((long) 0x00000070 ) /* CQLRIN+S */
101 #define TTV_STS_CLS_D ((long) 0x00004070 ) /* CQLRIN+S+D */
102 #define TTV_STS_CLS_FED ((long) 0x00007070 ) /* CQLRIN+S+FED */
104 /* type user des ttvfig */
105 #define TTV_STS_HTAB_L ((long) 0x00000001 ) /* table de hash pour L */
106 #define TTV_STS_HTAB_S ((long) 0x00000002 ) /* table de hash pour S */
107 #define TTV_FIG_POS_S ((long) 0x00000003 ) /* position de S dans .dtx */
108 #define TTV_FIG_POS_D ((long) 0x00000004 ) /* position de D dans .dtx */
109 #define TTV_FIG_POS_E ((long) 0x00000005 ) /* position de E dans .dtx */
110 #define TTV_FIG_POS_F ((long) 0x00000006 ) /* position de F dans .dtx */
111 #define TTV_FIG_POS_T ((long) 0x00000007 ) /* position de T dans .ttx */
112 #define TTV_FIG_POS_J ((long) 0x00000008 ) /* position de J dans .ttx */
113 #define TTV_FIG_POS_P ((long) 0x00000009 ) /* position de P dans .ttx */
114 #define TTV_FIG_LINE_S ((long) 0x0000000a ) /* position de S dans .dtx */
115 #define TTV_FIG_LINE_D ((long) 0x0000000b ) /* position de D dans .dtx */
116 #define TTV_FIG_LINE_E ((long) 0x0000000c ) /* position de E dans .dtx */
117 #define TTV_FIG_LINE_F ((long) 0x0000000d ) /* position de F dans .dtx */
118 #define TTV_FIG_LINE_T ((long) 0x0000000e ) /* position de T dans .ttx */
119 #define TTV_FIG_LINE_J ((long) 0x0000000f ) /* position de J dans .ttx */
120 #define TTV_FIG_LINE_P ((long) 0x00000010 ) /* position de P dans .ttx */
121 #define TTV_FIG_FALSEPATH ((long) 0x00000011 ) /* faux chemins */
122 #define TTV_FIG_SIGBLOCTAB ((long) 0x00000012 ) /* tableau de signal */
123 #define TTV_FIG_LOFIG ((long) 0x00000013 ) /* lofig associe */
124 #define TTV_FIG_HTAB_SIG ((long) 0x00000014 ) /* table hash signaux */
125 #define TTV_FIG_INFLIST ((long) 0x00000015 ) /* info fichier inf */
126 #define TTV_FIG_TYPE ((long) 0x00000016 ) /* type de ttvfig en memoire */
127 #define TTV_FIG_SAXIS ((long) 0x00000017 ) /* ht slope axis */
128 #define TTV_FIG_CAXIS ((long) 0x00000018 ) /* ht capa axis */
129 #define TTV_FIG_CAPAOUT_HANDLED ((long) 0x00000019 )
130 #define TTV_FIG_DIRECTIVES_HEAP ((long) 0x0000001a )
131 #define TTV_SSTA_STORE 0x0000001b
132 #define TTV_SSTA_STORE_STATS 0x0000001c
133 #define TTV_FIG_FULL_MEMORY 0x0000001d
134 #define TTV_CELL_LEAKAGE_POWER 0x0000001e
135 #define TTV_LEAKAGE_POWER 0x0000001f
136 #define TTV_FIG_CBHSEQ 0x00000020
137 #define TTV_FIG_VCDPOWER 0x00000021
139 /* type des signaux */
140 #define TTV_SIG_C ((long) 0x00000001 ) /* signal connecteur */
141 #define TTV_SIG_CI ((long) 0x00000003 ) /* signal connecteur in */
142 #define TTV_SIG_CO ((long) 0x00000005 ) /* signal connecteur out */
143 #define TTV_SIG_CZ ((long) 0x00000015 ) /* signal connecteur hz */
144 #define TTV_SIG_CB ((long) 0x00000027 ) /* signal connecteur inout */
145 #define TTV_SIG_CT ((long) 0x00000047 ) /* signal connecteur tstate */
146 #define TTV_SIG_CX ((long) 0x00000081 ) /* signal connecteur unknow */
147 #define TTV_SIG_N ((long) 0x00000008 ) /* signal noeud con pour RC */
148 #define TTV_SIG_CQ ((long) 0x00000101 ) /* signal connecteur cmd */
149 #define TTV_SIG_CL ((long) 0x00000201 ) /* signal connecteur cmd */
150 #define TTV_SIG_CR ((long) 0x00000401 ) /* signal connecteur cmd */
151 #define TTV_SIG_NQ ((long) 0x00000108 ) /* con rc pour cmd */
152 #define TTV_SIG_NL ((long) 0x00000208 ) /* con rc pour cmd */
153 #define TTV_SIG_NR ((long) 0x00000408 ) /* con rc pour cmd */
154 #define TTV_SIG_Q ((long) 0x00000100 ) /* signal latch command */
155 #define TTV_SIG_QR ((long) 0x00000120 ) /* signal latch reset */
156 #define TTV_SIG_L ((long) 0x00000200 ) /* signal latch */
157 #define TTV_SIG_LSL ((long) 0x00000220 ) /* signal latch slave */
158 #define TTV_SIG_LL ((long) 0x00004200 ) /* signal latch latch */
159 #define TTV_SIG_LF ((long) 0x00008200 ) /* signal flipflop */
160 #define TTV_SIG_LR ((long) 0x00004210 ) /* signal RS latch nand */
161 #define TTV_SIG_LS ((long) 0x00004220 ) /* signal RS latch nor */
162 #define TTV_SIG_R ((long) 0x00000400 ) /* signal precharge */
163 #define TTV_SIG_I ((long) 0x00000800 ) /* signal intermediaire */
164 #define TTV_SIG_S ((long) 0x00001000 ) /* signal non CQLRIN */
165 #define TTV_SIG_B ((long) 0x00002000 ) /* signal break */
166 #define TTV_SIG_TYPEALL ((long) 0x00003F09 ) /* signal type */
168 /* marquage des signaux */
169 #define TTV_SIG_TYPE ((long) 0x0000FFFF ) /* masquage du type signal */
170 #define TTV_SIG_TYPECON ((long) 0x000000FF ) /* masquage des connecteurs */
171 #define TTV_SIG_LEVEL ((long) 0x003F0000 ) /* masquage des connecteurs */
172 #define TTV_SIG_EXT ((long) 0x00400000 ) /* signal exterieur */
173 #define TTV_SIG_MARQUE ((long) 0x10000000 ) /* signal marque */
174 #define TTV_SIG_F ((long) 0x20000000 ) /* signal libre */
175 #define TTV_SIG_BYPASSOUT ((long) 0x40000000 ) /* signal non-important OUT */
176 #define TTV_SIG_BYPASSIN ((long) 0x80000000 ) /* signal non-important IN */
177 #define TTV_SIG_MASKIN ((long) 0x01000000 ) /* signal mask pour in */
178 #define TTV_SIG_MASKOUT ((long) 0x02000000 ) /* signal mask pour out */
179 #define TTV_SIG_MINSIG ((long) 0x04000000 ) /* marquage signaux d'entree */
180 #define TTV_SIG_MOUTSIG ((long) 0x08000000 ) /* marquage signaux sortie */
182 /* type user des signaux */
183 #define TTV_SIG_INDEX ((long) 0x00000001 ) /* index du signal */
184 #define TTV_CMD_INDEX ((long) 0x00000002 ) /* index de la command */
185 #define TTV_SIG_CMD ((long) 0x00000003 ) /* cmd pour L et R */
186 #define TTV_SIG_CMDNEW ((long) 0x00000004 ) /* nouveau cmd ttvfig pere */
187 #define TTV_SIG_CMDOLD ((long) 0x00000005 ) /* ancien cmd ttvfig fils */
188 #define TTV_SIG_INSIG ((long) 0x00000006 ) /* liste signaux d'entree */
189 #define TTV_SIG_OUTSIG ((long) 0x00000007 ) /* liste signaux de sortie */
190 #define TTV_SIG_CLOCK ((long) 0x00000008 ) /* signal clock */
191 #define TTV_SIG_ASYNCHRON ((long) 0x00000009 ) /* asynchronous reset */
192 #define TTV_SIG_CAPAS ((long) 0x0000000a ) /* contient les 6 capaval */
193 #define TTV_SIG_MULTICYCLE_OUT ((long) 0x0000000b ) /* regles multicycle avec le 'out' matchant le signal*/
194 #define TTV_SIG_MULTICYCLE_IN ((long) 0x0000000c ) /* regles multicycle avec le 'in' matchant le signal*/
195 //#define TTV_SIG_PATH_DELAY_MARGINS ((long) 0x0000000d ) /* marquage pour le delay margin */
196 #define TTV_SIG_FLAGS ((long) 0x0000000e ) /* marquage pour le no cross */
197 #define TTV_SIG_MARKED ((long) 0x0000000f ) /* marquage pour le no cross */
198 #define TTV_SIG_OUTPUT_CAPACITANCE ((long) 0x00000010 ) // capaout/signal
199 #define TTV_SIG_DONE_PTYPE ((long) 0x00000011 ) // capaout/signal
200 #define TTV_SIG_PATH_DELAY_MARGINS_REGEX ((long) 0x00000012 ) /* marquage pour le delay margin */
201 #define TTV_SIG_TMP_MARKED ((long) 0x00000013 ) /* marquage temporaire */
202 #define TTV_SIG_UTD_OUTPUT_CAPA 0x00000014 /* UDT output capacitance */
203 #define TTV_SIG_STRICT_SETUP 0x00000015 /* UDT output capacitance */
204 #define TTV_SIG_DIRECTIVES 0x00000016
205 #define TTV_SSTA_SIG_INDEX 0x00000017
206 #define TTV_SIG_FALSEPATH_START 0x00000018
207 #define TTV_SIG_FALSEPATH_END 0x00000019
208 #define TTV_SIG_SWING 0x00000020
209 #define TTV_SIG_VCDPOWER 0x00000021
211 /* type des evenements */
212 #define TTV_NODE_MARQUE ((long) 0x10000000 ) /* noeud marque */
213 #define TTV_NODE_CMDMARQUE ((long) 0x20000000 ) /* cmd marque Pour L */
214 #define TTV_NODE_NODE ((long) 0x40000000 ) /* noeud marque */
215 #define TTV_NODE_ROOT ((long) 0x80000000 ) /* noeud marque */
216 #define TTV_NODE_UP ((long) 0x00000001 ) /* noeud niveau haut */
217 #define TTV_NODE_DOWN ((long) 0x00000002 ) /* noeud niveau bas */
218 #define TTV_NODE_STOP ((long) 0x00000100 ) /* noeud point d'arret */
219 #define TTV_NODE_IMAX ((long) 0x00000200 ) /* noeud fact pour max */
220 #define TTV_NODE_IMIN ((long) 0x00000400 ) /* noeud fact pour min */
221 #define TTV_NODE_ONLYEND ((long) 0x00000800 ) /* pas de front */
222 #define TTV_NODE_END ((long) 0x00002000 ) /* fin de chaine */
223 #define TTV_NODE_INR ((long) 0x00004000 ) /* fin de chaine */
224 #define TTV_NODE_INS ((long) 0x00008000 ) /* fin de chaine */
225 #define TTV_NODE_INHZ ((long) 0x00000020 ) /* fin de chaine */
226 #define TTV_NODE_BYPASSOUT ((long) 0x00000040 ) /* pas de front */
227 #define TTV_NODE_BYPASSIN ((long) 0x00000080 ) /* pas de front */
228 #define TTV_NODE_FALSEOUT ((long) 0x00000004 ) /* pas de chemin */
229 #define TTV_NODE_FALSEIN ((long) 0x00000008 ) /* pas de chemin */
230 #define TTV_NODE_MARK_1 ((long) 0x01000000 ) /* marquage temporaire 1 */
231 #define TTV_NODE_FALSEPATHNODE ((long) 0x02000000 ) /* marquage temporaire 1 */
233 /* type user des evenements */
234 #define TTV_NODE_DUALLINE ((long) 0x00000001 ) /* liens dual */
235 #define TTV_NODE_DUALPATH ((long) 0x00000002 ) /* chemins dual */
236 #define TTV_NODE_INCHAIN ((long) 0x00000003 ) /* entree vue par un noeud */
237 #define TTV_NODE_IN ((long) 0x00000004 ) /* noeud d'entree */
238 #define TTV_NODE_AVNODE ((long) 0x00000005 ) /* noeud precedent */
239 #define TTV_NODE_DELAYLOOP ((long) 0x00000006 ) /* delay de bascule */
240 #define TTV_NODE_CMDFF ((long) 0x00000007 ) /* command towards flipflop */
241 #define TTV_NODE_CMDLL ((long) 0x00000008 ) /* command towards latch */
242 #define TTV_NODE_DELAY ((long) 0x00000009 ) /* command towards latch */
243 #define TTV_NODE_LATCH ((long) 0x00000010 ) /* command towards latch */
244 #define TTV_NODE_CLOCK ((long) 0x00000011 ) /* command towards latch */
245 #define TTV_NODE_PROPINFO ((long) 0x00000012 ) /* propagated informations */
246 #define TTV_NODE_UTD_INPUT_SLOPE ((long) 0x00000013 ) /* UTD input slope */
247 #define TTV_NODE_TMP_MARKED ((long) 0x00000014 ) /* marquage temporaire */
248 #define TTV_NODE_PROPINFO_CACHE ((long) 0x00000015 ) /* propagated informations */
249 #define TTV_NODE_CRITIC_PARA_INFO ((long) 0x00000016 )
250 #define TTV_NODE_VCD_INFO ((long) 0x00000017 )
253 #define TTV_FIND_INFIFO ((long) 0x00000001 ) /* noeud deja empile */
254 #define TTV_FIND_OUTFIFO (~(TTV_FIND_INFIFO)) /* noeud non-empile */
255 #define TTV_FIND_BEGIN ((long) 0x00000002 ) /* debut de chaine */
256 #define TTV_FIND_BYPASS ((long) 0x00000004 ) /* bypass du node */
259 #define TTV_LINE_P ((long) 0x00000001 ) /* lien de type P */
260 #define TTV_LINE_J ((long) 0x00000002 ) /* lien de type J */
261 #define TTV_LINE_T ((long) 0x00000004 ) /* lien de type T */
262 #define TTV_LINE_F ((long) 0x00000008 ) /* lien de type F */
263 #define TTV_LINE_E ((long) 0x00000010 ) /* lien de type E */
264 #define TTV_LINE_D ((long) 0x00000020 ) /* lien de type D */
265 #define TTV_LINE_TYPE ((long) 0x0000003F ) /* lien de type E */
267 /* index des delay des line */
268 #define TTV_DELAY_P 0 /* position du delay P */
269 #define TTV_DELAY_J 1 /* position du delay J */
270 #define TTV_DELAY_T 2 /* position du delay T */
271 #define TTV_DELAY_F 3 /* position du delay F */
272 #define TTV_DELAY_E 4 /* position du delay E */
273 #define TTV_DELAY_D 5 /* position du delay D */
274 #define TTV_DELAY_END (ttvdelay_list*)-1 /* fin du tableau */
276 /* marquage des lines */
277 #define TTV_LINE_MARQUE ((long) 0x10000000 ) /* lien marque */
278 #define TTV_LINE_FR ((long) 0x20000000 ) /* lien libre */
279 #define TTV_LINE_INFIG ((long) 0x40000000 ) /* lien dans la figure */
280 #define TTV_LINE_HZ ((long) 0x00000100 ) /* lien de type HZ */
281 #define TTV_LINE_EV ((long) 0x00000200 ) /* lien de type evaluation */
282 #define TTV_LINE_PR ((long) 0x00000400 ) /* lien de type precharge */
283 #define TTV_LINE_RC ((long) 0x00000800 ) /* lien de type rc */
284 #define TTV_LINE_DEPTMAX ((long) 0x00001000 ) /* lien D ou E dans un PT M */
285 #define TTV_LINE_DEPTMIN ((long) 0x00002000 ) /* lien D ou E dans un PT m */
286 #define TTV_LINE_DENPTMAX ((long) 0x00004000 ) /* lien D ou E pas dans PT M */
287 #define TTV_LINE_DENPTMIN ((long) 0x00008000 ) /* lien D ou E pas dans PT m */
288 #define TTV_LINE_PREV ((long) 0x00010000 ) /* lien avec un ptype prev */
289 #define TTV_LINE_ROOT ((long) 0x00020000 ) /* premier lien d'une liste */
290 #define TTV_LINE_PREV_DUAL ((long) 0x00040000 ) /* lien avec un ptype prev */
291 #define TTV_LINE_ROOT_DUAL ((long) 0x00080000 ) /* premier lien d'une liste */
292 #define TTV_LINE_R ((long) 0x00000040 ) /* lien reset dans une rs */
293 #define TTV_LINE_S ((long) 0x00000080 ) /* lien set dans une rs */
294 #define TTV_LINE_A ((long) 0x00900000 ) /* lien de type access */
295 #define TTV_LINE_U ((long) 0x00a00000 ) /* lien de type setup */
296 #define TTV_LINE_O ((long) 0x00c00000 ) /* lien de type hold */
297 #define TTV_LINE_CONT ((long) 0x00800000 ) /* lien de type contrainte */
298 #define TTV_LINE_NOINDEX ((int ) 0x80000000 ) /* lien sans index */
301 #define TTV_LINE_SETUP ((long) 0x00000001 ) /* lien cont setup */
302 #define TTV_LINE_HOLD ((long) 0x00000002 ) /* lien cont hold */
303 #define TTV_LINE_ACCESS ((long) 0x00000004 ) /* lien cont access */
304 #define TTV_LINE_REMOVAL ((long) 0x00000008 ) /* lien cont removal */
305 #define TTV_LINE_RECOVRY ((long) 0x00000010 ) /* lien cont recovry */
306 #define TTV_LINE_SKEW ((long) 0x00000020 ) /* lien cont skew */
307 #define TTV_LINE_WIDTH ((long) 0x00000040 ) /* lien cont width */
308 #define TTV_LINE_NEW ((long) 0x00000080 ) /* lien nouveau */
310 /* type user des lines */
311 #define TTV_LINE_CMDMAX ((long) 0x00000001 ) /* command de lien pour max */
312 #define TTV_LINE_CMDMIN ((long) 0x00000002 ) /* command de lien pour min */
313 #define TTV_LINE_PREVLINE ((long) 0x00000003 ) /* lien precedant pour free */
314 #define TTV_LINE_PREVLDUAL ((long) 0x00000004 ) /* lien dual precedant */
315 #define TTV_LINE_INSNAME ((long) 0x00000005 ) /* lien dual precedant */
316 #define TTV_LINE_MODNAME ((long) 0x00000006 ) /* lien dual precedant */
317 #define TTV_LINE_CONTR ((long) 0x00000007 ) /* lien de type contrainte */
318 #define TTV_SSTA_LINE_INDEX 0x00000008
320 /* type de recherche de chemin */
321 #define TTV_FIND_MARQUE ((long) 0x10000000 ) /* marquage de la recherche */
322 #define TTV_FIND_MAX ((long) 0x00000001 ) /* recherche des chemins max */
323 #define TTV_FIND_MIN ((long) 0x00000002 ) /* recherche des chemins mix */
324 #define TTV_FIND_LINE ((long) 0x00000004 ) /* recherche avec liens */
325 #define TTV_FIND_PATH ((long) 0x00000008 ) /* recherche avec chemins */
326 #define TTV_FIND_HZ ((long) 0x00000010 ) /* recherche des chemins HZ */
327 #define TTV_FIND_PR ((long) 0x00000020 ) /* recherche des chemins PR */
328 #define TTV_FIND_EV ((long) 0x00000040 ) /* recherche des chemins HZ */
329 #define TTV_FIND_HIER ((long) 0x00000080 ) /* recherche stop a CB et CT */
330 #define TTV_FIND_DUAL ((long) 0x00000100 ) /* recherche avec liens dual */
331 #define TTV_FIND_CRITIC ((long) 0x00000200 ) /* recherche avec critic */
332 #define TTV_FIND_NOTSAVE ((long) 0x00000400 ) /* recherche sans sauvegarde */
333 #define TTV_FIND_NOTCLASS ((long) 0x00000800 ) /* recherche sans classement */
334 #define TTV_FIND_FACTLOC ((long) 0x00001000 ) /* factorisation local */
335 #define TTV_FIND_FACTGLO ((long) 0x00002000 ) /* factorisation global */
336 #define TTV_FIND_R ((long) 0x00004000 ) /* s'arrete aux commandes */
337 #define TTV_FIND_S ((long) 0x00008000 ) /* s'arrete aux commandes */
338 #define TTV_FIND_CMD ((long) 0x00010000 ) /* s'arrete aux commandes */
339 #define TTV_FIND_MASKOR ((long) 0x00020000 ) /* recherche mask or */
340 #define TTV_FIND_MASKAND ((long) 0x00040000 ) /* recherche mask and */
341 #define TTV_FIND_MASKNOT ((long) 0x00080000 ) /* recherche mask not */
342 #define TTV_FIND_NOT_UPUP ((long) 0x00100000 ) /* recherche chemin up up */
343 #define TTV_FIND_NOT_UPDW ((long) 0x00200000 ) /* recherche chemin up dw */
344 #define TTV_FIND_NOT_DWUP ((long) 0x00400000 ) /* recherche chemin dw up */
345 #define TTV_FIND_NOT_DWDW ((long) 0x00800000 ) /* recherche chemin dw dw */
346 #define TTV_FIND_RC ((long) 0x01000000 ) /* recherche de delay rc */
347 #define TTV_FIND_GATE ((long) 0x02000000 ) /* recherche de delay porte */
348 #define TTV_FIND_SIG ((long) 0x04000000 ) /* recherche avec des signaux*/
349 #define TTV_FIND_CARAC ((long) 0x08000000 ) /* chemin caracterisees */
350 #define TTV_FIND_LUT ((long) 0x20000000 ) /* chemin avec lut */
351 #define TTV_FIND_DELAY ((long) 0x40000000 ) /* chemin avec delay pire */
352 #define TTV_FIND_LINETOP ((long) 0x80000000 ) /* chemin avec delay pire */
353 #define TTV_FIND_ALL ((long) 0x00001000 ) /* recherche tout les chemins*/
354 #define TTV_FIND_ACCESS ((long) 0x00002000 ) /* recherche des access */
355 #define TTV_FIND_SETUP ((long) 0x00004000 ) /* recherche des setup */
356 #define TTV_FIND_HOLD ((long) 0x00008000 ) /* recherche des hold */
357 #define TTV_FIND_PATHDET ((long) 0x01000000 ) /* recherche de detail de ch */
359 /* type de fichier pour le driver et le parser */
360 #define TTV_FILE_TTX ((long) 0x00000001 ) /* fichier ttx */
361 #define TTV_FILE_DTX ((long) 0x00000002 ) /* fichier dtx */
362 #define TTV_FILE_TTV ((long) 0x00000004 ) /* fichier ttv */
363 #define TTV_FILE_DTV ((long) 0x00000008 ) /* fichier dtv */
364 #define TTV_FILE_INF ((long) 0x00000010 ) /* parse le fichier inf */
365 #define TTV_FILE_CTX ((long) 0x00000020 ) /* parse le fichier inf */
366 #define TTV_FILE_MARQUE ((long) 0x10000000 ) /* marquage */
368 /* delai et front des evenements et des liens */
369 #define TTV_NOTIME (LONG_MIN ) /* pas de temps */
370 #define TTV_NOSLOPE (LONG_MIN ) /* pas de front */
371 #define TTV_NORES ((long) 0x00000000 ) /* pas de resistance */
372 #define TTV_NOS (LONG_MIN ) /* pas de s */
373 #define TTV_NOCAPA (-1.0e5 ) /* pas de capa */
375 /* type de calcul des delais */
376 #define TTV_MODE_LINE 'L' /* sauvegarde dans la line */
377 #define TTV_MODE_DELAY 'D' /* sauvegarde dans le delay */
378 #define TTV_MODE_NOTSTORE 'S' /* pas de sauvegarde */
380 /* type de point d'arret */
381 #define TTV_SIG_BEGINSEARCH ((long) 0x00000001 )
382 #define TTV_SIG_ENDSEARCH ((long) 0x00000002 )
383 #define TTV_SIG_BEGINPATH ((long) 0x00000004 )
384 #define TTV_SIG_ENDPATH ((long) 0x00000008 )
385 #define TTV_SIG_CROSS ((long) 0x00000010 )
387 /* type de recherche */
388 #define TTV_SEARCH_CRITIC 'C'
389 #define TTV_SEARCH_PATH 'p'
390 #define TTV_SEARCH_CRITICPATH 'P'
392 /* type user des paths */
393 #define TTV_PATH_PREVIOUS_NODE 0x00000001 /* node before path end, use only with stb */
394 #define TTV_PATH_PERIOD_CHANGE 0x00000002 /* period change due to filters */
395 #define TTV_PATH_OUTPUT_PHASE 0x00000003
396 #define TTV_PATH_END_VT 0x00000004
397 #define TTV_PATH_PHASE_INFO 0x00000005
399 /* type user des critic */
400 #define TTV_CRITIC_TABMC 0x00000001
402 /* pseudo fonction */
403 #define TTV_LINETYPE(line) (((line->TYPE & TTV_LINE_RC) == TTV_LINE_RC) ? \
404 TTV_FIND_RC : (long)0)
407 extern int TTV_MARK_MODE
;
408 #define TTV_MARK_MODE_DO 1
409 #define TTV_MARK_MODE_USE 2
411 // mask pour le champ clock_flag de ttvcritic
412 #define TTV_NODE_FLAG_ISCLOCK 1
413 #define TTV_NODE_FLAG_FIRST_OF_DETAIL 2
414 #define TTV_NODE_FLAG_ISLATCH_ACCESS 4
415 #define TTV_NODE_FLAG_NOALLOC 8
417 #define TTV_SIG_GATE_CONFLICT 90
418 #define TTV_SIG_GATE_TRISTATE 91
419 #define TTV_SIG_GATE_TRISTATE_CONFLICT 92
420 #define TTV_SIG_GATE_DUAL_CMOS 93
421 #define TTV_SIG_GATE_MEMSYM 94
422 #define TTV_SIG_GATE_NAND_RS 95
423 #define TTV_SIG_GATE_NOR_RS 96
424 #define TTV_SIG_GATE_RS 97
425 #define TTV_SIG_GATE_LATCH 98
426 #define TTV_SIG_GATE_FLIPFLOP 99
428 // mask pour les flags de signaux
429 #define TTV_SIG_FLAGS_DONTCROSS 0x1
430 #define TTV_SIG_FLAGS_ISDATA 0x2
431 #define TTV_SIG_FLAGS_ISSLAVE 0x4
432 #define TTV_SIG_FLAGS_ISMASTER 0x8
433 //#define TTV_SIG_FLAGS_ISSET 0x10
434 //#define TTV_SIG_FLAGS_ISRESET 0x20
435 #define TTV_SIG_FLAGS_TRANSPARENT 0x40
437 #define TTV_FINDSTRUCT_FLAGS_NOFILTERMAX 1
438 #define TTV_FINDSTRUCT_FLAGS_FORCEDTRANSPARENCY 2
439 #define TTV_FINDSTRUCT_FLAGS_MUSTBECLOCK 4
440 #define TTV_FINDSTRUCT_FLAGS_ISIDEAL 8
441 #define TTV_FINDSTRUCT_FLAGS_LAST_CROSSED_IS_PRECH 16
442 #define TTV_FINDSTRUCT_CROSS_ENABLED 32
444 #define TTV_TPS_FINDSTRUCT_THRU_FILTER_NOCROSS 1
446 /* STRUCTURES DE TTV */
448 typedef struct ttvnode_vcd_info
450 struct ttvsig
*PREVSIG
;
455 typedef struct ttvtrans_vcd_power
457 struct ttvtrans_vcd_power
*NEXT
;
458 struct ttvtrans_vcd_power
*PREV
;
462 } ttvtrans_vcd_power
;
470 typedef struct ttvfind_stb_stuff
472 struct ttvfind_stb_stuff
*NEXT
;
473 char PHASE
, STARTPHASE
;
475 long CROSSDELAY
; /* instant de transparence */
476 long NOMORECROSSDELAY
; /* instant de fin de transparence */
477 long IDEAL_CROSSDELAY
; /* instant de transparence */
478 long IDEAL_NOMORECROSSDELAY
; /* instant de fin de transparence */
479 long CROSSDELAY_MIN
; /* delay min qui peut crosser*/
483 typedef struct ttvpath_stb_stuff
485 struct ttvpath_stb_stuff
*NEXT
;
491 typedef struct ttvfind
/* evenement d'un signal */
493 struct ttvfind
*NEXT
; /* pointeur sur le suivant */
494 long TYPE
; /* type dans la fifo */
495 long DELAY
; /* delay pour les parcours */
496 struct ttvline
*OUTLINE
; /* retour de chemin */
497 char FIFO
; /* fifo level */
500 char PERIODE
; /* phase max d'origine */
501 char ORGPHASE
; /* phase min d'origine */
502 // char ORGPHASE, PHASE ; /* phase min d'origine */
503 ttvfind_stb_stuff
*STB
;
507 typedef struct ttvevent
/* evenement d'un signal */
509 struct ttvsig
*ROOT
; /* pointeur sur le signal */
510 long TYPE
; /* type de signal */
511 struct ttvline
*INLINE
; /* lien de l'evenement */
512 struct ttvline
*INPATH
; /* chemin de l'evenement */
513 struct ttvfind
*FIND
; /* info de recherche */
514 ptype_list
*USER
; /* champs utilisateur */
518 typedef struct ttvsig
/* signal pour le timing */
520 char *NAME
; /* nom du signal */
521 char *NETNAME
; /* nom du net */
522 float CAPA
; /* capacite associe */
523 struct ttvfig
*ROOT
; /* ttvfig du signal */
524 long TYPE
; /* type de signal */
525 struct ttvevent NODE
[2] ; /* 2 evenement du signal */
526 ptype_list
*USER
; /* champs utilisateur */
527 int PNODE
[2]; // pas dans le champ NODE pour gagner en 64bits
531 typedef struct ttvsig_capas
541 typedef struct ttvsbloc
/* liste de blocs de signaux */
543 struct ttvsbloc
*NEXT
; /* next pour liste chainee */
544 struct ttvsig SIG
[TTV_MAX_SBLOC
] ; /* tableau de signaux */
548 typedef struct ttvdelay
/* delay modifier */
550 long VALMAX
; /* valeur du temps max */
551 long FMAX
; /* valeur du front max */
552 long VALMIN
; /* valeur du temps min */
553 long FMIN
; /* valeur du front min */
554 float CMAX
; /* valeur de capa max */
555 float CMIN
; /* valeur de capa min */
565 typedef struct ttvline
/* lien entre evenement */
567 struct ttvline
*NEXT
; /* champs next pour liste */
568 struct ttvfig
*FIG
; /* ttvfif pere du lien */
569 struct ttvevent
*ROOT
; /* evenement destination */
570 long TYPE
; /* type de lien */
571 int INDEX
; /* index du lien */
572 struct ttvevent
*NODE
; /* evenement source */
573 long VALMAX
; /* valeur du temps max */
574 long FMAX
; /* valeur du front max */
575 long VALMIN
; /* valeur du temps min */
576 long FMIN
; /* valeur du front min */
577 char *MDMAX
; /* modele de temps max */
578 char *MDMIN
; /* modele de temps min */
579 char *MFMAX
; /* modele de temps max */
580 char *MFMIN
; /* modele de temps min */
581 ptype_list
*USER
; /* champs utilisateur */
585 typedef struct ttv_onepropinfo
599 typedef struct ttvpropinfo
601 ttv_onepropinfo CTK
, *REF
;
602 ttvline_list
*PREVIOUS_LINE
;
606 typedef struct ttvlbloc
/* liste de blocs de liens */
608 struct ttvlbloc
*NEXT
; /* next pour liste chainee */
609 struct ttvline LINE
[TTV_MAX_LBLOC
] ;/* tableau de liens */
613 typedef struct ttvcritic
/* detail de chemin */
615 struct ttvcritic
*NEXT
; /* noeud suivant */
616 struct ttvfig
*FIG
; /* figure du delay */
617 char *NAME
; /* nom du noeud */
618 char *NETNAME
; /* nom du signal */
619 char *MODNAME
; /* nom du model */
620 char *LINEMODELNAME
; /* nom du model */
621 char *INSNAME
; /* nom de l'instance */
622 long TYPE
; /* type de recherche */
623 long SIGTYPE
; /* type de signal */
624 long DATADELAY
; /* delay de la data */
625 long DELAY
; /* delay */
626 long SLOPE
; /* front */
627 long REFDELAY
; /* delay */
628 long REFSLOPE
; /* front */
629 long SIMDELAY
; /* delay */
630 long SIMSLOPE
; /* front */
631 float CAPA
; /* nom du noeud */
632 float OUTPUT_CAPA
; /* nom du noeud */
633 long PROP
; /* propriete */
634 ptype_list
*USER
; /* champs utilisateur */
635 ttvevent_list
*NODE
; /* beware, use only in stb or non cache */
636 ttvline_list
*LINE
; /* beware, use only in stb or non cache */
637 int PNODE
; /* node on the rc network */
638 char SNODE
; /* type de front */
639 char NODE_FLAG
; /* flag de clock */
643 typedef struct ttvpath
/* detail de chemin */
645 struct ttvpath
*NEXT
; /* noeud suivant */
646 struct ttvfig
*FIG
; /* figure du delay */
647 struct ttvevent
*ROOT
; /* noeud d'arrive */
648 struct ttvevent
*NODE
; /* noeud de depart */
649 struct ttvevent
*CMD
; /* command */
650 struct ttvevent
*LATCH
; /* latch */
651 struct ttvevent
*CMDLATCH
; /* latch */
652 struct ttvcritic
*CRITIC
; /* detai du chemin */
653 ptype_list
*LATCHLIST
; /* latch list */
654 long DATADELAY
; /* stabilite de la data */
655 long ACCESS
; /* access */
656 long REFACCESS
; /* access */
657 long TYPE
; /* type de recherche */
658 long DELAY
; /* delay */
659 long SLOPE
; /* front */
660 long REFDELAY
; /* delay */
661 long REFSLOPE
; /* front */
662 long DELAYSTART
; /* instant de debut */
663 long SLOPESTART
; /* front de debut */
664 timing_model
*MD
; /* Model delay */
665 timing_model
*MF
; /* Model front */
666 long CROSSMINDELAY
; /* delai min qui peut crosser */
667 ptype_list
*USER
; /* champs utilisateur */
668 long TTV_MORE_SEARCH_OPTIONS
;
670 int NBMC
; /* nombre de monte carlo */
675 typedef struct ttvinfo
/* information sur la ttvfig */
677 char *TOOLNAME
; /* outil tas ou htas */
678 char *TOOLVERSION
; /* version de l'outil */
679 char *TECHNONAME
; /* technologie elp */
680 char *TECHNOVERSION
; /* version de la technologie */
681 char *FIGNAME
; /* nom de modele */
682 struct ttvfig
*MODEL
; /* model de figure */
683 chain_list
*INSTANCES
; /* liste des intances */
684 long LEVEL
; /* niveau hierarchique */
685 int TTVYEAR
; /* annee de generation */
686 int TTVMONTH
; /* mois de generation */
687 int TTVDAY
; /* jour de generation */
688 int TTVHOUR
; /* heure de generation */
689 int TTVMIN
; /* minute de generation */
690 int TTVSEC
; /* seconde de generation */
691 long SLOPE
; /* front d'entree utilser */
692 float CAPAOUT
; /* capacite utiliser en sortie */
693 float STHHIGH
; /* capacite utiliser en sortie */
694 float STHLOW
; /* capacite utiliser en sortie */
695 float DTH
; /* capacite utiliser en sortie */
696 float TEMP
; /* temperature */
697 float TNOM
; /* temperature nominal */
698 float VDD
; /* capacite utiliser en sortie */
699 ptype_list
*USER
; /* champs utilisateur */
700 char *FILENAME
; /* nom du fichier */
705 typedef struct ttvfig
/* figure ttv */
707 struct ttvfig
*NEXT
; /* ttvfig suivante de la liste */
708 struct ttvfig
*ROOT
; /* ttvfig pere de la ttvfig */
709 long OLD
; /* age de la ttvfig */
710 char *INSNAME
; /* nom d'instance */
711 long STATUS
; /* etat de la ttvfig */
712 struct ttvinfo
*INFO
; /* information sur la ttvfig */
713 struct ttvsig
**CONSIG
; /* tableau des connecteurs */
714 long NBCONSIG
; /* nb de connecteurs */
715 struct ttvsig
**NCSIG
; /* tableau des extremites RC */
716 long NBNCSIG
; /* nb des extremites RC */
717 struct chain
*INS
; /* liste des instances */
718 struct ttvsig
**ELCMDSIG
; /* tableau des commands ext */
719 long NBELCMDSIG
; /* nb de commands ext */
720 struct ttvsig
**ILCMDSIG
; /* tableau des commands int */
721 long NBILCMDSIG
; /* nb de commands int */
722 struct ttvsig
**ELATCHSIG
; /* tableau des latchs ext */
723 long NBELATCHSIG
; /* nb de latchs ext */
724 struct ttvsig
**ILATCHSIG
; /* tableau des latchs int */
725 long NBILATCHSIG
; /* nb de latchs int */
726 struct ttvsig
**EBREAKSIG
; /* tableau des breaks ext */
727 long NBEBREAKSIG
; /* nb de breaks ext */
728 struct ttvsig
**IBREAKSIG
; /* tableau des breaks int */
729 long NBIBREAKSIG
; /* nb de breaks int */
730 struct ttvsig
**EPRESIG
; /* tableau des precharges ext */
731 long NBEPRESIG
; /* nb de precharges ext */
732 struct ttvsig
**IPRESIG
; /* tableau des precharges int */
733 long NBIPRESIG
; /* nb de precharges int */
734 struct ttvsig
**EXTSIG
; /* tableau des signaux exter */
735 long NBEXTSIG
; /* nb de signaux exter */
736 struct ttvsig
**INTSIG
; /* tableau des signaux inter */
737 long NBINTSIG
; /* nb de signaux inter */
738 struct ttvsig
**ESIG
; /* tableau des signaux externe */
739 long NBESIG
; /* nb de signaux externe */
740 struct ttvsbloc
*ISIG
; /* tableau des signaux interne */
741 long NBISIG
; /* nb de signaux interne */
742 struct ttvlbloc
*PBLOC
; /* tableau de chemin complet */
743 long NBPBLOC
; /* nb de chemin complet */
744 struct ttvlbloc
*JBLOC
; /* tableau de chemin sur T */
745 long NBJBLOC
; /* nb de chemin sur T */
746 struct ttvlbloc
*TBLOC
; /* tableau de chemin incomplet */
747 long NBTBLOC
; /* nb de chemin incomplet */
748 struct ttvlbloc
*FBLOC
; /* tableau de liens interne */
749 long NBFBLOC
; /* nb de liens interne */
750 struct ttvlbloc
*EBLOC
; /* tableau de liens complet */
751 long NBEBLOC
; /* nb de liens complet */
752 struct ttvlbloc
*DBLOC
; /* tableau de liens incomplet */
753 long NBDBLOC
; /* nb de liens incomplet */
754 struct ttvdelay
***DELAY
; /* delay modifie */
755 ptype_list
*USER
; /* champs utilisateur */
764 long Flags
; // inf miscdata->lval
765 } ttv_MultiCycleInfo
;
767 #define TTV_MULTICYCLE_ANYINPUT 0x1000000 /* a eviter: les collisions avec les flags multicycle de inf*/
769 typedef struct stb_directive
771 struct stb_directive
*next
;
772 ttvsig_list
*target2
;
775 char filter
, target1_dir
, target2_dir
, operation
;
782 unsigned int globalseed
;
783 unsigned int mainseed
;
798 } ttv_line_delay_ssta_info
;
802 ttv_line_delay_ssta_info delaymax
, delaymin
;
803 } ttv_line_ssta_info
;
809 /* VARIABLES DE TTV */
811 extern ttvfig_list
*TTV_LIST_TTVFIG
;
812 extern chain_list
*TTV_HEAD_TTVFIG
;
813 extern long TTV_SEUIL_MAX
;
814 extern long TTV_SEUIL_MIN
;
815 extern long TTV_INFO_CAPARM
;
816 extern long TTV_INFO_CAPASW
;
817 extern short TTV_INFO_ARGC
;
818 extern char **TTV_INFO_ARGV
;
819 extern char TTV_PATH_SAVE
;
820 extern char *TTV_INFO_TOOLDATE
;
821 extern chain_list
*TTV_NAME_IN
;
822 extern chain_list
*TTV_NAME_OUT
;
823 extern char TTV_LANG
;
824 extern long TTV_NUMB_SIG
;
825 extern long TTV_NUMB_LINE
;
826 extern long TTV_MAX_SIG
;
827 extern long TTV_MAX_LINE
;
828 extern long TTV_MAX_FCYCLE
;
829 extern float TTV_UNIT
;
830 extern int TTV_QUIET_MODE
;
831 extern long TTV_PROPAGATE_FORCED_SLOPE
;
832 extern float TTV_PROPAGATE_FORCED_CAPA
;
833 /* FONCTION DE TTV */
835 extern ttvfig_list
* ttv_allocttvfig
__P(( char*,
839 extern void ttv_lockttvfig
__P(( ttvfig_list
* ));
840 extern void ttv_unlockttvfig
__P(( ttvfig_list
* ));
841 extern int ttv_freettvfig
__P(( ttvfig_list
* ));
842 extern int ttv_freettvfiglist
__P(( chain_list
* ));
843 extern void ttv_freeall
__P(( void ));
844 extern int ttv_freeallttvfig
__P(( ttvfig_list
* ));
845 extern int ttv_freepathlist
__P(( ttvpath_list
* ));
846 extern int ttv_freecriticlist
__P(( ttvcritic_list
* ));
847 extern ttvsig_list
** ttv_allocreflist
__P(( chain_list
*, long ));
848 extern chain_list
* ttv_chainreflist
__P(( ttvfig_list
*,
852 extern int ttv_freereflist
__P(( ttvfig_list
*,
856 extern void ttv_addcaracline
__P(( ttvline_list
*,
862 extern int ttv_calcaracline
__P(( ttvline_list
*,
867 extern void ttv_addinfreelist
__P(( ttvfig_list
*, long ));
868 extern int ttv_delinfreelist
__P(( ptype_list
*, ttvfig_list
* ));
869 extern int ttv_freettvfigmemory
__P(( ttvfig_list
*, long ));
870 extern int ttv_freememoryiffull
__P(( ttvfig_list
*, long ));
871 extern int ttv_freememoryifmax
__P(( ttvfig_list
*, long ));
872 extern void ttv_fifopush
__P(( ttvevent_list
* ));
873 extern ttvevent_list
* ttv_fifopop
__P(( void ));
874 extern void ttv_fifoclean
__P(( void ));
875 extern void ttv_fifodelete
__P(( void ));
876 extern ttvcritic_list
* ttv_getcritic
__P(( ttvfig_list
*,
884 extern ttvpath_list
* ttv_getcriticpath
__P(( ttvfig_list
*,
893 extern ttvpath_list
* ttv_getcriticaccess
__P(( ttvfig_list
*,
903 extern ttvpath_list
* ttv_getpath
__P(( ttvfig_list
*,
911 extern ttvpath_list
* ttv_getpathnocross
__P(( ttvfig_list
*,
919 extern ttvpath_list
* ttv_getaccessnocross
__P(( ttvfig_list
*,
927 extern ttvpath_list
* ttv_getpathsig
__P(( ttvfig_list
*,
936 extern ttvpath_list
* ttv_getpathsignocross
__P(( ttvfig_list
*,
944 extern ttvpath_list
* ttv_getaccesssignocross
__P(( ttvfig_list
*,
953 extern ttvpath_list
* ttv_getaccess
__P(( ttvfig_list
*,
962 extern ttvpath_list
* ttv_getsigaccess
__P(( ttvfig_list
*,
971 extern ttvpath_list
* ttv_getallpath
__P(( ttvfig_list
*,
980 extern ttvpath_list
* ttv_getallaccess
__P(( ttvfig_list
*,
990 extern chain_list
* ttv_getcriticpara
__P(( ttvfig_list
*,
999 extern int ttv_freecriticpara
__P(( chain_list
* )) ;
1000 extern ttvpath_list
* ttv_getpara
__P(( ttvfig_list
*,
1010 extern chain_list
* ttv_getdelay
__P(( ttvfig_list
*,
1018 extern chain_list
* ttv_getconstraint
__P(( ttvfig_list
*,
1025 long ttv_getconstraintquick(ttvfig_list
*ttvfig
,ttvfig_list
*figpath
,ttvevent_list
*tve
,ttvevent_list
*cmd
,long type
, ttvline_list
**rline
);
1027 extern int ttv_freedelaylist
__P(( chain_list
* ));
1028 extern void ttv_builtpath
__P(( ttvfig_list
*,
1031 extern char ttv_getdir
__P(( ttvsig_list
* )) ;
1032 extern void ttv_drittv(ttvfig_list
*ttvfig
, long type
, long find
, char *filename
);
1034 extern void ttv_drittvold
__P(( ttvfig_list
*,
1038 extern void ttv_detectinter
__P(( ttvfig_list
*, int )) ;
1039 extern ttvsig_list
* ttv_addsig
__P(( ttvfig_list
*,
1045 extern chain_list
* ttv_addrefsig
__P(( ttvfig_list
*,
1052 extern long ttv_gettypesig
__P(( ttvsig_list
* ));
1053 extern void ttv_delrefsig
__P(( ttvsig_list
* ));
1054 extern ttvline_list
* ttv_addline
__P(( ttvfig_list
*,
1063 extern void ttv_addconttype
__P(( ttvline_list
*,
1066 extern long ttv_getconttype
__P(( ttvline_list
* ));
1067 extern void ttv_delconttype
__P(( ttvline_list
* ));
1069 extern void ttv_addmodelline
__P(( ttvline_list
*,
1073 extern void ttv_getmodelline
__P(( ttvline_list
*,
1077 extern void ttv_delmodelline
__P(( ttvline_list
* ));
1078 extern int ttv_delline
__P(( ttvline_list
* )) ;
1079 extern long ttv_getlinetype
__P(( ttvline_list
*));
1080 extern long ttv_getnewlinetype
__P(( ttvline_list
*,
1084 extern void ttv_delcmd
__P(( ttvfig_list
*,
1087 extern ttvevent_list
* ttv_getcmd
__P(( ttvfig_list
*,
1090 extern ptype_list
* ttv_addcmd
__P(( ttvline_list
*,
1094 extern chain_list
* ttv_getlrcmd
__P(( ttvfig_list
*,
1097 extern ttvevent_list
* ttv_getlinecmd
__P(( ttvfig_list
*,
1101 extern ttvfig_list
* ttv_gethtmodel
__P(( char *));
1102 extern ttvfig_list
* ttv_getttvfig
__P(( char*,
1105 extern ttvfig_list
* ttv_givehead
__P(( char*,
1109 extern ttvfig_list
* ttv_givettvfig
__P(( char*,
1113 extern ttvfig_list
* ttv_getttvins
__P(( ttvfig_list
*,
1117 extern chain_list
* ttv_getttvfiglist
__P(( ttvfig_list
* ));
1118 extern char* ttv_getinsname
__P(( ttvfig_list
*,
1122 extern char* ttv_getsigname
__P(( ttvfig_list
*,
1126 extern char* ttv_getnetname
__P(( ttvfig_list
*,
1130 extern ttvsig_list
* ttv_getsig
__P(( ttvfig_list
*,
1133 extern ttvsig_list
* ttv_getsigbyhash
__P(( ttvfig_list
*,
1136 extern ttvsig_list
* ttv_getsigbyname
__P(( ttvfig_list
*,
1140 extern ttvsig_list
* ttv_getsigbyinsname
__P(( ttvfig_list
*,
1144 extern ttvsig_list
* ttv_getsigbyindex
__P(( ttvfig_list
*,
1148 extern chain_list
* ttv_getsigbytype
__P(( ttvfig_list
*,
1154 chain_list
*ttv_getsigbytype_and_netname(ttvfig_list
*ttvfig
,ttvfig_list
*ttvins
,long type
,chain_list
*mask
);
1156 extern chain_list
* ttv_getsignamelist
__P(( ttvfig_list
*,
1160 extern void ttv_freenamelist
__P(( chain_list
* ));
1161 extern chain_list
* ttv_getallsigbytype
__P(( ttvfig_list
*,
1165 extern void ttv_setsiglevel
__P(( ttvsig_list
*, long ));
1166 extern long ttv_getsiglevel
__P(( ttvsig_list
* ));
1167 extern void ttv_delsiglevel
__P(( ttvfig_list
*,
1170 extern int ttv_islinelevel
__P(( ttvfig_list
*,
1174 extern void ttv_expfigsig
__P(( ttvfig_list
*,
1181 extern FILE * ttv_openfile
__P((ttvfig_list
*,
1185 extern long ttv_existefile
__P((ttvfig_list
*,
1188 extern ttvfig_list
* ttv_parsttvfig
__P(( ttvfig_list
*,
1192 extern void ttv_builthtabfig
__P(( ttvfig_list
*, long ));
1193 extern void ttv_builthtabins
__P(( ttvfig_list
*, long ));
1194 extern void ttv_builthtabttvfig
__P(( ttvfig_list
*, long ));
1195 extern void ttv_freehtabfig
__P(( ttvfig_list
*, long ));
1196 extern void ttv_freehtabttvfig
__P(( ttvfig_list
*, long ));
1198 extern char* ttv_revect
__P(( char* ));
1199 extern char* ttv_devect
__P(( char* ));
1200 extern int ttv_testmask
__P(( ttvfig_list
*,
1204 extern int ttv_jokersubst
__P(( char*,
1208 extern void ttv_checkfigins
__P(( ttvfig_list
*,
1211 extern void ttv_checkallinstool
__P(( ttvfig_list
* ));
1212 extern void ttv_setttvlevel
__P(( ttvfig_list
* ));
1213 extern void ttv_setsigttvfiglevel
__P(( ttvfig_list
* ));
1214 extern void ttv_setttvdate
__P(( ttvfig_list
*, long ));
1215 extern void ttv_setcachesize
__P(( double, double ));
1216 void ttv_disablecache(ttvfig_list
*ttvfig
);
1217 extern double ttv_getsigcachesize
__P(( void ));
1218 extern double ttv_getlinecachesize
__P(( void ));
1219 extern double ttv_getsigmemorysize
__P(( void ));
1220 extern double ttv_getlinememorysize
__P(( void ));
1221 extern void ttv_cleantagttvfig
__P(( long ));
1222 extern char* ttv_getstmmodelname
__P(( ttvfig_list
*,
1227 extern int ttv_islocononlyend
__P(( ttvfig_list
*,
1231 extern int ttv_islineonlyend
__P(( ttvfig_list
*,
1235 extern void ttv_getinffile
__P(( ttvfig_list
* ));
1236 extern chain_list
* ttv_getclocklist
__P(( ttvfig_list
* ));
1237 chain_list
*ttv_getasyncsiglist(ttvfig_list
* ttvfig
);
1239 extern chain_list
* ttv_getclocksiglist
__P(( ttvfig_list
* ));
1241 extern chain_list
* ttv_addlooplist
__P(( ttvfig_list
*,
1244 extern chain_list
* ttv_detectloop
__P(( ttvfig_list
*,
1247 extern void ttv_printloop
__P(( int,
1251 extern int ttv_existeline
__P(( ttvfig_list
*,
1256 extern ttvline_list
*ttv_getline
__P(( ttvfig_list
*,
1266 extern ttvfig_list
* ttv_builtrefsig
__P(( ttvfig_list
* ));
1267 extern ttvdelay_list
*ttv_getlinedelay
__P(( ttvline_list
*));
1268 extern ttvdelay_list
*ttv_addlinedelay
__P(( ttvline_list
*,
1276 extern void ttv_dellinedelay
__P(( ttvline_list
*));
1277 extern long ttv_getdelaymax
__P(( ttvline_list
*));
1278 extern long ttv_getdelaymin
__P(( ttvline_list
*));
1279 extern long ttv_getslopemax
__P(( ttvline_list
*));
1280 extern long ttv_getslopemin
__P(( ttvline_list
*));
1281 extern int ttv_calcnodedelay
__P(( ttvline_list
*,
1290 extern long ttv_calclinedelayslope
__P(( ttvline_list
*,
1324 extern void ttv_calcgatercdelayslope
__P(( ttvline_list
*,
1335 extern void ttv_updatenodedelayslope
__P(( ttvfig_list
*,
1341 extern long ttv_calcnodedelayslope
__P(( ttvfig_list
*,
1347 extern long ttv_getdelaynode
__P(( ttvfig_list
*,
1352 extern long ttv_getslopenode
__P(( ttvfig_list
*,
1358 extern chain_list
*ttv_levelise
__P(( ttvfig_list
*,
1362 extern void ttv_movedelayline
__P(( ttvfig_list
*,
1365 extern void ttv_cleanfigmodel
__P(( ttvfig_list
*,
1369 chain_list
*ttv_calcfigdelay(ttvfig_list
*ttvfig
,chain_list
*chainnode
,long level
,long type
, char mode
, int (*init_func
)(ttvevent_list
*, void *), int (*end_func
)(ttvevent_list
*, void *), void *data
, int nosonstraint
);
1370 extern void ttv_freefigdelay
__P(( chain_list
* ));
1371 extern long ttv_absmaxdiffslope
__P(( long,
1375 extern ttvdelay_list
*ttv_getnodedelay
__P(( ttvevent_list
* ));
1376 extern void ttvenv
__P(( void ));
1377 extern int ttv_isemptyttvins
__P(( ttvfig_list
*,
1380 extern void ttv_flatttvfigfromlist
__P(( ttvfig_list
*,
1384 extern void ttv_flatttvfig
__P(( ttvfig_list
*,
1388 extern int ttv_ctxparse
__P(( ttvfig_list
* ));
1389 extern void ttv_ctxdrive
__P(( ttvfig_list
* ));
1390 extern ttvsig_list
* ttv_getttvsig
__P(( ttvfig_list
*,
1397 ttvsig_list
* ttv_getttvsig_sub(ttvfig_list
*figdest
, losig_list
*losig
, long level
, long type
);
1398 extern void ttv_addsigcapas
__P(( ttvsig_list
*ttvsig
,
1406 extern ttvsig_capas
* ttv_getsigcapas
__P(( ttvsig_list
*ttvsig
,
1414 extern void ttv_getallsigcapas
__P(( ttvsig_list
*ttvsig
,
1422 extern void ttv_delsigcapas
__P(( ttvsig_list
*ttvsig
1424 extern void ttv_setallsigcapas
__P(( lofig_list
*lofig
,
1428 extern int ttv_isttvsigdriver
__P(( ttvfig_list
*,
1433 extern ttvfig_list
* ttv_getttvinsbyhiername
__P(( ttvfig_list
*,
1436 extern losig_list
* ttv_getlosigfromevent
__P(( ttvfig_list
*,
1442 extern lofig_list
*ttv_getrcxlofig
__P(( ttvfig_list
*));
1443 extern void ttv_delrcxlofig
__P(( ttvfig_list
*));
1444 extern void ttv_addaxis
__P(( inffig_list
*ifl
, ttvfig_list
*ttvfig
));
1445 extern void ttv_readcell
__P(( char * ));
1446 extern ttvfig_list
*ttv_readcell_TTVFIG
;
1447 extern ttvpath_list
* ttv_classpath
__P(( ttvpath_list
*, long ));
1448 extern ptype_list
* ttv_getlatchaccess
__P(( ttvfig_list
*,
1453 void ttv_post_traitment(ttvfig_list
*ttvfig
);
1454 long ttv_calcnodeconstraint(ttvfig_list
*ttvfig
, long level
, ttvevent_list
*node
, long type
, char mode
);
1455 void ttv_init_stm(ttvfig_list
*ttvfig
);
1458 // propagation functions
1460 long ttv_RecomputeLineChain(ttvfig_list
*tvf
, ttvfig_list
*tvi
, chain_list
*ordered_line_list
, long inputSLEW
, long *outputSLEW
, float *energy
, float capa
, long type
, long mode
, int doref
);
1461 void ttv_RecomputeCleanLineChain(chain_list
*ordered_line_list
);
1462 chain_list
*ttv_BuildLineList(ttvfig_list
*ttvfig
, ttvevent_list
*root
, ttvevent_list
*node
, long type
, int *usectk
);
1463 void ttv_RecomputeFreeLineChain(chain_list
*ordered_line_list
);
1464 void ttv_CleanPropagation_PRECISION_LEVEL1(chain_list
*line_list
);
1465 chain_list
*ttv_DoPropagation_PRECISION_LEVEL1(ttvfig_list
*tvf
, ttvfig_list
*tvi
, ttvevent_list
*node
, ttvevent_list
*root
, long type
);
1466 void ttv_DoCharacPropagation(ttvfig_list
*tvf
, ttvfig_list
*tvi
, ttvevent_list
*node
, ttvevent_list
*root
, long type
, chain_list
*slope_list
, chain_list
*capa_list
, chain_list
**resd
, chain_list
**ress
, chain_list
**rese
, chain_list
*inputlinelist
);
1467 ttvpropinfo_list
*ttv_get_prop_info(ttvevent_list
*node
);
1468 long ttv_GET_FINDDELAY(ttvevent_list
*node
, int ref
);
1469 long ttv_GET_LINE_DELAY(ttvline_list
*line
, long type
, int ref
);
1470 long ttv_GET_LINE_SLEW(ttvline_list
*line
, long type
, int ref
);
1471 int ttv_SetPrecisionLevel(int val
);
1472 void ttv_set_search_exclude_type(long typestart
, long typeend
, long *oldstart
, long *oldend
);
1473 int ttv_testnetnamemask(ttvfig_list
*ttvfig
, ttvsig_list
*ptsig
, chain_list
*mask
);
1474 void ttv_FreeMarkedSigList();
1476 extern ttvpath_list
* ttv_allocpath
__P(( ttvpath_list
*,
1501 ttvcritic_list
*ttv_alloccritic(ttvcritic_list
*headcritic
,ttvfig_list
*ttvfigh
,ttvfig_list
*ttvfig
,ttvevent_list
*node
,long type
,long data
,long delay
,long slope
,long newdelay
,long newslope
, char nodeflags
, char *linemodelname
, ttvline_list
*line
);
1503 float ttv_get_signal_output_capacitance(ttvfig_list
*tvf
, ttvsig_list
*tvs
);
1505 void ttv_activate_real_access_mode(int val
);
1506 void ttv_activate_path_and_access_mode(int val
);
1508 void ttv_getmargin(inffig_list
*myfig
, ttvsig_list
*tvs
, char *infregex
, char *infsection
, float *factor
, long *delta
);
1509 chain_list
*ttv_getallmarginregex(inffig_list
*myfig
);
1510 ht
*ttv_buildclockdetailht(NameAllocator
*na
, ttvfig_list
*tvf
, ttvpath_list
*clockp
, long findmode
);
1511 void ttv_checkpathoverlap(NameAllocator
*na
, ttvfig_list
*tvf
, ttvpath_list
*datap
, ht
*cht
, long findmode
, long *overlapc
, long *overlapd
);
1513 int ttv_mark_signals_with_corresponding_path_margin_regex(ttvfig_list
*tvf
);
1514 void ttv_unmark_signals_corresponding_path_margin_regex(ttvfig_list
*tvf
);
1515 int ttv_get_path_margins(ttvfig_list
*tvf
, ttvpath_list
*datapath
, ttvpath_list
*clockpath
, long *margedata
, long *margeclock
, long *overlapc
, long *overlapd
,int clockisdata
, int dataisclock
);
1516 void ttv_checkinfchange(ttvfig_list
*tvf
);
1517 extern long ttv_getnodeslope
__P(( ttvfig_list
*, ttvfig_list
*, ttvevent_list
*, long *, long )) ;
1519 #define TTV_MORE_OPTIONS_REAL_ACCESS 0x1
1520 #define TTV_MORE_OPTIONS_PATH_AND_ACCESS 0x2
1521 #define TTV_MORE_OPTIONS_ENABLE_STOP_ON_TTV_SIG_N 0x4
1522 #define TTV_MORE_OPTIONS_MULTIPLE_COMMAND_CRITIC_ACCESS 0x8
1523 #define TTV_MORE_OPTIONS_SIMPLE_CRITIC 0x10
1524 #define TTV_MORE_OPTIONS_DIFF_ENDING_CRITIC_COMMAND 0x20
1525 #define TTV_MORE_OPTIONS_MUST_BE_CLOCK 0x40
1526 #define TTV_MORE_OPTIONS_DONT_FILTER_ENDING_NODE 0x80
1527 #define TTV_MORE_OPTIONS_FLAG_PROGATE_USED 0x100
1528 #define TTV_MORE_OPTIONS_FLAG_THRU_FILTER_FOUND 0x200
1529 #define TTV_MORE_OPTIONS_ONLYHZ 0x400
1530 #define TTV_MORE_OPTIONS_ONLYNOTHZ 0x800
1531 #define TTV_MORE_OPTIONS_ADD_ASYNCHRONOUS_PATHS 0x1000
1532 #define TTV_MORE_OPTIONS_CROSS_STOP_NODE_IF_NONSTOP 0x2000
1533 #define TTV_MORE_OPTIONS_MOST_DIRECT_ACCESS 0x4000
1534 #define TTV_MORE_OPTIONS_USE_DATA_START 0x8000
1535 #define TTV_MORE_OPTIONS_USE_CLOCK_START 0x10000
1536 #define TTV_MORE_OPTIONS_USE_NODE_NAME_ONLY 0x20000
1537 #define TTV_MORE_OPTIONS_KEEP_PHASE_INFO 0x40000
1538 #define TTV_MORE_OPTIONS_CRITIC_PARA_SEARCH 0x80000
1539 #define TTV_MORE_OPTIONS_ADD_ASYNCHRONOUS_ACCESS 0x100000
1540 //#define TTV_MORE_OPTIONS_ENABLE_START_ON_TTV_SIG_Q 8
1542 extern long TTV_MORE_SEARCH_OPTIONS
;
1543 extern chain_list
*TTV_EXPLICIT_CLOCK_NODES
, *TTV_EXPLICIT_START_NODES
, *TTV_EXPLICIT_END_NODES
;
1544 extern int ttv_canbeinfalsepath(ttvevent_list
*ev
, char where
);
1545 int ttv_hasaccessfalsepath(ttvfig_list
*ttvfig
,ttvevent_list
*eventout
, chain_list
*clocks
);
1547 extern chain_list
*ttv_getoutputlines(ttvevent_list
*node
, long type
);
1548 ttvevent_list
*ttv_opposite_event(ttvevent_list
*cmd_ev
);
1549 void ttv_experim_setstopaftergate1(int val
);
1550 extern ttvpath_list
* ttv_getpathnocross_v2
__P(( ttvfig_list
*, ttvfig_list
*, ttvsig_list
*, chain_list
*, long, long, long,int));
1551 extern ttvpath_list
* ttv_getaccessnocross_v2
__P(( ttvfig_list
*, ttvfig_list
*, ttvsig_list
*, chain_list
*, long, long, long,int));
1552 ttvpath_list
*filter_parallel_to_node(ttvpath_list
*pth
);
1554 #define TTV_SEARCH_INFORMATIONS_CRITIC_FALSEPATH 0x1
1555 long ttv_get_search_informations();
1556 void ttv_reset_search_informations();
1557 void ttv_activate_search_charac_mode(chain_list
*slopes_in
, chain_list
*capas_in
);
1558 void ttv_retreive_search_charac_results(chain_list
**delays
, chain_list
**slopes
, chain_list
**energy
);
1560 long ttv_getloadedfigtypes(ttvfig_list
*tvf
);
1561 chain_list
*ttv_getendpoints(ttvfig_list
*tvf
, chain_list
*sigl
, long type
);
1562 ttvpath_list
*ttv_create_one_node_path(ttvfig_list
*ttvfig
,ttvfig_list
*ttvins
,ttvevent_list
*node
,long type
);
1563 void ttv_activate_multi_cmd_critic_mode(int val
);
1564 void ttv_activate_simple_critic(int val
);
1565 void ttv_activate_multi_end_cmd_critic_mode(int val
);
1566 void ttv_search_mode(int set
, long mask
);
1568 long ttv_testsigflag(ttvsig_list
*tvs
, long mask
);
1569 void ttv_setsigflag(ttvsig_list
*tvs
, long mask
);
1570 void ttv_resetsigflag(ttvsig_list
*tvs
, long mask
);
1571 void ttv_setsigflaggate(ttvsig_list
*tvs
, char num
);
1572 int ttv_getgateinfo(int num
, char **name
, int *nbinput
);
1573 int ttv_findgateinfo(char *sign
);
1575 void ttv_update_slope_and_output_capa(ttvfig_list
*tf
);
1576 int ttv_check_update_slope_and_output_capa(ttvfig_list
*tf
);
1577 void ttv_init_refsig(ttvfig_list
*ttvfig
, ttvsig_list
*ptsig
, char *name
, char *net
, float capa
, long type
);
1579 extern long ttv_getinittime
__P(( ttvfig_list
*, ttvevent_list
*, char, long, char, char *)) ;
1580 ttvpath_list
*ttv_duppath(ttvpath_list
*pt
);
1582 int ttv_isgateoutput(ttvfig_list
*tvf
, ttvsig_list
*tvs
,long type
);
1583 int ttv_has_strict_setup(ttvevent_list
*tve
);
1584 int ttv_addsig_addrcxpnode(int mode
);
1586 chain_list
*ttv_getconnectoraxis(ttvfig_list
*ttvfig
, int slope
, char *name
);
1587 int ttv_get_path_margins_info(ttvfig_list
*tvf
, ttvpath_list
*path
, float *factor
, long *delta
);
1588 ttvcritic_list
*ttv_dupcritic(ttvcritic_list
*pt
);
1590 extern void ttv_addhtmodel
__P(( ttvfig_list
*));
1591 extern void ttv_delhtmodel
__P(( ttvfig_list
*));
1592 extern ttvfig_list
* ttv_gethtmodel
__P(( char *));
1593 ptype_list
*ttv_getlatchdatacommands(ttvfig_list
*ttvfig
,ttvevent_list
*latch
,long type
);
1594 float ttv_getline_vt(ttvfig_list
*ttvfig
,ttvfig_list
*figpath
,ttvevent_list
*tve
,ttvevent_list
*cmd
,long type
);
1596 ptype_list
*ttv_get_directive_slopes(ttvevent_list
*tve
, int setup
, int clockisdata
, int dataisclock
);
1597 ttv_directive
*ttv_get_directive(ttvsig_list
*tvs
);
1598 chain_list
*ttv_getmatchingdirectivenodes(ttvfig_list
*tvf
, chain_list
*mask
, int nonstop
);
1600 ttvcriticmc
* ttv_alloccriticmc( int n
);
1601 void ttv_freecriticmc( ttvcriticmc
*mc
);
1603 void ttv_delassociatedcriticmc( ttvcritic_list
*c
);
1604 void ttv_setassociatedcriticmc( ttvcritic_list
*c
, ttvcriticmc
*mc
);
1605 ttvcriticmc
* ttv_getassociatedcriticmc( ttvcritic_list
*c
);
1607 unsigned int ttv_signtimingfigure( ttvfig_list
*tf
);
1608 int ttv_isfalsepath ( ttvfig_list
*, ttvevent_list
*, ttvevent_list
*, long, int clocktoclock
, ttvevent_list
*latch
);
1610 void ttv_sendttvdelays(ttvfig_list
*tvf
, int ctk
, int nbpvt
);
1611 int ttv_ssta_loadresults(ttvfig_list
*tvf
, chain_list
*filenames
, chain_list
*order
);
1612 int ttv_ssta_set_run_number(ttvfig_list
*tvf
, int num
);
1613 int ttv_ssta_buildlinestat(ttvfig_list
*tvf
);
1614 ttv_line_ssta_info
*ttv_ssta_get_ssta_info(ttvfig_list
*tvf
);
1615 int ttv_ssta_getline_index(ttvline_list
*tvl
);
1616 int ttv_ssta_getsig_index(ttvsig_list
*tvs
);
1617 float ttv_get_signal_capa(ttvsig_list
*tvs
);
1619 void ttv_set_ttv_getpath_clock_list(chain_list
*lst
);
1620 void ttv_freepathstblist(ttvpath_stb_stuff
*head
);
1622 #define _LONG_TO_DOUBLE(x) ((x)*1e-12/TTV_UNIT)
1623 #define _DOUBLE_TO_LONG(x) mbk_long_round((x)*1e12*TTV_UNIT)
1625 int ttv_get_signal_swing(ttvfig_list
*tvf
, ttvsig_list
*tvs
, float *low
, float *high
);
1626 void ttv_set_signal_swing(ttvsig_list
*tvs
, float low
, float high
);
1628 char *ttv_getnetname_sub(ttvfig_list
*ttvfig
,char *ptname
,ttvsig_list
*ptsig
, int retonly
);
1629 char *ttv_getsigname_sub(ttvfig_list
*ttvfig
,char *ptname
,ttvsig_list
*ptsig
, int retonly
);
1631 chain_list
*ttv_get_signals_from_netname(ttvfig_list
*tvf
, ht
**h
, char *netname
);
1632 void ttv_free_signals_from_netname(ht
*h
);