Initial version of donated sources by Avertec, 3.4p5.
[tas-yagle.git] / distrib / sources / tas / stm / stm_curve.h
1 /****************************************************************************/
2 /* */
3 /* Chaine de CAO & VLSI AVERTEC */
4 /* */
5 /* Produit : STM Version 1.00 */
6 /* Fichier : stm_curve.h */
7 /* */
8 /* (c) copyright 2000 AVERTEC */
9 /* Tous droits reserves */
10 /* */
11 /* Auteur(s) : Gregoire Avot, Olivier Bichaut */
12 /* */
13 /****************************************************************************/
14
15 #ifndef STM_CURVE_H
16 #define STM_CURVE_H
17
18 #define STM_CURVE_DUAL 'd'
19 #define STM_CURVE_IV 'i'
20
21 typedef struct {
22 stm_dual_param_timing PARAMTIMING ;
23 char EVTOUT ;
24 float VDD ;
25 } curveparamdual ;
26
27 typedef struct {
28 float FIN ;
29 float LOAD ;
30 float VDD ;
31 timing_iv *MODEL ;
32 } curveparamiv ;
33
34 typedef union {
35 curveparamdual DUAL ;
36 curveparamiv IV ;
37 } curveparammodels ;
38
39 typedef struct {
40 char TYPE ;
41 curveparammodels MODEL ;
42 } curveparam ;
43
44 /****************************************************************************/
45 /* includes */
46 /****************************************************************************/
47
48 #include STM_H
49
50 stm_curve* stm_curve_alloc( timing_model *model, float t0, float tmax, int nbpoints );
51 void stm_alloc_static( stm_curve *curve, int nbe, int nbs );
52 extern void stm_curve_free( stm_curve *curve );
53
54 extern stm_curve* stm_curve_c( timing_model *model, float fin, float cout, float t0, float tmax );
55 extern stm_curve* stm_curve_pi( timing_model *model, float fin, float c1out, float c2out, float rout, float t0, float tmax );
56 void stm_curve_add_time_data( stm_curve *curve, float t, float ve, float vs, float i, float iconf);
57
58 extern void stm_model_plot( char *filename, timing_model *model, float fin, stm_pwl *pwlin, stm_driver *driver, float r, float c1, float c2, char evtin, char evtout, float delaytas, float slewtas, char *config );
59
60 #endif