Commit 0f59f00c by Alan Mishchenko

Tuning &blut implementation.

parent 2f866673
...@@ -30,6 +30,7 @@ ABC_NAMESPACE_IMPL_START ...@@ -30,6 +30,7 @@ ABC_NAMESPACE_IMPL_START
//////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////
#define STR_SUPER 100 #define STR_SUPER 100
#define MAX_TREE 10000
enum { enum {
STR_NONE = 0, STR_NONE = 0,
...@@ -1301,7 +1302,7 @@ Gia_Man_t * Str_NtkBalance( Gia_Man_t * pGia, Str_Ntk_t * p, int nLutSize, int f ...@@ -1301,7 +1302,7 @@ Gia_Man_t * Str_NtkBalance( Gia_Man_t * pGia, Str_Ntk_t * p, int nLutSize, int f
pNew->vSuper = Vec_IntAlloc( 1000 ); pNew->vSuper = Vec_IntAlloc( 1000 );
if ( pNew->vStore == NULL ) if ( pNew->vStore == NULL )
pNew->vStore = Vec_IntAlloc( 1000 ); pNew->vStore = Vec_IntAlloc( 1000 );
vDelay = Vec_IntStart( pNew->nObjsAlloc ); vDelay = Vec_IntStart( 2*pNew->nObjsAlloc );
Gia_ManHashStart( pNew ); Gia_ManHashStart( pNew );
if ( pGia->pManTime != NULL ) // Tim_Man with unit delay 16 if ( pGia->pManTime != NULL ) // Tim_Man with unit delay 16
{ {
...@@ -1646,7 +1647,7 @@ Str_Mux_t * Str_MuxFindBranching( Str_Mux_t * pRoot, int i ) ...@@ -1646,7 +1647,7 @@ Str_Mux_t * Str_MuxFindBranching( Str_Mux_t * pRoot, int i )
} }
int Str_MuxTryOnce( Gia_Man_t * pNew, Str_Ntk_t * pNtk, Str_Mux_t * pTree, Str_Mux_t * pRoot, int Edge, Vec_Int_t * vDelay, int fVerbose ) int Str_MuxTryOnce( Gia_Man_t * pNew, Str_Ntk_t * pNtk, Str_Mux_t * pTree, Str_Mux_t * pRoot, int Edge, Vec_Int_t * vDelay, int fVerbose )
{ {
int pPath[500]; int pPath[MAX_TREE];
Str_Mux_t pBackup[3]; Str_Mux_t pBackup[3];
int Delay, DelayBest = Str_MuxDelayEdge_rec( pRoot, Edge ), DelayInit = DelayBest; int Delay, DelayBest = Str_MuxDelayEdge_rec( pRoot, Edge ), DelayInit = DelayBest;
int i, k, nLength = 0, ForkBest = -1, nChecks = 0; int i, k, nLength = 0, ForkBest = -1, nChecks = 0;
...@@ -1696,8 +1697,8 @@ int Str_MuxRestruct_rec( Gia_Man_t * pNew, Str_Ntk_t * pNtk, Str_Mux_t * pTree, ...@@ -1696,8 +1697,8 @@ int Str_MuxRestruct_rec( Gia_Man_t * pNew, Str_Ntk_t * pNtk, Str_Mux_t * pTree,
} }
int Str_MuxRestructure2( Gia_Man_t * pNew, Str_Ntk_t * pNtk, int iMux, int nMuxes, Vec_Int_t * vDelay, int nLutSize, int fVerbose ) int Str_MuxRestructure2( Gia_Man_t * pNew, Str_Ntk_t * pNtk, int iMux, int nMuxes, Vec_Int_t * vDelay, int nLutSize, int fVerbose )
{ {
int Limit = 500; int Limit = MAX_TREE;
Str_Mux_t pTree[500]; Str_Mux_t pTree[MAX_TREE];
int Delay, Delay2, fChanges = 0; int Delay, Delay2, fChanges = 0;
if ( nMuxes >= Limit ) if ( nMuxes >= Limit )
return -1; return -1;
...@@ -1719,8 +1720,8 @@ int Str_MuxRestructure2( Gia_Man_t * pNew, Str_Ntk_t * pNtk, int iMux, int nMuxe ...@@ -1719,8 +1720,8 @@ int Str_MuxRestructure2( Gia_Man_t * pNew, Str_Ntk_t * pNtk, int iMux, int nMuxe
} }
int Str_MuxRestructure1( Gia_Man_t * pNew, Str_Ntk_t * pNtk, int iMux, int nMuxes, Vec_Int_t * vDelay, int nLutSize, int fVerbose ) int Str_MuxRestructure1( Gia_Man_t * pNew, Str_Ntk_t * pNtk, int iMux, int nMuxes, Vec_Int_t * vDelay, int nLutSize, int fVerbose )
{ {
int Limit = 500; int Limit = MAX_TREE;
Str_Mux_t pTree[500]; Str_Mux_t pTree[MAX_TREE];
int Delay, Delay2, fChanges = 0; int Delay, Delay2, fChanges = 0;
if ( nMuxes >= Limit ) if ( nMuxes >= Limit )
return -1; return -1;
...@@ -1843,8 +1844,8 @@ int Str_MuxRestructArea_rec( Gia_Man_t * pNew, Str_Mux_t * pTree, Str_Mux_t * pR ...@@ -1843,8 +1844,8 @@ int Str_MuxRestructArea_rec( Gia_Man_t * pNew, Str_Mux_t * pTree, Str_Mux_t * pR
} }
int Str_MuxRestructureArea( Gia_Man_t * pNew, Str_Ntk_t * pNtk, int iMux, int nMuxes, Vec_Int_t * vDelay, int nLutSize, int fVerbose ) int Str_MuxRestructureArea( Gia_Man_t * pNew, Str_Ntk_t * pNtk, int iMux, int nMuxes, Vec_Int_t * vDelay, int nLutSize, int fVerbose )
{ {
int Limit = 500; int Limit = MAX_TREE;
Str_Mux_t pTree[500]; Str_Mux_t pTree[MAX_TREE];
int Result; int Result;
if ( nMuxes >= Limit ) if ( nMuxes >= Limit )
return -1; return -1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment