summaryrefslogtreecommitdiffstats
path: root/src/opt/sim/simSymSim.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2007-09-30 08:01:00 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2007-09-30 08:01:00 -0700
commite54d9691616b9a0326e2fdb3156bb4eeb8abfcd7 (patch)
treede3ffe87c3e17950351e3b7d97fa18318bd5ea9a /src/opt/sim/simSymSim.c
parent7d7e60f2dc84393cd4c5db22d2eaf7b1fb1a79b2 (diff)
downloadabc-e54d9691616b9a0326e2fdb3156bb4eeb8abfcd7.tar.gz
abc-e54d9691616b9a0326e2fdb3156bb4eeb8abfcd7.tar.bz2
abc-e54d9691616b9a0326e2fdb3156bb4eeb8abfcd7.zip
Version abc70930
Diffstat (limited to 'src/opt/sim/simSymSim.c')
-rw-r--r--src/opt/sim/simSymSim.c173
1 files changed, 0 insertions, 173 deletions
diff --git a/src/opt/sim/simSymSim.c b/src/opt/sim/simSymSim.c
deleted file mode 100644
index 2282825b..00000000
--- a/src/opt/sim/simSymSim.c
+++ /dev/null
@@ -1,173 +0,0 @@
-/**CFile****************************************************************
-
- FileName [simSymSim.c]
-
- SystemName [ABC: Logic synthesis and verification system.]
-
- PackageName [Network and node package.]
-
- Synopsis [Simulation to determine two-variable symmetries.]
-
- Author [Alan Mishchenko]
-
- Affiliation [UC Berkeley]
-
- Date [Ver. 1.0. Started - June 20, 2005.]
-
- Revision [$Id: simSymSim.c,v 1.00 2005/06/20 00:00:00 alanmi Exp $]
-
-***********************************************************************/
-
-#include "abc.h"
-#include "sim.h"
-
-////////////////////////////////////////////////////////////////////////
-/// DECLARATIONS ///
-////////////////////////////////////////////////////////////////////////
-
-static void Sim_SymmsCreateSquare( Sym_Man_t * p, unsigned * pPat );
-static void Sim_SymmsDeriveInfo( Sym_Man_t * p, unsigned * pPat, Abc_Obj_t * pNode, Vec_Ptr_t * vMatrsNonSym, int Output );
-
-////////////////////////////////////////////////////////////////////////
-/// FUNCTION DEFINITIONS ///
-////////////////////////////////////////////////////////////////////////
-
-/**Function*************************************************************
-
- Synopsis [Detects non-symmetric pairs using one pattern.]
-
- Description []
-
- SideEffects []
-
- SeeAlso []
-
-***********************************************************************/
-void Sim_SymmsSimulate( Sym_Man_t * p, unsigned * pPat, Vec_Ptr_t * vMatrsNonSym )
-{
- Abc_Obj_t * pNode;
- int i, nPairsTotal, nPairsSym, nPairsNonSym;
- int clk;
-
- // create the simulation matrix
- Sim_SymmsCreateSquare( p, pPat );
- // simulate each node in the DFS order
-clk = clock();
- Vec_PtrForEachEntry( p->vNodes, pNode, i )
- {
-// if ( Abc_NodeIsConst(pNode) )
-// continue;
- Sim_UtilSimulateNodeOne( pNode, p->vSim, p->nSimWords, 0 );
- }
-p->timeSim += clock() - clk;
- // collect info into the CO matrices
-clk = clock();
- Abc_NtkForEachCo( p->pNtk, pNode, i )
- {
- pNode = Abc_ObjFanin0(pNode);
-// if ( Abc_ObjIsCi(pNode) || Abc_AigNodeIsConst(pNode) )
-// continue;
- nPairsTotal = Vec_IntEntry(p->vPairsTotal, i);
- nPairsSym = Vec_IntEntry(p->vPairsSym, i);
- nPairsNonSym = Vec_IntEntry(p->vPairsNonSym,i);
- assert( nPairsTotal >= nPairsSym + nPairsNonSym );
- if ( nPairsTotal == nPairsSym + nPairsNonSym )
- continue;
- Sim_SymmsDeriveInfo( p, pPat, pNode, vMatrsNonSym, i );
- }
-p->timeMatr += clock() - clk;
-}
-
-/**Function*************************************************************
-
- Synopsis [Creates the square matrix of simulation info.]
-
- Description []
-
- SideEffects []
-
- SeeAlso []
-
-***********************************************************************/
-void Sim_SymmsCreateSquare( Sym_Man_t * p, unsigned * pPat )
-{
- unsigned * pSimInfo;
- Abc_Obj_t * pNode;
- int i, w;
- // for each PI var copy the pattern
- Abc_NtkForEachCi( p->pNtk, pNode, i )
- {
- pSimInfo = Vec_PtrEntry( p->vSim, pNode->Id );
- if ( Sim_HasBit(pPat, i) )
- {
- for ( w = 0; w < p->nSimWords; w++ )
- pSimInfo[w] = SIM_MASK_FULL;
- }
- else
- {
- for ( w = 0; w < p->nSimWords; w++ )
- pSimInfo[w] = 0;
- }
- // flip one bit
- Sim_XorBit( pSimInfo, i );
- }
-}
-
-/**Function*************************************************************
-
- Synopsis [Transfers the info to the POs.]
-
- Description []
-
- SideEffects []
-
- SeeAlso []
-
-***********************************************************************/
-void Sim_SymmsDeriveInfo( Sym_Man_t * p, unsigned * pPat, Abc_Obj_t * pNode, Vec_Ptr_t * vMatrsNonSym, int Output )
-{
- Extra_BitMat_t * pMat;
- Vec_Int_t * vSupport;
- unsigned * pSupport;
- unsigned * pSimInfo;
- int i, w, Index;
- // get the matrix, the support, and the simulation info
- pMat = Vec_PtrEntry( vMatrsNonSym, Output );
- vSupport = Vec_VecEntry( p->vSupports, Output );
- pSupport = Vec_PtrEntry( p->vSuppFun, Output );
- pSimInfo = Vec_PtrEntry( p->vSim, pNode->Id );
- // generate vectors A1 and A2
- for ( w = 0; w < p->nSimWords; w++ )
- {
- p->uPatCol[w] = pSupport[w] & pPat[w] & pSimInfo[w];
- p->uPatRow[w] = pSupport[w] & pPat[w] & ~pSimInfo[w];
- }
- // add two dimensions
- Vec_IntForEachEntry( vSupport, i, Index )
- if ( Sim_HasBit( p->uPatCol, i ) )
- Extra_BitMatrixOr( pMat, i, p->uPatRow );
- // add two dimensions
- Vec_IntForEachEntry( vSupport, i, Index )
- if ( Sim_HasBit( p->uPatRow, i ) )
- Extra_BitMatrixOr( pMat, i, p->uPatCol );
- // generate vectors B1 and B2
- for ( w = 0; w < p->nSimWords; w++ )
- {
- p->uPatCol[w] = pSupport[w] & ~pPat[w] & pSimInfo[w];
- p->uPatRow[w] = pSupport[w] & ~pPat[w] & ~pSimInfo[w];
- }
- // add two dimensions
- Vec_IntForEachEntry( vSupport, i, Index )
- if ( Sim_HasBit( p->uPatCol, i ) )
- Extra_BitMatrixOr( pMat, i, p->uPatRow );
- // add two dimensions
- Vec_IntForEachEntry( vSupport, i, Index )
- if ( Sim_HasBit( p->uPatRow, i ) )
- Extra_BitMatrixOr( pMat, i, p->uPatCol );
-}
-
-////////////////////////////////////////////////////////////////////////
-/// END OF FILE ///
-////////////////////////////////////////////////////////////////////////
-
-