Initial version of donated sources by Avertec, 3.4p5.
[tas-yagle.git] / distrib / sources / tas / tas / tas_tpiv.h
1 /****************************************************************************/
2 /* */
3 /* Chaine de CAO & VLSI Alliance */
4 /* */
5 /* Produit : TAS Version 5 */
6 /* Fichier : tas_tpiv.h */
7 /* */
8 /* (c) copyright 1991-1998 Laboratoire LIP6 equipe ASIM */
9 /* Tous droits reserves */
10 /* Support : e-mail alliance-support@asim.lip6.fr */
11 /* */
12 /* Auteur(s) : Grégoire Avot */
13 /* */
14 /****************************************************************************/
15
16 extern int TPIV_DEBUG_IBR ;
17
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 );
24
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 );
36
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 );