Initial version of donated sources by Avertec, 3.4p5.
[tas-yagle.git] / distrib / sources / tas / lib / lib_parse.c
1 /****************************************************************************/
2 /* */
3 /* Chaine de CAO & VLSI AVERTEC */
4 /* */
5 /* Produit : SPF Version 1.00 */
6 /* Fichier : spf_parse.c */
7 /* */
8 /* (c) copyright 2000 AVERTEC */
9 /* Tous droits reserves */
10 /* */
11 /* Auteur(s) : Gilles Augustins */
12 /* */
13 /****************************************************************************/
14
15 /****************************************************************************/
16 /* includes */
17 /****************************************************************************/
18
19 #include LIB_H
20 #include "lib_parse.h"
21
22 /****************************************************************************/
23 /* globals */
24 /****************************************************************************/
25
26 /****************************************************************************/
27 /* externs */
28 /****************************************************************************/
29
30 extern int libparse() ;
31 extern void librestart();
32 extern FILE *libin ;
33 eqt_ctx *libEqtCtx;
34
35 /****************************************************************************/
36 /* functions */
37 /****************************************************************************/
38
39 void lib_parse_this_file (char *filename, char *ext)
40 {
41 static char viergelib = 1 ;
42 float slope = STM_DEF_SLEW;
43 float load = STM_DEF_LOAD;
44
45 if ((libin = mbkfopen (filename, ext, "r"))) {
46 if(viergelib == 0) {
47 librestart(libin) ;
48 LIB_LINE = 1;
49 }
50 viergelib = 0 ;
51 libEqtCtx = eqt_init (EQT_NB_VARS);
52 if(V_FLOAT_TAB[__SIM_INPUT_SLOPE].SET)
53 STM_DEF_SLEW = V_FLOAT_TAB[__SIM_INPUT_SLOPE].VALUE * 1e12;
54 if(V_FLOAT_TAB[__SIM_OUT_CAPA_VAL].SET)
55 STM_DEF_LOAD = V_FLOAT_TAB[__SIM_OUT_CAPA_VAL].VALUE * 1e15;
56 libparse () ;
57 STM_DEF_SLEW = slope;
58 STM_DEF_LOAD = load;
59 eqt_term (libEqtCtx);
60 fclose (libin) ;
61 stm_exit();
62 }
63 else {
64 fprintf (stderr, "LIB ERROR : no file %s\n", filename);
65 EXIT (EXIT_FAILURE) ;
66 }
67
68 }
69
70 void lib_parse (char *filename)
71 {
72 lib_parse_this_file (filename, "lib");
73 }
74
75 chain_list *lib_load (char *filename)
76 {
77 lib_parse(filename);
78 return LIB_TTVFIG_LIST;
79
80 }
81