1 /****************************************************************************/
3 /* Chaine de CAO & VLSI AVERTEC */
5 /* Produit : AVERTEC global tools */
6 /* Fichier : sim_meas.h */
8 /* © copyright 2000 AVERTEC */
9 /* Tous droits reserves */
11 /* Auteur(s) : Antony PINTO */
13 /****************************************************************************/
18 #include "sim_message.h"
23 #define SIM_MEAS_LABEL (int)0
24 #define SIM_MEAS_SIG (int)1
25 #define SIM_MEAS_VALUE (int)2
26 #define SIM_MEAS_TRANS (int)3
27 #define SIM_MEAS_NTRANS (int)4
28 #define SIM_MEAS_UP (int)0
29 #define SIM_MEAS_DN (int)1
31 #define SIM_MEAS_A4S (int)4
32 #define SIM_MEAS_NBSIG (int)2
33 #define SIM_MEAS_NBARG (int)(SIM_MEAS_A4S * SIM_MEAS_NBSIG + 1)
35 typedef struct sim_meas_cmd
37 /* order of each argument */
38 short ARGORDER
[SIM_MEAS_NBARG
];
39 /* last representing string */
40 char *LAST
[SIM_MEAS_NBSIG
];
41 /* transition U and D representing string */
42 char *TRANS
[SIM_MEAS_NBSIG
][2];
47 typedef struct sim_meas_arg
49 struct sim_meas_arg
*NEXT
;
50 char *ARG
[SIM_MEAS_NBARG
];/*list of argument to be driven*/
51 sim_meas_cmd
*REFCMD
; /* reference command rule for drive */
54 typedef struct sim_meas_print
56 struct sim_meas_print
*NEXT
;
62 SIM_FLOAT TH_IN
, TH_OUT
;
65 void sim_decodeMeasCmd(char *env
);
66 void sim_decodeMeasCmdFree();
67 extern void sim_affectMeasCmdArg(sim_model
*model
, char *label
, char *sig1
, char trans1
, int ntrans1
, double val1
, char *sig2
, char trans2
, int ntrans2
, double val2
);
68 extern void sim_printMeasCmd(sim_model
*model
, FILE *fd
);
69 extern void sim_freeMeasArg(sim_model
*model
, char *label
);
70 extern void sim_freeMeasAllArg(sim_model
*model
);
71 extern void sim_freePrn(sim_model
*model
);
73 extern int sim_getMeas(sim_model
*model
, char *delay
, char *slope
, double *dval
, double *sval
);
74 extern int sim_getMeasSlope(sim_model
*model
, char *label
, double *value
);
75 extern int sim_getMeasDelay(sim_model
*model
, char *label
, double *value
);
76 extern int sim_getMcMeas( sim_model
*model
, char *label
, double *value
, int idmc
);
77 extern void sim_addMeas(sim_model
*model
, char *delay
, char *slope
, char *sig1
, char *sig2
, char *transition
, int delay_type
);
78 extern void sim_addMeasDelay(sim_model
*model
, char *delay
, char *sig1
, char *sig2
, char *transition
, int delay_type
);
79 extern void sim_addMeasSlope(sim_model
*model
, char *slope
, char *sig
, char *transition
, int delay_type
);
81 extern void sim_addMeasWithoutNameCheck(sim_model
*model
, char *delay
, char *slope
, char *sig1
, char *sig2
, char *transition
, int delay_type
);
82 extern void sim_addMeasDelayWithoutNameCheck(sim_model
*model
, char *delay
, char *sig1
, char *sig2
, char *transition
, int delay_type
);
83 extern void sim_addMeasSlopeWithoutNameCheck(sim_model
*model
, char *slope
, char *sig
, char *transition
, int delay_type
);
84 int sim_getTransition(sim_model
*model
, char *trans
, char t
[2], long n
[2]);