1 /****************************************************************************/
3 /* Chaine de CAO & VLSI Alliance */
5 /* Produit : TAS Version 5 */
6 /* Fichier : tas_tpiv.h */
8 /* (c) copyright 1991-1998 Laboratoire LIP6 equipe ASIM */
9 /* Tous droits reserves */
10 /* Support : e-mail alliance-support@asim.lip6.fr */
12 /* Auteur(s) : Grégoire Avot */
14 /****************************************************************************/
16 extern int TPIV_DEBUG_IBR
;
18 extern char tpiv_i_brdual( link_list
*head
, float vout
, float valim
, float *imax
, char savepol
);
19 extern char tpiv_i_brdual_leakage( link_list
*head
, link_list
*activelink
, float vout
, float valim
, float *imax
);
20 extern char tpiv_i_brdual_leakage_2( link_list
*head
, link_list
*activelink
, float vout
, float valim
, float *imax
);
21 float tpiv_get_voltage_driving_lotrs( lotrs_list
*lotrs
);
22 float tpiv_get_blocked_voltage_driving_lotrs( lotrs_list
*lotrs
);
23 extern timing_iv
* tpiv_dualmodel( cone_list
*cone
, branch_list
*head
, link_list
*active
, float vref
, float pconf0
, float pconf1
, float fin_vi
, float fin_vf
, float fin_vs
, float vouti
);
25 char tpiv_calc_i( tpiv_i
*model
, float ve
, float vs
, float *is
);
26 tpiv
* tpiv_createbranch( link_list
*head
, char transtype
);
27 tpiv
* tpiv_createbranch_leakage( link_list
*head
, link_list
*activelink
, char transtype
);
28 tpiv
* tpiv_createbranch_leakage_2( link_list
*head
, link_list
*activelink
, char transtype
);
29 void tpiv_freebranch( tpiv
*br
);
30 tpiv
* tpiv_alloc( void );
31 void tpiv_free( tpiv
*s
);
32 void tpiv_inverter( char *fname
, lotrs_list
*tn
, lotrs_list
*tp
, char sens
, float f
, float r
, float c1
, float c2
, stm_driver
*driver
, float tmax
, dualparams
*scmmodel
, char transtype
);
33 void tpiv_carac_static( lotrs_list
*lotrs
, float vdd
, float vdsmax
, float vgsmax
, float vb
, float vs
);
34 int tpiv_get_i_multi_input( link_list
*, link_list
*, float, float, float, float, char, float* );
35 void tas_tpiv_set_vg_for_switch( stm_solver_maillon
*maillon
, char brtype
, char typeactive
, float vgactive
, float vgswitch
);
37 double tpiv_getseuil( stm_solver_maillon
*stmn
, stm_solver_maillon
*stmp
, double vdd
, double vbn
, double vbp
, char satured
, char brtype
);
38 double tpiv_getconflict( stm_solver_maillon
*stmn
, stm_solver_maillon
*stmp
, double vdd
, double vbn
, double vbp
, double vt
, double f
, double seuil
, char sens
, double dt
, char satured
, char brtype
);
39 double tpiv_getvs( stm_solver_maillon
*stmn
, stm_solver_maillon
*stmp
, double ve
, double vbn
, double vbp
, double vdd
, char brtype
);
40 mcc_trans_mcc
* tpiv_addtransmcc( tpiv
*br
, stm_solver_maillon
*stmm
, link_list
*link
);
41 void tpiv_addtransmcc_switch( tpiv
*br
, stm_solver_maillon
*stmm
, link_list
*link
, lotrs_list
*lotrs
);
42 void tas_tpiv_set_vg( stm_solver_maillon
*maillon
, char brtype
, float vg
);
43 void tas_tpiv_set_vb( stm_solver_maillon
*maillon
, char brtype
, float vb
);
44 char tas_tpiv_solver_calc_ids( stm_solver_maillon
*maillon
, float vgs
, float vbs
, float vds
, float *ids
, char brtype
);
45 void tpiv_i_trace_brdual( char*, link_list
*, link_list
*, char, float, float, float, float, float, float );
46 void tpiv_clean_voltage_driving_lotrs( lotrs_list
*lotrs
);
47 void tpiv_set_voltage_driving_lotrs( lotrs_list
*lotrs
, float voltage
);