1 /*****************************************************************************/
3 /* Chaine de CAO & VLSI AVERTEC */
5 /* Produit : SIM Version 1.00 */
6 /* Fichier : sim_input.h */
8 /* (c) copyright 2000 AVERTEC */
9 /* Tous droits reserves */
11 /* Auteur(s) : Grégoire AVOT */
13 /*****************************************************************************/
15 /* Access function to input */
17 extern void sim_input_set_stuck_level( sim_model
*model
, char *locon
, char level
);
18 extern void sim_input_set_stuck_voltage( sim_model
*model
, char *locon
, SIM_FLOAT voltage
);
19 extern void sim_input_set_slope_single( sim_model
*model
, char *locon
, char level
, SIM_FLOAT slope
, SIM_FLOAT tstart
, char locate
);
20 extern void sim_input_set_slope_pattern( sim_model
*model
, char *locon
, SIM_FLOAT trise
, SIM_FLOAT tfall
, SIM_FLOAT period
, char *pattern
);
21 extern void sim_input_clear( sim_model
*model
, char *locon
);
22 extern void sim_input_set_func( sim_model
*model
, char *locon
, SIM_FLOAT (*func
)(SIM_FLOAT
, void*), void *user_data
, char locate
, char *deltavar
);
24 /* High level function for sim library */
26 SIM_FLOAT
sim_input_get_latest_event( sim_model
*model
);
27 sim_input
* sim_input_get( sim_model
*model
, char *locon
);
28 sim_input
* sim_input_scan( sim_model
*model
, sim_input
*scan
);
29 char sim_input_get_type( sim_input
*input
);
30 char* sim_input_get_name( sim_input
*input
);
31 char sim_input_get_stuck_type( sim_input
*input
);
32 char sim_input_get_slope_type( sim_input
*input
);
33 char sim_input_get_stuck_level( sim_input
*input
);
34 SIM_FLOAT
sim_input_get_stuck_voltage( sim_input
*input
);
35 void sim_input_get_slope_single( sim_input
*input
, char *level
, SIM_FLOAT
*slope
, SIM_FLOAT
*tstart
);
36 void sim_input_get_slope_pattern( sim_input
*input
, SIM_FLOAT
*trise
, SIM_FLOAT
*tstop
, SIM_FLOAT
*period
, char **pattern
);
37 void sim_input_init( sim_model
*model
);
38 extern void sim_input_clean( sim_model
*model
);
39 void sim_input_get_func( sim_input
*input
, SIM_FLOAT (**func
)( SIM_FLOAT
, void* ), void **data
);
41 /* Low level function */
42 sim_input
* sim_input_get_newinput( sim_model
*model
, char *locon
, char locate
);
43 sim_input
* sim_input_alloc( void );
44 void sim_input_free( sim_input
*input
);
45 extern SIM_FLOAT
sim_tanh_slope (SIM_FLOAT t
, void *data
);
46 extern void *sim_builtin_tanh ();
47 extern void sim_input_set_slope_tanh (sim_model
*model
,char *node
,double start_time
,double transition_time
,char sense
,char *deltavar
);
48 void sim_translate_clean(sim_model
*model
);
49 extern SIM_FLOAT
sim_input_get_tstart (sim_model
*model
, char *loconname
);
50 extern SIM_FLOAT
sim_input_get_vdd( sim_input
*input
);
51 extern SIM_FLOAT
sim_input_get_vss( sim_input
*input
);
52 extern SIM_FLOAT
sim_tanh_slope_tas (SIM_FLOAT t
, void *data
);
53 extern void sim_input_set_slope_mimic( sim_model
*model
, char *locon
, char *refnode
, char *refvddnode
, char *refvssnode
, int revert
);