mainInit.c 4.89 KB
Newer Older
Alan Mishchenko committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
/**CFile****************************************************************

  FileName    [mainInit.c]

  SystemName  [ABC: Logic synthesis and verification system.]

  PackageName [The main package.]

  Synopsis    [Initialization procedures.]

  Author      [Alan Mishchenko]
  
  Affiliation [UC Berkeley]

  Date        [Ver. 1.0. Started - June 20, 2005.]

Alan Mishchenko committed
17
  Revision    [$Id: mainInit.c,v 1.3 2005/09/14 22:53:37 casem Exp $]
Alan Mishchenko committed
18 19 20

***********************************************************************/

21
#include "base/abc/abc.h"
Alan Mishchenko committed
22 23
#include "mainInt.h"

24 25
ABC_NAMESPACE_IMPL_START
 
Alan Mishchenko committed
26 27 28 29 30 31 32 33 34 35
////////////////////////////////////////////////////////////////////////
///                        DECLARATIONS                              ///
////////////////////////////////////////////////////////////////////////

extern void Abc_Init( Abc_Frame_t * pAbc );
extern void Abc_End ( Abc_Frame_t * pAbc );
extern void Io_Init( Abc_Frame_t * pAbc );
extern void Io_End ( Abc_Frame_t * pAbc );
extern void Cmd_Init( Abc_Frame_t * pAbc );
extern void Cmd_End ( Abc_Frame_t * pAbc );
Alan Mishchenko committed
36 37
extern void If_Init( Abc_Frame_t * pAbc );
extern void If_End ( Abc_Frame_t * pAbc );
Alan Mishchenko committed
38 39 40 41 42 43
extern void Map_Init( Abc_Frame_t * pAbc );
extern void Map_End ( Abc_Frame_t * pAbc );
extern void Mio_Init( Abc_Frame_t * pAbc );
extern void Mio_End ( Abc_Frame_t * pAbc );
extern void Super_Init( Abc_Frame_t * pAbc );
extern void Super_End ( Abc_Frame_t * pAbc );
44 45 46 47
extern void Libs_Init( Abc_Frame_t * pAbc );
extern void Libs_End( Abc_Frame_t * pAbc );
extern void Load_Init( Abc_Frame_t * pAbc );
extern void Load_End( Abc_Frame_t * pAbc );
48 49
extern void Scl_Init( Abc_Frame_t * pAbc );
extern void Scl_End( Abc_Frame_t * pAbc );
50 51
extern void Wlc_Init( Abc_Frame_t * pAbc );
extern void Wlc_End( Abc_Frame_t * pAbc );
52 53
extern void Bac_Init( Abc_Frame_t * pAbc );
extern void Bac_End( Abc_Frame_t * pAbc );
54 55
extern void Cba_Init( Abc_Frame_t * pAbc );
extern void Cba_End( Abc_Frame_t * pAbc );
56 57
extern void Pla_Init( Abc_Frame_t * pAbc );
extern void Pla_End( Abc_Frame_t * pAbc );
58 59
extern void Sim_Init( Abc_Frame_t * pAbc );
extern void Sim_End( Abc_Frame_t * pAbc );
Alan Mishchenko committed
60 61
extern void Test_Init( Abc_Frame_t * pAbc );
extern void Test_End( Abc_Frame_t * pAbc );
62 63
extern void Abc2_Init( Abc_Frame_t * pAbc );
extern void Abc2_End ( Abc_Frame_t * pAbc );
Alan Mishchenko committed
64 65
extern void Abc85_Init( Abc_Frame_t * pAbc );
extern void Abc85_End( Abc_Frame_t * pAbc );
66
extern void Glucose_Init( Abc_Frame_t *pAbc );
67
extern void Glucose_End( Abc_Frame_t * pAbc );
Alan Mishchenko committed
68

69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
static Abc_FrameInitializer_t* s_InitializerStart = NULL;
static Abc_FrameInitializer_t* s_InitializerEnd = NULL;

void Abc_FrameAddInitializer( Abc_FrameInitializer_t* p )
{
    if( ! s_InitializerStart )
        s_InitializerStart = p;

    p->next = NULL;
    p->prev = s_InitializerEnd;

    if ( s_InitializerEnd )
        s_InitializerEnd->next = p;

    s_InitializerEnd = p;

}

Alan Mishchenko committed
87
////////////////////////////////////////////////////////////////////////
Alan Mishchenko committed
88
///                     FUNCTION DEFINITIONS                         ///
Alan Mishchenko committed
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
////////////////////////////////////////////////////////////////////////

/**Function*************************************************************

  Synopsis    [Starts all the packages.]

  Description []
               
  SideEffects []

  SeeAlso     []

***********************************************************************/
void Abc_FrameInit( Abc_Frame_t * pAbc )
{
104
    Abc_FrameInitializer_t* p;
Alan Mishchenko committed
105
    Cmd_Init( pAbc );
106
    Cmd_CommandExecute( pAbc, "set checkread" ); 
Alan Mishchenko committed
107 108
    Io_Init( pAbc );
    Abc_Init( pAbc );
Alan Mishchenko committed
109
    If_Init( pAbc );
Alan Mishchenko committed
110 111 112
    Map_Init( pAbc );
    Mio_Init( pAbc );
    Super_Init( pAbc );
Alan Mishchenko committed
113
    Libs_Init( pAbc );
114
    Load_Init( pAbc );
115
    Scl_Init( pAbc );
116
    Wlc_Init( pAbc );
117
    Bac_Init( pAbc );
118
    Cba_Init( pAbc );
119
    Pla_Init( pAbc );
120
    Sim_Init( pAbc );
Alan Mishchenko committed
121
    Test_Init( pAbc );
122
    Glucose_Init( pAbc );
123 124 125
    for( p = s_InitializerStart ; p ; p = p->next )
        if(p->init)
            p->init(pAbc);
Alan Mishchenko committed
126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
}


/**Function*************************************************************

  Synopsis    [Stops all the packages.]

  Description []
               
  SideEffects []

  SeeAlso     []

***********************************************************************/
void Abc_FrameEnd( Abc_Frame_t * pAbc )
{
142 143 144 145
    Abc_FrameInitializer_t* p;
    for( p = s_InitializerEnd ; p ; p = p->prev )
        if ( p->destroy )
            p->destroy(pAbc);
Alan Mishchenko committed
146 147 148
    Abc_End( pAbc );
    Io_End( pAbc );
    Cmd_End( pAbc );
Alan Mishchenko committed
149
    If_End( pAbc );
Alan Mishchenko committed
150 151 152
    Map_End( pAbc );
    Mio_End( pAbc );
    Super_End( pAbc );
Alan Mishchenko committed
153
    Libs_End( pAbc );
154
    Load_End( pAbc );
155
    Scl_End( pAbc );
156
    Wlc_End( pAbc );
157
    Bac_End( pAbc );
158
    Cba_End( pAbc );
159
    Pla_End( pAbc );
160
    Sim_End( pAbc );
Alan Mishchenko committed
161
    Test_End( pAbc );
162
    Glucose_End( pAbc );
Alan Mishchenko committed
163 164 165 166 167 168 169 170
}


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


171 172
ABC_NAMESPACE_IMPL_END