Initial version of donated sources by Avertec, 3.4p5.
[tas-yagle.git] / distrib / sources / tas / stm / stm_mod_print.c
1 /****************************************************************************/
2 /* */
3 /* Chaine de CAO & VLSI AVERTEC */
4 /* */
5 /* Produit : STM Version 1.00 */
6 /* Fichier : stm_mod_print.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 "stm.h"
20
21 /****************************************************************************/
22 /* functions */
23 /****************************************************************************/
24
25 void stm_mod_plotprint (timing_model *model)
26 {
27 FILE *f;
28 char fname[STM_BUFSIZE], fpname[STM_BUFSIZE];
29
30 sprintf (fname, "%s.dat", model->NAME);
31 f = fopen (fname, "w+");
32 switch (model->UTYPE) {
33 case STM_MOD_MODTBL:
34 stm_modtbl_datprint (f, model->UMODEL.TABLE);
35 break;
36 case STM_MOD_MODSCM:
37 break;
38 case STM_MOD_MODPLN:
39 break;
40 }
41 fclose (f);
42
43 sprintf (fpname, "%s.plot", model->NAME);
44 f = fopen (fpname, "w+");
45 switch (model->UTYPE) {
46 case STM_MOD_MODTBL:
47 stm_modtbl_plotprint (f, fname, model->UMODEL.TABLE);
48 break;
49 case STM_MOD_MODSCM:
50 break;
51 case STM_MOD_MODPLN:
52 break;
53 }
54 fclose (f);
55 }
56
57 /****************************************************************************/
58
59 void stm_mod_print (FILE *f, timing_model *model)
60 {
61 fprintf (f, "\tmodel (\n");
62 fprintf (f, "\t\tname (%s)\n", model->NAME);
63 if(model->VTH != STM_UNKNOWN)
64 fprintf (f, "\t\tvth (%.5g)\n", model->VTH);
65 else
66 fprintf (f, "\t\tvth (unknown)\n");
67 if(model->VDD != STM_UNKNOWN)
68 fprintf (f, "\t\tvdd (%.5g)\n", model->VDD);
69 else
70 fprintf (f, "\t\tvdd (unknown)\n");
71 if(model->VT != STM_UNKNOWN)
72 fprintf (f, "\t\tvt (%.5g)\n", model->VT);
73 else
74 fprintf (f, "\t\tvt (unknown)\n");
75 if(model->VF != STM_UNKNOWN)
76 fprintf (f, "\t\tvf (%.5g)\n", model->VF);
77 else
78 fprintf (f, "\t\tvf (unknown)\n");
79 if(model->TTYPE == STM_HL)
80 fprintf (f, "\t\ttran (ud)\n");
81 else if(model->TTYPE == STM_HH)
82 fprintf (f, "\t\ttran (uu)\n");
83 else if(model->TTYPE == STM_LH)
84 fprintf (f, "\t\ttran (du)\n");
85 else if(model->TTYPE == STM_LL)
86 fprintf (f, "\t\ttran (dd)\n");
87
88
89 switch (model->UTYPE) {
90 case STM_MOD_MODTBL:
91 stm_modtbl_print (f, model->UMODEL.TABLE);
92 break;
93 case STM_MOD_MODSCM:
94 stm_modscm_print (f, model->UMODEL.SCM);
95 break;
96 case STM_MOD_MODPLN:
97 stm_modpln_print (f, model->UMODEL.POLYNOM);
98 break;
99 case STM_MOD_MODFCT:
100 stm_modfct_print (f, model->UMODEL.FUNCTION);
101 break;
102 case STM_MOD_MODIV:
103 stm_modiv_print( f, model->UMODEL.IV );
104 break;
105 }
106
107 stm_noise_print( f, model );
108 stm_energy_print( f, model );
109
110 fprintf (f, "\t)\n");
111 }