summaryrefslogtreecommitdiffstats
path: root/abc70930/src/opt/res/resStrash.c
diff options
context:
space:
mode:
Diffstat (limited to 'abc70930/src/opt/res/resStrash.c')
-rw-r--r--abc70930/src/opt/res/resStrash.c117
1 files changed, 0 insertions, 117 deletions
diff --git a/abc70930/src/opt/res/resStrash.c b/abc70930/src/opt/res/resStrash.c
deleted file mode 100644
index fde842a4..00000000
--- a/abc70930/src/opt/res/resStrash.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/**CFile****************************************************************
-
- FileName [resStrash.c]
-
- SystemName [ABC: Logic synthesis and verification system.]
-
- PackageName [Resynthesis package.]
-
- Synopsis [Structural hashing of the nodes in the window.]
-
- Author [Alan Mishchenko]
-
- Affiliation [UC Berkeley]
-
- Date [Ver. 1.0. Started - January 15, 2007.]
-
- Revision [$Id: resStrash.c,v 1.00 2007/01/15 00:00:00 alanmi Exp $]
-
-***********************************************************************/
-
-#include "abc.h"
-#include "resInt.h"
-
-////////////////////////////////////////////////////////////////////////
-/// DECLARATIONS ///
-////////////////////////////////////////////////////////////////////////
-
-extern Abc_Obj_t * Abc_ConvertAigToAig( Abc_Ntk_t * pAig, Abc_Obj_t * pObjOld );
-
-////////////////////////////////////////////////////////////////////////
-/// FUNCTION DEFINITIONS ///
-////////////////////////////////////////////////////////////////////////
-
-/**Function*************************************************************
-
- Synopsis [Structurally hashes the given window.]
-
- Description [The first PO is the observability condition. The second
- is the node's function. The remaining POs are the candidate divisors.]
-
- SideEffects []
-
- SeeAlso []
-
-***********************************************************************/
-Abc_Ntk_t * Res_WndStrash( Res_Win_t * p )
-{
- Vec_Ptr_t * vPairs;
- Abc_Ntk_t * pAig;
- Abc_Obj_t * pObj, * pMiter;
- int i;
- assert( Abc_NtkHasAig(p->pNode->pNtk) );
-// Abc_NtkCleanCopy( p->pNode->pNtk );
- // create the network
- pAig = Abc_NtkAlloc( ABC_NTK_STRASH, ABC_FUNC_AIG, 1 );
- pAig->pName = Extra_UtilStrsav( "window" );
- // create the inputs
- Vec_PtrForEachEntry( p->vLeaves, pObj, i )
- pObj->pCopy = Abc_NtkCreatePi( pAig );
- Vec_PtrForEachEntry( p->vBranches, pObj, i )
- pObj->pCopy = Abc_NtkCreatePi( pAig );
- // go through the nodes in the topological order
- Vec_PtrForEachEntry( p->vNodes, pObj, i )
- {
- pObj->pCopy = Abc_ConvertAigToAig( pAig, pObj );
- if ( pObj == p->pNode )
- pObj->pCopy = Abc_ObjNot( pObj->pCopy );
- }
- // collect the POs
- vPairs = Vec_PtrAlloc( 2 * Vec_PtrSize(p->vRoots) );
- Vec_PtrForEachEntry( p->vRoots, pObj, i )
- {
- Vec_PtrPush( vPairs, pObj->pCopy );
- Vec_PtrPush( vPairs, NULL );
- }
- // mark the TFO of the node
- Abc_NtkIncrementTravId( p->pNode->pNtk );
- Res_WinSweepLeafTfo_rec( p->pNode, (int)p->pNode->Level + p->nWinTfoMax );
- // update strashing of the node
- p->pNode->pCopy = Abc_ObjNot( p->pNode->pCopy );
- Abc_NodeSetTravIdPrevious( p->pNode );
- // redo strashing in the TFO
- Vec_PtrForEachEntry( p->vNodes, pObj, i )
- {
- if ( Abc_NodeIsTravIdCurrent(pObj) )
- pObj->pCopy = Abc_ConvertAigToAig( pAig, pObj );
- }
- // collect the POs
- Vec_PtrForEachEntry( p->vRoots, pObj, i )
- Vec_PtrWriteEntry( vPairs, 2 * i + 1, pObj->pCopy );
- // add the miter
- pMiter = Abc_AigMiter( pAig->pManFunc, vPairs );
- Abc_ObjAddFanin( Abc_NtkCreatePo(pAig), pMiter );
- Vec_PtrFree( vPairs );
- // add the node
- Abc_ObjAddFanin( Abc_NtkCreatePo(pAig), p->pNode->pCopy );
- // add the fanins
- Abc_ObjForEachFanin( p->pNode, pObj, i )
- Abc_ObjAddFanin( Abc_NtkCreatePo(pAig), pObj->pCopy );
- // add the divisors
- Vec_PtrForEachEntry( p->vDivs, pObj, i )
- Abc_ObjAddFanin( Abc_NtkCreatePo(pAig), pObj->pCopy );
- // add the names
- Abc_NtkAddDummyPiNames( pAig );
- Abc_NtkAddDummyPoNames( pAig );
- // check the resulting network
- if ( !Abc_NtkCheck( pAig ) )
- fprintf( stdout, "Res_WndStrash(): Network check has failed.\n" );
- return pAig;
-}
-
-
-////////////////////////////////////////////////////////////////////////
-/// END OF FILE ///
-////////////////////////////////////////////////////////////////////////
-
-