mirror of https://github.com/YosysHQ/abc.git
184 lines
5.3 KiB
C
184 lines
5.3 KiB
C
/**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.]
|
|
|
|
Revision [$Id: mainInit.c,v 1.3 2005/09/14 22:53:37 casem Exp $]
|
|
|
|
***********************************************************************/
|
|
|
|
#include "base/abc/abc.h"
|
|
#include "mainInt.h"
|
|
|
|
ABC_NAMESPACE_IMPL_START
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
/// 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 );
|
|
extern void If_Init( Abc_Frame_t * pAbc );
|
|
extern void If_End ( Abc_Frame_t * pAbc );
|
|
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 );
|
|
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 );
|
|
extern void Scl_Init( Abc_Frame_t * pAbc );
|
|
extern void Scl_End( Abc_Frame_t * pAbc );
|
|
extern void Emap_Init( Abc_Frame_t * pAbc );
|
|
extern void Emap_End( Abc_Frame_t * pAbc );
|
|
extern void Wlc_Init( Abc_Frame_t * pAbc );
|
|
extern void Wlc_End( Abc_Frame_t * pAbc );
|
|
extern void Wln_Init( Abc_Frame_t * pAbc );
|
|
extern void Wln_End( Abc_Frame_t * pAbc );
|
|
extern void Bac_Init( Abc_Frame_t * pAbc );
|
|
extern void Bac_End( Abc_Frame_t * pAbc );
|
|
extern void Cba_Init( Abc_Frame_t * pAbc );
|
|
extern void Cba_End( Abc_Frame_t * pAbc );
|
|
extern void Pla_Init( Abc_Frame_t * pAbc );
|
|
extern void Pla_End( Abc_Frame_t * pAbc );
|
|
extern void Sim_Init( Abc_Frame_t * pAbc );
|
|
extern void Sim_End( Abc_Frame_t * pAbc );
|
|
extern void Test_Init( Abc_Frame_t * pAbc );
|
|
extern void Test_End( Abc_Frame_t * pAbc );
|
|
extern void Abc2_Init( Abc_Frame_t * pAbc );
|
|
extern void Abc2_End ( Abc_Frame_t * pAbc );
|
|
extern void Abc85_Init( Abc_Frame_t * pAbc );
|
|
extern void Abc85_End( Abc_Frame_t * pAbc );
|
|
extern void Glucose_Init( Abc_Frame_t *pAbc );
|
|
extern void Glucose_End( Abc_Frame_t * pAbc );
|
|
extern void Glucose2_Init( Abc_Frame_t *pAbc );
|
|
extern void Glucose2_End( Abc_Frame_t * pAbc );
|
|
extern void Ufar_Init(Abc_Frame_t *pAbc);
|
|
|
|
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;
|
|
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
/// FUNCTION DEFINITIONS ///
|
|
////////////////////////////////////////////////////////////////////////
|
|
|
|
/**Function*************************************************************
|
|
|
|
Synopsis [Starts all the packages.]
|
|
|
|
Description []
|
|
|
|
SideEffects []
|
|
|
|
SeeAlso []
|
|
|
|
***********************************************************************/
|
|
void Abc_FrameInit( Abc_Frame_t * pAbc )
|
|
{
|
|
Abc_FrameInitializer_t* p;
|
|
Cmd_Init( pAbc );
|
|
Cmd_CommandExecute( pAbc, "set checkread" );
|
|
Io_Init( pAbc );
|
|
Abc_Init( pAbc );
|
|
If_Init( pAbc );
|
|
Map_Init( pAbc );
|
|
Mio_Init( pAbc );
|
|
Super_Init( pAbc );
|
|
Libs_Init( pAbc );
|
|
Load_Init( pAbc );
|
|
Scl_Init( pAbc );
|
|
Emap_Init( pAbc );
|
|
Wlc_Init( pAbc );
|
|
Wln_Init( pAbc );
|
|
Bac_Init( pAbc );
|
|
Cba_Init( pAbc );
|
|
Pla_Init( pAbc );
|
|
Test_Init( pAbc );
|
|
Ufar_Init( pAbc );
|
|
Glucose_Init( pAbc );
|
|
Glucose2_Init( pAbc );
|
|
for( p = s_InitializerStart ; p ; p = p->next )
|
|
if(p->init)
|
|
p->init(pAbc);
|
|
}
|
|
|
|
|
|
/**Function*************************************************************
|
|
|
|
Synopsis [Stops all the packages.]
|
|
|
|
Description []
|
|
|
|
SideEffects []
|
|
|
|
SeeAlso []
|
|
|
|
***********************************************************************/
|
|
void Abc_FrameEnd( Abc_Frame_t * pAbc )
|
|
{
|
|
Abc_FrameInitializer_t* p;
|
|
for( p = s_InitializerEnd ; p ; p = p->prev )
|
|
if ( p->destroy )
|
|
p->destroy(pAbc);
|
|
Abc_End( pAbc );
|
|
Io_End( pAbc );
|
|
Cmd_End( pAbc );
|
|
If_End( pAbc );
|
|
Map_End( pAbc );
|
|
Mio_End( pAbc );
|
|
Super_End( pAbc );
|
|
Libs_End( pAbc );
|
|
Load_End( pAbc );
|
|
Emap_End( pAbc );
|
|
Scl_End( pAbc );
|
|
Wlc_End( pAbc );
|
|
Wln_End( pAbc );
|
|
Bac_End( pAbc );
|
|
Cba_End( pAbc );
|
|
Pla_End( pAbc );
|
|
Test_End( pAbc );
|
|
Glucose_End( pAbc );
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
/// END OF FILE ///
|
|
////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
ABC_NAMESPACE_IMPL_END
|
|
|