summaryrefslogtreecommitdiffstats
path: root/src/base/cba/cbaWriteBlif.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2015-01-13 21:54:59 -0800
committerAlan Mishchenko <alanmi@berkeley.edu>2015-01-13 21:54:59 -0800
commit8ac8923a91a108718bd8af8b83a9671fc2d33900 (patch)
treed4456bfdc3990f975b522d3e0eb73ec891e58831 /src/base/cba/cbaWriteBlif.c
parent2b2f05bacd6349310ba05b5123570705892768f0 (diff)
downloadabc-8ac8923a91a108718bd8af8b83a9671fc2d33900.tar.gz
abc-8ac8923a91a108718bd8af8b83a9671fc2d33900.tar.bz2
abc-8ac8923a91a108718bd8af8b83a9671fc2d33900.zip
Various transformations of Cba_Ntk_t.
Diffstat (limited to 'src/base/cba/cbaWriteBlif.c')
-rw-r--r--src/base/cba/cbaWriteBlif.c41
1 files changed, 22 insertions, 19 deletions
diff --git a/src/base/cba/cbaWriteBlif.c b/src/base/cba/cbaWriteBlif.c
index a3966cda..001a291c 100644
--- a/src/base/cba/cbaWriteBlif.c
+++ b/src/base/cba/cbaWriteBlif.c
@@ -27,6 +27,8 @@ ABC_NAMESPACE_IMPL_START
/// DECLARATIONS ///
////////////////////////////////////////////////////////////////////////
+extern char * Ptr_TypeToSop( int Type );
+
////////////////////////////////////////////////////////////////////////
/// FUNCTION DEFINITIONS ///
////////////////////////////////////////////////////////////////////////
@@ -61,27 +63,28 @@ void Cba_PrsWriteBlifArray2( FILE * pFile, Cba_Ntk_t * p, Vec_Int_t * vFanins )
}
void Cba_PrsWriteBlifLines( FILE * pFile, Cba_Ntk_t * p )
{
- Vec_Int_t * vFanins;
- int Type, Func, i;
- Cba_NtkForEachObjTypeFuncFanins( p, Type, Func, vFanins, i )
- if ( Type == CBA_PRS_NODE ) // .names/assign/box2 (no formal/actual binding)
+ int i, Type;
+ Cba_NtkForEachObjType( p, Type, i )
+ if ( Type == CBA_OBJ_NODE ) // .names/assign/box2 (no formal/actual binding)
{
fprintf( pFile, ".names" );
- Cba_PrsWriteBlifArray( pFile, p, vFanins, 1 );
- fprintf( pFile, "%s", Cba_NtkFuncStr(p, Func) );
+ Cba_PrsWriteBlifArray( pFile, p, Cba_ObjFaninVec(p, i), 1 );
+ //fprintf( pFile, "%s", Cba_NtkFuncStr(p, Cba_ObjFuncId(p, i)) );
+ fprintf( pFile, "%s", Ptr_TypeToSop( Cba_ObjFuncId(p, i) ) );
}
- else if ( Type == CBA_PRS_BOX ) // .names/assign/box2 (no formal/actual binding)
+ else if ( Type == CBA_OBJ_BOX ) // .names/assign/box2 (no formal/actual binding)
{
fprintf( pFile, ".subckt" );
- fprintf( pFile, " %s", Cba_NtkStr(p, Func) );
- Cba_PrsWriteBlifArray2( pFile, p, vFanins );
+ fprintf( pFile, " %s", Cba_ObjFuncStr(p, i) );
+ Cba_PrsWriteBlifArray2( pFile, p, Cba_ObjFaninVec(p, i) );
}
- else if ( Type == CBA_PRS_LATCH ) // .names/assign/box2 (no formal/actual binding)
+ else if ( Type == CBA_OBJ_LATCH ) // .names/assign/box2 (no formal/actual binding)
{
+ Vec_Int_t * vFanins = Cba_ObjFaninVec(p, i);
fprintf( pFile, ".latch" );
fprintf( pFile, " %s", Cba_NtkStr(p, Vec_IntEntry(vFanins, 1)) );
fprintf( pFile, " %s", Cba_NtkStr(p, Vec_IntEntry(vFanins, 0)) );
- fprintf( pFile, " %c\n", '0' + Func );
+ fprintf( pFile, " %c\n", '0' + Cba_ObjFuncId(p, i) );
}
}
void Cba_PrsWriteBlifNtk( FILE * pFile, Cba_Ntk_t * p )
@@ -102,7 +105,7 @@ void Cba_PrsWriteBlifNtk( FILE * pFile, Cba_Ntk_t * p )
Cba_PrsWriteBlifLines( pFile, p );
fprintf( pFile, ".end\n\n" );
}
-void Cba_PrsWriteBlif( char * pFileName, Cba_Man_t * pDes )
+void Cba_PrsWriteBlif( char * pFileName, Cba_Man_t * p )
{
FILE * pFile;
Cba_Ntk_t * pNtk;
@@ -113,8 +116,8 @@ void Cba_PrsWriteBlif( char * pFileName, Cba_Man_t * pDes )
printf( "Cannot open output file \"%s\".\n", pFileName );
return;
}
- fprintf( pFile, "// Design \"%s\" written by ABC on %s\n\n", Cba_ManName(pDes), Extra_TimeStamp() );
- Cba_ManForEachNtk( pDes, pNtk, i )
+ fprintf( pFile, "// Design \"%s\" written by ABC on %s\n\n", Cba_ManName(p), Extra_TimeStamp() );
+ Cba_ManForEachNtk( p, pNtk, i )
Cba_PrsWriteBlifNtk( pFile, pNtk );
fclose( pFile );
}
@@ -142,12 +145,11 @@ void Cba_ManWriteBlifArray( FILE * pFile, Cba_Ntk_t * p, Vec_Int_t * vFanins, in
void Cba_ManWriteBlifArray2( FILE * pFile, Cba_Ntk_t * p, int iObj )
{
int iTerm, i;
- Vec_Int_t * vFanins = Cba_ObjFaninVec( p, iObj );
Cba_Ntk_t * pModel = Cba_ObjBoxModel( p, iObj );
Cba_NtkForEachPi( pModel, iTerm, i )
- fprintf( pFile, " %s=%s", Cba_ObjNameStr(pModel, iTerm), Cba_ObjNameStr(p, Vec_IntEntry(vFanins, i)) );
+ fprintf( pFile, " %s=%s", Cba_ObjNameStr(pModel, iTerm), Cba_ObjNameStr(p, Cba_ObjBoxBi(p, iObj, i)) );
Cba_NtkForEachPo( pModel, iTerm, i )
- fprintf( pFile, " %s=%s", Cba_ObjNameStr(pModel, iTerm), Cba_ObjNameStr(p, iObj + 1 + i) );
+ fprintf( pFile, " %s=%s", Cba_ObjNameStr(pModel, iTerm), Cba_ObjNameStr(p, Cba_ObjBoxBo(p, iObj, i)) );
fprintf( pFile, "\n" );
}
void Cba_ManWriteBlifLines( FILE * pFile, Cba_Ntk_t * p )
@@ -159,12 +161,13 @@ void Cba_ManWriteBlifLines( FILE * pFile, Cba_Ntk_t * p )
{
fprintf( pFile, ".names" );
Cba_ManWriteBlifArray( pFile, p, Cba_ObjFaninVec(p, i), i );
- fprintf( pFile, "%s", Cba_ObjFuncStr(p, i) );
+ //fprintf( pFile, "%s", Cba_NtkFuncStr(p, Cba_ObjFuncId(p, i)) );
+ fprintf( pFile, "%s", Ptr_TypeToSop( Cba_ObjFuncId(p, i) ) );
}
else if ( Type == CBA_OBJ_BOX ) // .names/assign/box2 (no formal/actual binding)
{
fprintf( pFile, ".subckt" );
- fprintf( pFile, " %s", Cba_ObjFuncStr(p, i) );
+ fprintf( pFile, " %s", Cba_NtkName(Cba_ObjBoxModel(p, i)) );
Cba_ManWriteBlifArray2( pFile, p, i );
}
else if ( Type == CBA_OBJ_LATCH ) // .names/assign/box2 (no formal/actual binding)