1 /****************************************************************************/
3 /* Chaine de CAO & VLSI Alliance */
6 /* Fichier : trc_delay.h */
8 /* (c) copyright 1997-1998 Laboratoire LIP6 equipe ASIM */
9 /* Tous droits reserves */
10 /* Support : e-mail alliance-support@asim.lip6.fr */
12 /* Auteur(s) : Gregoire AVOT */
14 /****************************************************************************/
31 #define RCX_AGREINDEX_CHK 0x52435805
33 #define RCX_DELAYCACHE 0x52435821
34 #define RCX_MODEL_LOAD 0x01
35 #define RCX_MODEL_AWE 0x02
37 typedef struct rcx_cache_load
{
38 struct rcx_cache_load
*NEXT
;
48 extern mbkcache
*RCXDELAYCACHE
;
49 extern char RCX_USE_MATRIX_LOAD
;
51 /* Fonctions visibles */
53 extern char rcx_rcnload( lofig_list
*, losig_list
*, num_list
*, RCXFLOAT
*, RCXFLOAT
*, RCXFLOAT
*, char, RCXFLOAT
, rcx_slope
*, char);
54 char rcx_rcnload_basic( lofig_list
*, rcx_list
*, losig_list
*, num_list
*, RCXFLOAT
*, RCXFLOAT
*, RCXFLOAT
*, char, RCXFLOAT
, rcx_slope
*, char);
55 extern int rcx_getdelayslope( lofig_list
*, locon_list
*, locon_list
*, rcx_slope
*, RCXFLOAT
, RCXFLOAT
*, RCXFLOAT
*, RCXFLOAT
*, RCXFLOAT
*, mbk_pwl
**, mbk_pwl
** );
56 extern RCXFLOAT
rcx_getdelay( lofig_list
*, locon_list
*, locon_list
*);
57 extern void rcx_rcnload_reset( losig_list
* );
58 RCXFLOAT
rcx_getsumresi( losig_list
* );
60 int rcx_iscrosstalk( lofig_list
*, losig_list
*, char );
61 int rcx_isrcdelay( lofig_list
*, losig_list
* );
62 void rcx_checkcrosstalk( losig_list
* );
63 RCXFLOAT
rcx_getcoefctc( lofig_list
*, losig_list
*, rcx_slope
*, char, RCXFLOAT
, RCXFLOAT
*);
65 int rcx_dw_forload( losig_list
*losig
, lonode_list
*lonode
, chain_list
*chwire
, ht
*htpack
, dataforload
*data
);
66 int rcx_up_pack_forload( losig_list
*losig
, lonode_list
*lonode
, rcx_triangle
*tr
, void *userdata
);
67 int rcx_up_forload( losig_list
*losig
, lonode_list
*lonode
, lowire_list
*lowire
, void *userdata
);
68 yiload
* rcx_getadmiforload( ht
*table
, int node
);
69 void rcx_setadmiforload( ht
*table
, int node
, double y1
, double y2
, double y3
);
70 long int rcx_cache_build_ptype( char transition
, char type
, char iscrosstalk
, char model
);
71 rcx_cache_load
* rcx_get_cache_load( losig_list
*losig
, int pin
, float extcapa
, char model
, char transition
, char type
, char iscrosstalk
);
72 unsigned long int rcx_add_cache_load( losig_list
*ptsig
, int pin
, float extcapa
, char modelrequest
, char modelcomputed
, char transition
, char type
, char iscrosstalk
, float r
, float c1
, float c2
);
73 unsigned long int rcx_cache_fn_load( void *null
, losig_list
*losig
);
74 unsigned long int rcx_cache_fn_release( void *null
, losig_list
*losig
);
75 mbkcache
* rcx_get_delay_cache( void );
76 void rcx_init_delay_cache( unsigned long int size
);
77 char rcx_cache_delay_model( long int ptype
);
78 char rcx_cache_delay_crosstalk( long int ptype
);
79 char rcx_cache_delay_type( long int ptype
);
80 char rcx_cache_delay_transition( long int ptype
);
81 void trc_logbuildtype( long int ntype
);
82 unsigned long int rcx_cache_release_load( rcx_cache_load
*load
);
84 extern void rcx_disable_delay_cache_for_crosstalk( void );
85 extern void rcx_enable_delay_cache_for_crosstalk( void );
86 extern int rcx_is_delay_cache_for_crosstalk( void );
87 extern void rcx_disable_delay_cache_for_quiet( void );
88 extern void rcx_enable_delay_cache_for_quiet( void );
89 extern int rcx_is_delay_cache_for_quiet( void );
90 void rcx_delay_cache_remove_from_cache( char ctkmode
);
91 extern void trcflushdelaycache();
92 void trccheckcachecoherence();
93 extern void rcx_crosstalk_analysis( char mode
);
95 void delaybetween( lofig_list
*lofig
, locon_list
*start
, locon_list
*end
, int display
);
96 extern int alldelayfromlocon( lofig_list
*lofig
, locon_list
*locon
, int display
);
97 extern void trc_delayforlosig( lofig_list
*lofig
, losig_list
*losig
, int display
, int level
);
98 extern void rcx_forcercdelay(losig_list
*losig
);