lpk.h 3.34 KB
Newer Older
Alan Mishchenko committed
1 2
/**CFile****************************************************************

Alan Mishchenko committed
3
  FileName    [lpk.h]
Alan Mishchenko committed
4 5 6

  SystemName  [ABC: Logic synthesis and verification system.]

Alan Mishchenko committed
7
  PackageName [Fast Boolean matching for LUT structures.]
Alan Mishchenko committed
8 9 10 11 12 13 14 15 16

  Synopsis    [External declarations.]

  Author      [Alan Mishchenko]
  
  Affiliation [UC Berkeley]

  Date        [Ver. 1.0. Started - April 28, 2007.]

Alan Mishchenko committed
17
  Revision    [$Id: lpk.h,v 1.00 2007/04/28 00:00:00 alanmi Exp $]
Alan Mishchenko committed
18 19

***********************************************************************/
Alan Mishchenko committed
20
 
21 22
#ifndef ABC__opt__lpk__lpk_h
#define ABC__opt__lpk__lpk_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
////////////////////////////////////////////////////////////////////////
///                         BASIC TYPES                              ///
////////////////////////////////////////////////////////////////////////

Alan Mishchenko committed
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
typedef struct Lpk_Par_t_ Lpk_Par_t;
struct Lpk_Par_t_
{
    // user-controlled parameters
    int               nLutsMax;      // (N) the maximum number of LUTs in the structure
    int               nLutsOver;     // (Q) the maximum number of LUTs not in the MFFC
    int               nVarsShared;   // (S) the maximum number of shared variables (crossbars)
    int               nGrowthLevel;  // (L) the maximum increase in the node level after resynthesis
    int               fSatur;        // iterate till saturation
    int               fZeroCost;     // accept zero-cost replacements
    int               fFirst;        // use root node and first cut only
    int               fOldAlgo;      // use old algorithm
    int               fVerbose;      // the verbosiness flag
    int               fVeryVerbose;  // additional verbose info printout
    // internal parameters
    int               nLutSize;      // (K) the LUT size (determined by the input network)
    int               nVarsMax;      // (V) the largest number of variables: V = N * (K-1) + 1
};

Alan Mishchenko committed
61 62 63 64 65
////////////////////////////////////////////////////////////////////////
///                      MACRO DEFINITIONS                           ///
////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////
Alan Mishchenko committed
66
///                           ITERATORS                              ///
Alan Mishchenko committed
67 68 69 70 71 72
////////////////////////////////////////////////////////////////////////

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

Alan Mishchenko committed
73 74 75
/*=== lpkCore.c ========================================================*/
extern int     Lpk_Resynthesize( Abc_Ntk_t * pNtk, Lpk_Par_t * pPars );

Alan Mishchenko committed
76

77 78 79 80 81


ABC_NAMESPACE_HEADER_END


Alan Mishchenko committed
82 83 84 85 86 87 88

#endif

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