summaryrefslogtreecommitdiffstats
path: root/src/aig/gia/giaUtil.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2012-07-08 17:56:49 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2012-07-08 17:56:49 -0700
commit685faae8e2e54e0d2d4a302f37ef9895073eb412 (patch)
tree54ee747f3ca085ad99c36c988f01abc4e86424f9 /src/aig/gia/giaUtil.c
parent21b847a8db06267db0f44d991236e20efe327a03 (diff)
downloadabc-685faae8e2e54e0d2d4a302f37ef9895073eb412.tar.gz
abc-685faae8e2e54e0d2d4a302f37ef9895073eb412.tar.bz2
abc-685faae8e2e54e0d2d4a302f37ef9895073eb412.zip
Added command &gla_purify.
Diffstat (limited to 'src/aig/gia/giaUtil.c')
-rw-r--r--src/aig/gia/giaUtil.c154
1 files changed, 1 insertions, 153 deletions
diff --git a/src/aig/gia/giaUtil.c b/src/aig/gia/giaUtil.c
index 6e2c49ff..3acd3213 100644
--- a/src/aig/gia/giaUtil.c
+++ b/src/aig/gia/giaUtil.c
@@ -1280,159 +1280,6 @@ void Gia_ManInvertConstraints( Gia_Man_t * pAig )
/**Function*************************************************************
- Synopsis [Converting VTA vector to GLA vector.]
-
- Description []
-
- SideEffects []
-
- SeeAlso []
-
-***********************************************************************/
-Vec_Int_t * Gia_VtaConvertToGla( Gia_Man_t * p, Vec_Int_t * vVta )
-{
- Gia_Obj_t * pObj;
- Vec_Int_t * vGla;
- int nObjMask, nObjs = Gia_ManObjNum(p);
- int i, Entry, nFrames = Vec_IntEntry( vVta, 0 );
- assert( Vec_IntEntry(vVta, nFrames+1) == Vec_IntSize(vVta) );
- // get the bitmask
- nObjMask = (1 << Abc_Base2Log(nObjs)) - 1;
- assert( nObjs <= nObjMask );
- // go through objects
- vGla = Vec_IntStart( nObjs );
- Vec_IntWriteEntry( vGla, 0, 1 );
- Vec_IntForEachEntryStart( vVta, Entry, i, nFrames+2 )
- {
- pObj = Gia_ManObj( p, (Entry & nObjMask) );
- assert( Gia_ObjIsRo(p, pObj) || Gia_ObjIsAnd(pObj) || Gia_ObjIsConst0(pObj) );
- Vec_IntWriteEntry( vGla, (Entry & nObjMask), 1 );
- }
- return vGla;
-}
-
-/**Function*************************************************************
-
- Synopsis [Converting GLA vector to VTA vector.]
-
- Description []
-
- SideEffects []
-
- SeeAlso []
-
-***********************************************************************/
-Vec_Int_t * Gia_VtaConvertFromGla( Gia_Man_t * p, Vec_Int_t * vGla, int nFrames )
-{
- Vec_Int_t * vVta;
- int nObjBits, nObjMask, nObjs = Gia_ManObjNum(p);
- int i, k, j, Entry, Counter, nGlaSize;
- //. get the GLA size
- nGlaSize = Vec_IntSum(vGla);
- // get the bitmask
- nObjBits = Abc_Base2Log(nObjs);
- nObjMask = (1 << Abc_Base2Log(nObjs)) - 1;
- assert( nObjs <= nObjMask );
- // go through objects
- vVta = Vec_IntAlloc( 1000 );
- Vec_IntPush( vVta, nFrames );
- Counter = nFrames + 2;
- for ( i = 0; i <= nFrames; i++, Counter += i * nGlaSize )
- Vec_IntPush( vVta, Counter );
- for ( i = 0; i < nFrames; i++ )
- for ( k = 0; k <= i; k++ )
- Vec_IntForEachEntry( vGla, Entry, j )
- if ( Entry )
- Vec_IntPush( vVta, (k << nObjBits) | j );
- Counter = Vec_IntEntry(vVta, nFrames+1);
- assert( Vec_IntEntry(vVta, nFrames+1) == Vec_IntSize(vVta) );
- return vVta;
-}
-
-/**Function*************************************************************
-
- Synopsis [Converting GLA vector to FLA vector.]
-
- Description []
-
- SideEffects []
-
- SeeAlso []
-
-***********************************************************************/
-void Gia_FlaConvertToGla_rec( Gia_Man_t * p, Gia_Obj_t * pObj, Vec_Int_t * vGla )
-{
- if ( Gia_ObjIsTravIdCurrent(p, pObj) )
- return;
- Gia_ObjSetTravIdCurrent(p, pObj);
- Vec_IntWriteEntry( vGla, Gia_ObjId(p, pObj), 1 );
- if ( Gia_ObjIsRo(p, pObj) )
- return;
- assert( Gia_ObjIsAnd(pObj) );
- Gia_FlaConvertToGla_rec( p, Gia_ObjFanin0(pObj), vGla );
- Gia_FlaConvertToGla_rec( p, Gia_ObjFanin1(pObj), vGla );
-}
-
-/**Function*************************************************************
-
- Synopsis [Converting FLA vector to GLA vector.]
-
- Description []
-
- SideEffects []
-
- SeeAlso []
-
-***********************************************************************/
-Vec_Int_t * Gia_FlaConvertToGla( Gia_Man_t * p, Vec_Int_t * vFla )
-{
- Vec_Int_t * vGla;
- Gia_Obj_t * pObj;
- int i;
- // mark const0 and relevant CI objects
- Gia_ManIncrementTravId( p );
- Gia_ObjSetTravIdCurrent(p, Gia_ManConst0(p));
- Gia_ManForEachPi( p, pObj, i )
- Gia_ObjSetTravIdCurrent(p, pObj);
- Gia_ManForEachRo( p, pObj, i )
- if ( !Vec_IntEntry(vFla, i) )
- Gia_ObjSetTravIdCurrent(p, pObj);
- // label all objects reachable from the PO and selected flops
- vGla = Vec_IntStart( Gia_ManObjNum(p) );
- Vec_IntWriteEntry( vGla, 0, 1 );
- Gia_ManForEachPo( p, pObj, i )
- Gia_FlaConvertToGla_rec( p, Gia_ObjFanin0(pObj), vGla );
- Gia_ManForEachRi( p, pObj, i )
- if ( Vec_IntEntry(vFla, i) )
- Gia_FlaConvertToGla_rec( p, Gia_ObjFanin0(pObj), vGla );
- return vGla;
-}
-
-/**Function*************************************************************
-
- Synopsis [Converting GLA vector to FLA vector.]
-
- Description []
-
- SideEffects []
-
- SeeAlso []
-
-***********************************************************************/
-Vec_Int_t * Gia_GlaConvertToFla( Gia_Man_t * p, Vec_Int_t * vGla )
-{
- Vec_Int_t * vFla;
- Gia_Obj_t * pObj;
- int i;
- vFla = Vec_IntStart( Gia_ManRegNum(p) );
- Gia_ManForEachRo( p, pObj, i )
- if ( Vec_IntEntry(vGla, Gia_ObjId(p, pObj)) )
- Vec_IntWriteEntry( vFla, i, 1 );
- return vFla;
-}
-
-/**Function*************************************************************
-
Synopsis [Testing the speedup due to grouping POs into batches.]
Description []
@@ -1627,6 +1474,7 @@ void Gia_ObjComputeTruthTableTest( Gia_Man_t * p )
}
+
////////////////////////////////////////////////////////////////////////
/// END OF FILE ///
////////////////////////////////////////////////////////////////////////