Initial version of donated sources by Avertec, 3.4p5.
[tas-yagle.git] / distrib / sources / tas / sim / sim_input.h
1 /*****************************************************************************/
2 /* */
3 /* Chaine de CAO & VLSI AVERTEC */
4 /* */
5 /* Produit : SIM Version 1.00 */
6 /* Fichier : sim_input.h */
7 /* */
8 /* (c) copyright 2000 AVERTEC */
9 /* Tous droits reserves */
10 /* */
11 /* Auteur(s) : Grégoire AVOT */
12 /* */
13 /*****************************************************************************/
14
15 /* Access function to input */
16
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 );
23
24 /* High level function for sim library */
25
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 );
40
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 );
54