summaryrefslogtreecommitdiffstats
path: root/src/base/cba
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2015-08-09 17:19:22 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2015-08-09 17:19:22 -0700
commit8a30b675b5e93db1c63353b72820c95198d5dc4b (patch)
treeda8feba095732572bd2b5f4c86321448657196a0 /src/base/cba
parent6a4e94e74de5158280ca6959b17c2c86db1299a4 (diff)
downloadabc-8a30b675b5e93db1c63353b72820c95198d5dc4b.tar.gz
abc-8a30b675b5e93db1c63353b72820c95198d5dc4b.tar.bz2
abc-8a30b675b5e93db1c63353b72820c95198d5dc4b.zip
Improvements to Cba data-structure.
Diffstat (limited to 'src/base/cba')
-rw-r--r--src/base/cba/cba.h3
-rw-r--r--src/base/cba/cbaReadVer.c2
-rw-r--r--src/base/cba/cbaWriteVer.c7
3 files changed, 7 insertions, 5 deletions
diff --git a/src/base/cba/cba.h b/src/base/cba/cba.h
index ab99514c..6e52daea 100644
--- a/src/base/cba/cba.h
+++ b/src/base/cba/cba.h
@@ -367,6 +367,7 @@ static inline int Cba_FonLeft( Cba_Ntk_t * p, int f ) { r
static inline int Cba_FonRight( Cba_Ntk_t * p, int f ) { return Cba_NtkRangeRight(p, Cba_FonRange(p, f)); }
static inline int Cba_FonRangeSize( Cba_Ntk_t * p, int f ) { return Cba_FonIsConst(f) ? Cba_FonConstRange(p, f):Cba_NtkRangeSize(p, Cba_FonRange(p, f)); }
static inline void Cba_FonSetRange( Cba_Ntk_t * p, int f, int x ) { assert(Cba_NtkHasFonRanges(p)); Vec_IntSetEntry(&p->vFonRange, f, x); }
+static inline void Cba_FonHashRange( Cba_Ntk_t * p, int f, int l, int r ) { Cba_FonSetRange( p, f, Cba_NtkHashRange(p, l, r) ); }
static inline int Cba_FonCopy( Cba_Ntk_t * p, int f ) { return Cba_FonIsReal(f) ? Vec_IntEntry(&p->vFonCopy, f) : f; }
static inline void Cba_FonSetCopy( Cba_Ntk_t * p, int f, int x ) { assert(Cba_FonIsReal(f)); assert(Cba_FonCopy(p, f) == 0); Vec_IntWriteEntry(&p->vFonCopy, f, x); }
static inline int Cba_FonName( Cba_Ntk_t * p, int f ) { assert(Cba_NtkHasFonNames(p)); assert(Cba_FonIsReal(f)); return Vec_IntGetEntry( &p->vFonName, f ); }
@@ -1050,7 +1051,7 @@ extern void Prs_ManWriteBlif( char * pFileName, Vec_Ptr_t * p );
extern void Cba_ManWriteBlif( char * pFileName, Cba_Man_t * p );
/*=== cbaWriteVer.c ==========================================================*/
extern void Cba_ManCreatePrimMap( char ** pMap );
-extern char * Cba_ManGetSliceName( Cba_Ntk_t * p, int iFon, int Left, int Right );
+extern char * Cba_ManGetSliceName( Cba_Ntk_t * p, int iFon, int RangeId );
extern void Prs_ManWriteVerilog( char * pFileName, Vec_Ptr_t * p );
extern void Cba_ManWriteVerilog( char * pFileName, Cba_Man_t * p, int fInlineConcat );
diff --git a/src/base/cba/cbaReadVer.c b/src/base/cba/cbaReadVer.c
index d1c3ee58..268742d4 100644
--- a/src/base/cba/cbaReadVer.c
+++ b/src/base/cba/cbaReadVer.c
@@ -1013,7 +1013,7 @@ int Prs_CreateSlice( Cba_Ntk_t * p, int iFon, Prs_Ntk_t * pNtk, int Range )
int iObj, iFonNew, NameId;
assert( Cba_FonIsReal(iFon) );
// check existing slice
- NameId = Cba_NtkNewStrId( p, Cba_ManGetSliceName(p, iFon, Cba_NtkRangeLeft(p, Range), Cba_NtkRangeRight(p, Range)) );
+ NameId = Cba_NtkNewStrId( p, Cba_ManGetSliceName(p, iFon, Range) );
iFonNew = Cba_NtkGetMap( p, NameId );
if ( iFonNew )
return iFonNew;
diff --git a/src/base/cba/cbaWriteVer.c b/src/base/cba/cbaWriteVer.c
index f5a97083..bf54e2a1 100644
--- a/src/base/cba/cbaWriteVer.c
+++ b/src/base/cba/cbaWriteVer.c
@@ -112,7 +112,7 @@ static void Prs_ManWriteVerilogBoxes( FILE * pFile, Prs_Ntk_t * p )
Prs_NtkForEachBox( p, vBox, i )
{
Cba_ObjType_t NtkId = Prs_BoxNtk(p, i);
- char * pNtkName = Prs_NtkStr(p, Prs_BoxName(p, i));
+ //char * pNtkName = Prs_NtkStr(p, Prs_BoxName(p, i));
if ( NtkId == CBA_BOX_MUX )
Prs_ManWriteVerilogMux( pFile, p, vBox );
else if ( Prs_BoxIsNode(p, i) ) // node ------- check order of fanins
@@ -123,7 +123,6 @@ static void Prs_ManWriteVerilogBoxes( FILE * pFile, Prs_Ntk_t * p )
}
else // box
{
- //char * s = Prs_NtkStr(p, Vec_IntEntry(vBox, 0));
fprintf( pFile, " %s %s (", Prs_NtkStr(p, NtkId), Prs_BoxName(p, i) ? Prs_NtkStr(p, Prs_BoxName(p, i)) : "" );
Prs_ManWriteVerilogArray2( pFile, p, vBox );
fprintf( pFile, ");\n" );
@@ -311,8 +310,10 @@ char * Cba_FonGetName( Cba_Ntk_t * p, int i )
return pName;
return Vec_StrPrintF( Abc_NamBuffer(Cba_NtkNam(p)), "\\%s ", pName );
}
-char * Cba_ManGetSliceName( Cba_Ntk_t * p, int iFon, int Left, int Right )
+char * Cba_ManGetSliceName( Cba_Ntk_t * p, int iFon, int RangeId )
{
+ int Left = Cba_NtkRangeLeft(p, RangeId);
+ int Right = Cba_NtkRangeRight(p, RangeId);
char * pName = Cba_FonNameStr(p, iFon);
if ( Cba_NameIsLegalInVerilog(pName) )
if ( Left == Right )