dch.h 3.64 KB
Newer Older
Alan Mishchenko committed
1 2
/**CFile****************************************************************

Alan Mishchenko committed
3
  FileName    [dch.h] 
Alan Mishchenko committed
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

  SystemName  [ABC: Logic synthesis and verification system.]

  PackageName [Choice computation for tech-mapping.]

  Synopsis    [External declarations.]

  Author      [Alan Mishchenko]
  
  Affiliation [UC Berkeley]

  Date        [Ver. 1.0. Started - June 29, 2008.]

  Revision    [$Id: dch.h,v 1.00 2008/07/29 00:00:00 alanmi Exp $]

***********************************************************************/
 
21 22
#ifndef ABC__aig__dch__dch_h
#define ABC__aig__dch__dch_h
Alan Mishchenko committed
23

24

Alan Mishchenko committed
25 26 27 28 29 30 31 32
////////////////////////////////////////////////////////////////////////
///                          INCLUDES                                ///
////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////
///                         PARAMETERS                               ///
////////////////////////////////////////////////////////////////////////

33 34 35 36


ABC_NAMESPACE_HEADER_START

Alan Mishchenko committed
37

Alan Mishchenko committed
38 39 40 41 42 43 44 45
////////////////////////////////////////////////////////////////////////
///                         BASIC TYPES                              ///
////////////////////////////////////////////////////////////////////////

// choicing parameters
typedef struct Dch_Pars_t_ Dch_Pars_t;
struct Dch_Pars_t_
{
Alan Mishchenko committed
46 47 48 49 50
    int              nWords;        // the number of simulation words
    int              nBTLimit;      // conflict limit at a node
    int              nSatVarMax;    // the max number of SAT variables
    int              fSynthesis;    // set to 1 to perform synthesis
    int              fPolarFlip;    // uses polarity adjustment
Alan Mishchenko committed
51
    int              fSimulateTfo;  // uses simulation of TFO classes
Alan Mishchenko committed
52
    int              fPower;        // uses power-aware rewriting
Alan Mishchenko committed
53 54
    int              fUseGia;       // uses GIA package 
    int              fUseCSat;      // uses circuit-based solver
Alan Mishchenko committed
55
    int              fLightSynth;   // uses lighter version of synthesis
56
    int              fSkipRedSupp;  // skip choices with redundant support vars
Alan Mishchenko committed
57
    int              fVerbose;      // verbose stats
58
    abctime          timeSynth;     // synthesis runtime
Alan Mishchenko committed
59 60
    int              nNodesAhead;   // the lookahead in terms of nodes
    int              nCallsRecycle; // calls to perform before recycling SAT solver
Alan Mishchenko committed
61 62 63 64 65 66 67 68 69 70
};

////////////////////////////////////////////////////////////////////////
///                      MACRO DEFINITIONS                           ///
////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////
///                    FUNCTION DECLARATIONS                         ///
////////////////////////////////////////////////////////////////////////

71 72
/*=== dchAig.c ==========================================================*/
extern Aig_Man_t *   Dch_DeriveTotalAig( Vec_Ptr_t * vAigs );
Alan Mishchenko committed
73
/*=== dchCore.c ==========================================================*/
Alan Mishchenko committed
74
extern void          Dch_ManSetDefaultParams( Dch_Pars_t * p );
75
extern int           Dch_ManReadVerbose( Dch_Pars_t * p );
Alan Mishchenko committed
76
extern Aig_Man_t *   Dch_ComputeChoices( Aig_Man_t * pAig, Dch_Pars_t * pPars );
Alan Mishchenko committed
77
extern void          Dch_ComputeEquivalences( Aig_Man_t * pAig, Dch_Pars_t * pPars );
78 79 80 81 82 83
/*=== dchScript.c ==========================================================*/
extern Aig_Man_t *   Dar_ManChoiceNew( Aig_Man_t * pAig, Dch_Pars_t * pPars );


ABC_NAMESPACE_HEADER_END

Alan Mishchenko committed
84 85 86 87 88 89 90 91


#endif

////////////////////////////////////////////////////////////////////////
///                       END OF FILE                                ///
////////////////////////////////////////////////////////////////////////