From 0f6eeaea3c9d8fb7f4b4aa97f6e640d39e3c0afa Mon Sep 17 00:00:00 2001 From: Alan Mishchenko Date: Tue, 13 Sep 2005 08:01:00 -0700 Subject: [PATCH] Version abc50913 --- Makefile | 6 ++++- abc.opt | Bin 51712 -> 56832 bytes abc.plg | 50 ++++++++++++++++++------------------ src/base/abc/abc.h | 30 +++++++++++----------- src/base/abc/abcAig.c | 5 ++-- src/base/abc/abcFunc.c | 12 ++++----- src/base/abc/abcNetlist.c | 12 ++++----- src/base/abc/abcNtk.c | 4 +-- src/base/abci/abcBalance.c | 2 +- src/base/abci/abcCollapse.c | 2 +- src/base/abci/abcDsd.c | 2 +- src/base/abci/abcFpga.c | 2 +- src/base/abci/abcFraig.c | 4 +-- src/base/abci/abcMap.c | 2 +- src/base/abci/abcMiter.c | 6 ++--- src/base/abci/abcNtbdd.c | 4 +-- src/base/abci/abcPga.c | 2 +- src/base/abci/abcRenode.c | 2 +- src/base/abci/abcStrash.c | 2 +- src/base/abci/abcUnreach.c | 2 +- src/base/abcs/abcRetImpl.c | 2 +- src/base/abcs/abcSeq.c | 4 +-- src/base/abcs/abcs.h | 2 +- src/base/abcs/module.make | 9 +++++-- src/base/io/ioReadBench.c | 2 ++ src/base/io/ioReadBlif.c | 4 +-- src/base/io/ioReadPla.c | 1 + src/base/io/ioReadVerilog.c | 2 +- src/sat/csat/csat_apis.c | 2 +- 29 files changed, 96 insertions(+), 83 deletions(-) diff --git a/Makefile b/Makefile index adb4cf945..00c865f06 100644 --- a/Makefile +++ b/Makefile @@ -8,7 +8,7 @@ PROG := abc MODULES := src/base/abc src/base/abci src/base/abcs src/base/cmd src/base/io src/base/main \ src/bdd/cudd src/bdd/dsd src/bdd/epd src/bdd/mtr src/bdd/parse src/bdd/reo \ - src/map/fpga src/map/mapper src/map/mio src/map/super \ + src/map/fpga src/map/pga src/map/mapper src/map/mio src/map/super \ src/misc/extra src/misc/mvc src/misc/st src/misc/util src/misc/vec \ src/opt/cut src/opt/dec src/opt/fxu src/opt/rwr src/opt/sim \ src/sat/asat src/sat/csat src/sat/msat src/sat/fraig @@ -59,6 +59,10 @@ tags: $(PROG): $(OBJ) $(LD) -o $@ $^ $(LIBS) +lib$(PROG).a: $(OBJ) + ar rv $@ $? + ranlib $@ + docs: doxygen doxygen.conf diff --git a/abc.opt b/abc.opt index 0e644e735e60a191f21f4537ecf852482f6f072c..ff4c312400de26cdcb7ba80c3e976bc4c406bd67 100644 GIT binary patch literal 56832 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 Nc)Ngq34A;7{{yZ}gg5{I literal 51712 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

Command Lines

-Creating temporary file "C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1CE4.tmp" with contents +Creating temporary file "C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1DD5.tmp" with contents [ /nologo /MLd /W3 /Gm /GX /ZI /Od /I "src\base\abc" /I "src\base\abci" /I "src\base\abcs" /I "src\base\cmd" /I "src\base\io" /I "src\base\main" /I "src\bdd\cudd" /I "src\bdd\epd" /I "src\bdd\mtr" /I "src\bdd\parse" /I "src\bdd\dsd" /I "src\bdd\reo" /I "src\sop\ft" /I "src\sat\asat" /I "src\sat\msat" /I "src\sat\fraig" /I "src\opt\cut" /I "src\opt\dec" /I "src\opt\fxu" /I "src\opt\rwr" /I "src\map\fpga" /I "src\map\pga" /I "src\map\mapper" /I "src\map\mapp" /I "src\map\mio" /I "src\map\super" /I "src\misc\extra" /I "src\misc\st" /I "src\misc\mvc" /I "src\misc\util" /I "src\misc\vec" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "__STDC__" /D "HAVE_ASSERT_H" /FR"Debug/" /Fp"Debug/abc.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /GZ /c "C:\_projects\abc\src\base\abc\abcNetlist.c" "C:\_projects\abc\src\base\abc\abcUtil.c" "C:\_projects\abc\src\base\abci\abc.c" "C:\_projects\abc\src\base\abci\abcPrint.c" -"C:\_projects\abc\src\base\abcs\abcSeq.c" -"C:\_projects\abc\src\base\abcs\abcUtils.c" -"C:\_projects\abc\src\base\abcs\abcShare.c" +"C:\_projects\abc\src\base\abcs\abcRetCore.c" "C:\_projects\abc\src\base\abcs\abcRetDelay.c" "C:\_projects\abc\src\base\abcs\abcRetImpl.c" "C:\_projects\abc\src\base\abcs\abcRetUtil.c" -"C:\_projects\abc\src\base\abcs\abcRetCore.c" +"C:\_projects\abc\src\base\abcs\abcSeq.c" +"C:\_projects\abc\src\base\abcs\abcShare.c" +"C:\_projects\abc\src\base\abcs\abcUtils.c" ] -Creating command line "cl.exe @C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1CE4.tmp" -Creating temporary file "C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1CE5.tmp" with contents +Creating command line "cl.exe @C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1DD5.tmp" +Creating temporary file "C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1DD6.tmp" with contents [ kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:yes /pdb:"Debug/abc.pdb" /debug /machine:I386 /out:"_TEST/abc.exe" /pdbtype:sept .\Debug\abcAig.obj @@ -65,7 +65,12 @@ kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32 .\Debug\abcTiming.obj .\Debug\abcUnreach.obj .\Debug\abcVerify.obj +.\Debug\abcRetCore.obj +.\Debug\abcRetDelay.obj +.\Debug\abcRetImpl.obj +.\Debug\abcRetUtil.obj .\Debug\abcSeq.obj +.\Debug\abcShare.obj .\Debug\abcUtils.obj .\Debug\cmd.obj .\Debug\cmdAlias.obj @@ -320,28 +325,23 @@ kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32 .\Debug\mvcPrint.obj .\Debug\mvcSort.obj .\Debug\mvcUtils.obj -.\Debug\abcShare.obj -.\Debug\abcRetDelay.obj -.\Debug\abcRetImpl.obj -.\Debug\abcRetUtil.obj -.\Debug\abcRetCore.obj ] -Creating command line "link.exe @C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1CE5.tmp" +Creating command line "link.exe @C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1DD6.tmp"

Output Window

Compiling... abcNetlist.c abcUtil.c abc.c abcPrint.c -abcSeq.c -abcUtils.c -abcShare.c +abcRetCore.c abcRetDelay.c abcRetImpl.c abcRetUtil.c -abcRetCore.c +abcSeq.c +abcShare.c +abcUtils.c Linking... -Creating temporary file "C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1CE6.tmp" with contents +Creating temporary file "C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1DD8.tmp" with contents [ /nologo /o"Debug/abc.bsc" .\Debug\abcAig.sbr @@ -384,7 +384,12 @@ Creating temporary file "C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1CE6.tmp" with cont .\Debug\abcTiming.sbr .\Debug\abcUnreach.sbr .\Debug\abcVerify.sbr +.\Debug\abcRetCore.sbr +.\Debug\abcRetDelay.sbr +.\Debug\abcRetImpl.sbr +.\Debug\abcRetUtil.sbr .\Debug\abcSeq.sbr +.\Debug\abcShare.sbr .\Debug\abcUtils.sbr .\Debug\cmd.sbr .\Debug\cmdAlias.sbr @@ -638,13 +643,8 @@ Creating temporary file "C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1CE6.tmp" with cont .\Debug\mvcOpBool.sbr .\Debug\mvcPrint.sbr .\Debug\mvcSort.sbr -.\Debug\mvcUtils.sbr -.\Debug\abcShare.sbr -.\Debug\abcRetDelay.sbr -.\Debug\abcRetImpl.sbr -.\Debug\abcRetUtil.sbr -.\Debug\abcRetCore.sbr] -Creating command line "bscmake.exe @C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1CE6.tmp" +.\Debug\mvcUtils.sbr] +Creating command line "bscmake.exe @C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1DD8.tmp" Creating browse info file...

Output Window

diff --git a/src/base/abc/abc.h b/src/base/abc/abc.h index 49dd9943d..c0fec75d5 100644 --- a/src/base/abc/abc.h +++ b/src/base/abc/abc.h @@ -43,12 +43,12 @@ // network types typedef enum { - ABC_TYPE_NONE = 0, // 0: unknown - ABC_TYPE_NETLIST, // 1: network with PIs/POs, latches, nodes, and nets - ABC_TYPE_LOGIC, // 2: network with PIs/POs, latches, and nodes - ABC_TYPE_STRASH, // 3: structurally hashed AIG (two input AND gates with c-attributes on edges) - ABC_TYPE_SEQ, // 4: sequential AIG (two input AND gates with c- and latch-attributes on edges) - ABC_TYPE_OTHER // 5: unused + ABC_NTK_NONE = 0, // 0: unknown + ABC_NTK_NETLIST, // 1: network with PIs/POs, latches, nodes, and nets + ABC_NTK_LOGIC, // 2: network with PIs/POs, latches, and nodes + ABC_NTK_STRASH, // 3: structurally hashed AIG (two input AND gates with c-attributes on edges) + ABC_NTK_SEQ, // 4: sequential AIG (two input AND gates with c- and latch-attributes on edges) + ABC_NTK_OTHER // 5: unused } Abc_NtkType_t; // network functionality @@ -206,21 +206,21 @@ struct Abc_Ntk_t_ #define ABC_INFINITY (10000000) // checking the network type -static inline bool Abc_NtkIsNetlist( Abc_Ntk_t * pNtk ) { return pNtk->ntkType == ABC_TYPE_NETLIST; } -static inline bool Abc_NtkIsLogic( Abc_Ntk_t * pNtk ) { return pNtk->ntkType == ABC_TYPE_LOGIC; } -static inline bool Abc_NtkIsStrash( Abc_Ntk_t * pNtk ) { return pNtk->ntkType == ABC_TYPE_STRASH; } -static inline bool Abc_NtkIsSeq( Abc_Ntk_t * pNtk ) { return pNtk->ntkType == ABC_TYPE_SEQ; } +static inline bool Abc_NtkIsNetlist( Abc_Ntk_t * pNtk ) { return pNtk->ntkType == ABC_NTK_NETLIST; } +static inline bool Abc_NtkIsLogic( Abc_Ntk_t * pNtk ) { return pNtk->ntkType == ABC_NTK_LOGIC; } +static inline bool Abc_NtkIsStrash( Abc_Ntk_t * pNtk ) { return pNtk->ntkType == ABC_NTK_STRASH; } +static inline bool Abc_NtkIsSeq( Abc_Ntk_t * pNtk ) { return pNtk->ntkType == ABC_NTK_SEQ; } static inline bool Abc_NtkHasSop( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_SOP; } static inline bool Abc_NtkHasBdd( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_BDD; } static inline bool Abc_NtkHasAig( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_AIG; } static inline bool Abc_NtkHasMapping( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_MAP; } -static inline bool Abc_NtkIsSopNetlist( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_SOP && pNtk->ntkType == ABC_TYPE_NETLIST; } -static inline bool Abc_NtkIsMappedNetlist( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_MAP && pNtk->ntkType == ABC_TYPE_NETLIST; } -static inline bool Abc_NtkIsSopLogic( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_SOP && pNtk->ntkType == ABC_TYPE_LOGIC ; } -static inline bool Abc_NtkIsBddLogic( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_BDD && pNtk->ntkType == ABC_TYPE_LOGIC ; } -static inline bool Abc_NtkIsMappedLogic( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_MAP && pNtk->ntkType == ABC_TYPE_LOGIC ; } +static inline bool Abc_NtkIsSopNetlist( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_SOP && pNtk->ntkType == ABC_NTK_NETLIST; } +static inline bool Abc_NtkIsMappedNetlist( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_MAP && pNtk->ntkType == ABC_NTK_NETLIST; } +static inline bool Abc_NtkIsSopLogic( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_SOP && pNtk->ntkType == ABC_NTK_LOGIC ; } +static inline bool Abc_NtkIsBddLogic( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_BDD && pNtk->ntkType == ABC_NTK_LOGIC ; } +static inline bool Abc_NtkIsMappedLogic( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_MAP && pNtk->ntkType == ABC_NTK_LOGIC ; } static inline bool Abc_NtkIsComb( Abc_Ntk_t * pNtk ) { return pNtk->nLatches == 0; } // reading data members of the network diff --git a/src/base/abc/abcAig.c b/src/base/abc/abcAig.c index e1361eb70..3e90aa76e 100644 --- a/src/base/abc/abcAig.c +++ b/src/base/abc/abcAig.c @@ -160,12 +160,13 @@ Abc_Aig_t * Abc_AigDup( Abc_Aig_t * pMan, Abc_Aig_t * pManNew ) Abc_NtkForEachLatch( pMan->pNtkAig, pObj, i ) pObj->pCopy = Abc_NtkLatch( pManNew->pNtkAig, i ); // copy internal nodes - vNodes = Abc_AigDfs( pMan->pNtkAig, 1, 0 ); + vNodes = Abc_AigDfs( pMan->pNtkAig, 0, 0 ); Vec_PtrForEachEntry( vNodes, pObj, i ) { if ( !Abc_NodeIsAigAnd(pObj) ) continue; pObj->pCopy = Abc_AigAnd( pManNew, Abc_ObjChild0Copy(pObj), Abc_ObjChild1Copy(pObj) ); +// printf( "Old = %4d. New = %4d.\n", pObj->Id, pObj->pCopy->Id ); // transfer latch attributes Abc_ObjSetFaninL0( pObj->pCopy, Abc_ObjFaninL0(pObj) ); Abc_ObjSetFaninL1( pObj->pCopy, Abc_ObjFaninL1(pObj) ); @@ -183,7 +184,7 @@ Abc_Aig_t * Abc_AigDup( Abc_Aig_t * pMan, Abc_Aig_t * pManNew ) } // get the number of nodes before and after if ( Abc_NtkNodeNum(pMan->pNtkAig) != Abc_NtkNodeNum(pManNew->pNtkAig) ) - printf( "Warning: Structural hashing reduced %d nodes (should not happen).\n", + printf( "Warning: Structural hashing during duplication reduced %d nodes (to fix later).\n", Abc_NtkNodeNum(pMan->pNtkAig) - Abc_NtkNodeNum(pManNew->pNtkAig) ); return pManNew; } diff --git a/src/base/abc/abcFunc.c b/src/base/abc/abcFunc.c index e5af18291..72a0a4db5 100644 --- a/src/base/abc/abcFunc.c +++ b/src/base/abc/abcFunc.c @@ -193,8 +193,8 @@ int Abc_NtkBddToSop( Abc_Ntk_t * pNtk ) Abc_Obj_t * pNode; DdManager * dd = pNtk->pManFunc; DdNode * bFunc; - int RetValue, i; Vec_Str_t * vCube; + int i; assert( Abc_NtkIsBddLogic(pNtk) ); Cudd_zddVarsFromBddVars( dd, 2 ); @@ -211,17 +211,17 @@ int Abc_NtkBddToSop( Abc_Ntk_t * pNtk ) bFunc = pNode->pData; pNode->pData = Abc_ConvertBddToSop( pNtk->pManFunc, dd, bFunc, bFunc, Abc_ObjFaninNum(pNode), vCube, -1 ); if ( pNode->pData == NULL ) + { + Vec_StrFree( vCube ); + Cudd_Quit( dd ); return 0; + } Cudd_RecursiveDeref( dd, bFunc ); } Vec_StrFree( vCube ); // check for remaining references in the package - RetValue = Cudd_CheckZeroRef( dd ); - if ( RetValue > 0 ) - printf( "\nThe number of referenced nodes = %d\n\n", RetValue ); -// Cudd_PrintInfo( dd, stdout ); - Cudd_Quit( dd ); + Extra_StopManager( dd ); return 1; } diff --git a/src/base/abc/abcNetlist.c b/src/base/abc/abcNetlist.c index 4cda189de..0cdee0b3c 100644 --- a/src/base/abc/abcNetlist.c +++ b/src/base/abc/abcNetlist.c @@ -48,9 +48,9 @@ Abc_Ntk_t * Abc_NtkNetlistToLogic( Abc_Ntk_t * pNtk ) assert( Abc_NtkIsNetlist(pNtk) ); // start the network if ( !Abc_NtkHasMapping(pNtk) ) - pNtkNew = Abc_NtkStartFrom( pNtk, ABC_TYPE_LOGIC, ABC_FUNC_SOP ); + pNtkNew = Abc_NtkStartFrom( pNtk, ABC_NTK_LOGIC, ABC_FUNC_SOP ); else - pNtkNew = Abc_NtkStartFrom( pNtk, ABC_TYPE_LOGIC, ABC_FUNC_MAP ); + pNtkNew = Abc_NtkStartFrom( pNtk, ABC_NTK_LOGIC, ABC_FUNC_MAP ); // duplicate the nodes Abc_NtkForEachNode( pNtk, pObj, i ) Abc_NtkDupObj(pNtkNew, pObj); @@ -159,9 +159,9 @@ Abc_Ntk_t * Abc_NtkLogicSopToNetlist( Abc_Ntk_t * pNtk ) // start the netlist by creating PI/PO/Latch objects if ( Abc_NtkIsSopLogic(pNtk) ) - pNtkNew = Abc_NtkStartFrom( pNtk, ABC_TYPE_NETLIST, ABC_FUNC_SOP ); + pNtkNew = Abc_NtkStartFrom( pNtk, ABC_NTK_NETLIST, ABC_FUNC_SOP ); else - pNtkNew = Abc_NtkStartFrom( pNtk, ABC_TYPE_NETLIST, ABC_FUNC_BDD ); + pNtkNew = Abc_NtkStartFrom( pNtk, ABC_NTK_NETLIST, ABC_FUNC_BDD ); // create the CI nets and remember them in the new CI nodes Abc_NtkForEachCi( pNtk, pObj, i ) { @@ -236,7 +236,7 @@ Abc_Ntk_t * Abc_NtkAigToLogicSop( Abc_Ntk_t * pNtk ) int i, k; assert( Abc_NtkIsStrash(pNtk) ); // start the network - pNtkNew = Abc_NtkStartFrom( pNtk, ABC_TYPE_LOGIC, ABC_FUNC_SOP ); + pNtkNew = Abc_NtkStartFrom( pNtk, ABC_NTK_LOGIC, ABC_FUNC_SOP ); // create the constant node Abc_NtkDupConst1( pNtk, pNtkNew ); // duplicate the nodes and create node functions @@ -313,7 +313,7 @@ Abc_Ntk_t * Abc_NtkAigToLogicSopBench( Abc_Ntk_t * pNtk ) if ( Abc_NtkGetChoiceNum(pNtk) ) printf( "Warning: Choice nodes are skipped.\n" ); // start the network - pNtkNew = Abc_NtkStartFrom( pNtk, ABC_TYPE_LOGIC, ABC_FUNC_SOP ); + pNtkNew = Abc_NtkStartFrom( pNtk, ABC_NTK_LOGIC, ABC_FUNC_SOP ); // create the constant node Abc_NtkDupConst1( pNtk, pNtkNew ); // collect the nodes to be used (marks all nodes with current TravId) diff --git a/src/base/abc/abcNtk.c b/src/base/abc/abcNtk.c index e543bf193..a237f75e7 100644 --- a/src/base/abc/abcNtk.c +++ b/src/base/abc/abcNtk.c @@ -210,7 +210,7 @@ Abc_Ntk_t * Abc_NtkStartRead( char * pName ) { Abc_Ntk_t * pNtkNew; // allocate the empty network - pNtkNew = Abc_NtkAlloc( ABC_TYPE_NETLIST, ABC_FUNC_SOP ); + pNtkNew = Abc_NtkAlloc( ABC_NTK_NETLIST, ABC_FUNC_SOP ); // set the specs pNtkNew->pName = util_strsav( pName ); pNtkNew->pSpec = util_strsav( pName ); @@ -379,7 +379,7 @@ Abc_Ntk_t * Abc_NtkCreateCone( Abc_Ntk_t * pNtk, Vec_Ptr_t * vRoots, Vec_Int_t * // start the network Abc_NtkCleanCopy( pNtk ); - pNtkNew = Abc_NtkAlloc( ABC_TYPE_STRASH, ABC_FUNC_AIG ); + pNtkNew = Abc_NtkAlloc( ABC_NTK_STRASH, ABC_FUNC_AIG ); pNtkNew->pName = util_strsav(pNtk->pName); // collect the nodes in the TFI of the output diff --git a/src/base/abci/abcBalance.c b/src/base/abci/abcBalance.c index 5e0f81a11..035a2d1ab 100644 --- a/src/base/abci/abcBalance.c +++ b/src/base/abci/abcBalance.c @@ -49,7 +49,7 @@ Abc_Ntk_t * Abc_NtkBalance( Abc_Ntk_t * pNtk, bool fDuplicate ) Abc_Ntk_t * pNtkAig; assert( Abc_NtkIsStrash(pNtk) ); // perform balancing - pNtkAig = Abc_NtkStartFrom( pNtk, ABC_TYPE_STRASH, ABC_FUNC_AIG ); + pNtkAig = Abc_NtkStartFrom( pNtk, ABC_NTK_STRASH, ABC_FUNC_AIG ); Abc_NtkBalancePerform( pNtk, pNtkAig, fDuplicate ); Abc_NtkFinalize( pNtk, pNtkAig ); // make sure everything is okay diff --git a/src/base/abci/abcCollapse.c b/src/base/abci/abcCollapse.c index 40370eff2..8c2f5bd34 100644 --- a/src/base/abci/abcCollapse.c +++ b/src/base/abci/abcCollapse.c @@ -98,7 +98,7 @@ Abc_Ntk_t * Abc_NtkFromGlobalBdds( Abc_Ntk_t * pNtk ) DdManager * dd = pNtk->pManGlob; int i; // start the new network - pNtkNew = Abc_NtkStartFrom( pNtk, ABC_TYPE_LOGIC, ABC_FUNC_BDD ); + pNtkNew = Abc_NtkStartFrom( pNtk, ABC_NTK_LOGIC, ABC_FUNC_BDD ); // make sure the new manager has the same number of inputs Cudd_bddIthVar( pNtkNew->pManFunc, dd->size-1 ); // process the POs diff --git a/src/base/abci/abcDsd.c b/src/base/abci/abcDsd.c index 67665ad65..5b3179942 100644 --- a/src/base/abci/abcDsd.c +++ b/src/base/abci/abcDsd.c @@ -126,7 +126,7 @@ Abc_Ntk_t * Abc_NtkDsdInternal( Abc_Ntk_t * pNtk, bool fVerbose, bool fPrint, bo } // start the new network - pNtkNew = Abc_NtkStartFrom( pNtk, ABC_TYPE_LOGIC, ABC_FUNC_BDD ); + pNtkNew = Abc_NtkStartFrom( pNtk, ABC_NTK_LOGIC, ABC_FUNC_BDD ); // make sure the new manager has enough inputs Cudd_bddIthVar( pNtkNew->pManFunc, dd->size-1 ); // put the results into the new network (save new CO drivers in old CO drivers) diff --git a/src/base/abci/abcFpga.c b/src/base/abci/abcFpga.c index 55ae23ffd..ea97826a7 100644 --- a/src/base/abci/abcFpga.c +++ b/src/base/abci/abcFpga.c @@ -194,7 +194,7 @@ Abc_Ntk_t * Abc_NtkFromFpga( Fpga_Man_t * pMan, Abc_Ntk_t * pNtk ) Abc_Obj_t * pNode, * pNodeNew; int i, nDupGates; // create the new network - pNtkNew = Abc_NtkStartFrom( pNtk, ABC_TYPE_LOGIC, ABC_FUNC_BDD ); + pNtkNew = Abc_NtkStartFrom( pNtk, ABC_NTK_LOGIC, ABC_FUNC_BDD ); // make the mapper point to the new network Fpga_CutsCleanSign( pMan ); Fpga_ManCleanData0( pMan ); diff --git a/src/base/abci/abcFraig.c b/src/base/abci/abcFraig.c index fe4f05117..5657fe384 100644 --- a/src/base/abci/abcFraig.c +++ b/src/base/abci/abcFraig.c @@ -148,7 +148,7 @@ Abc_Ntk_t * Abc_NtkFromFraig( Fraig_Man_t * pMan, Abc_Ntk_t * pNtk ) Abc_Obj_t * pNode, * pNodeNew; int i; // create the new network - pNtkNew = Abc_NtkStartFrom( pNtk, ABC_TYPE_STRASH, ABC_FUNC_AIG ); + pNtkNew = Abc_NtkStartFrom( pNtk, ABC_NTK_STRASH, ABC_FUNC_AIG ); // make the mapper point to the new network Abc_NtkForEachCi( pNtk, pNode, i ) Fraig_NodeSetData1( Fraig_ManReadIthVar(pMan, i), (Fraig_Node_t *)pNode->pCopy ); @@ -260,7 +260,7 @@ Abc_Ntk_t * Abc_NtkFraigTrust( Abc_Ntk_t * pNtk ) } // perform strashing - pNtkNew = Abc_NtkStartFrom( pNtk, ABC_TYPE_STRASH, ABC_FUNC_AIG ); + pNtkNew = Abc_NtkStartFrom( pNtk, ABC_NTK_STRASH, ABC_FUNC_AIG ); Abc_NtkFraigTrustOne( pNtk, pNtkNew ); Abc_NtkFinalize( pNtk, pNtkNew ); diff --git a/src/base/abci/abcMap.c b/src/base/abci/abcMap.c index 44f5aa94c..7e83b4f0e 100644 --- a/src/base/abci/abcMap.c +++ b/src/base/abci/abcMap.c @@ -222,7 +222,7 @@ Abc_Ntk_t * Abc_NtkFromMap( Map_Man_t * pMan, Abc_Ntk_t * pNtk ) int i, nDupGates; // create the new network - pNtkNew = Abc_NtkStartFrom( pNtk, ABC_TYPE_LOGIC, ABC_FUNC_MAP ); + pNtkNew = Abc_NtkStartFrom( pNtk, ABC_NTK_LOGIC, ABC_FUNC_MAP ); // make the mapper point to the new network Map_ManCleanData( pMan ); Abc_NtkForEachCi( pNtk, pNode, i ) diff --git a/src/base/abci/abcMiter.c b/src/base/abci/abcMiter.c index b6755a04d..20f41c562 100644 --- a/src/base/abci/abcMiter.c +++ b/src/base/abci/abcMiter.c @@ -84,7 +84,7 @@ Abc_Ntk_t * Abc_NtkMiterInt( Abc_Ntk_t * pNtk1, Abc_Ntk_t * pNtk2, int fComb ) assert( Abc_NtkIsStrash(pNtk2) ); // start the new network - pNtkMiter = Abc_NtkAlloc( ABC_TYPE_STRASH, ABC_FUNC_AIG ); + pNtkMiter = Abc_NtkAlloc( ABC_NTK_STRASH, ABC_FUNC_AIG ); sprintf( Buffer, "%s_%s_miter", pNtk1->pName, pNtk2->pName ); pNtkMiter->pName = util_strsav(Buffer); @@ -321,7 +321,7 @@ Abc_Ntk_t * Abc_NtkMiterForCofactors( Abc_Ntk_t * pNtk, int Out, int In1, int In assert( In2 < Abc_NtkCiNum(pNtk) ); // start the new network - pNtkMiter = Abc_NtkAlloc( ABC_TYPE_STRASH, ABC_FUNC_AIG ); + pNtkMiter = Abc_NtkAlloc( ABC_NTK_STRASH, ABC_FUNC_AIG ); sprintf( Buffer, "%s_miter", Abc_ObjName(Abc_NtkCo(pNtk, Out)) ); pNtkMiter->pName = util_strsav(Buffer); @@ -477,7 +477,7 @@ Abc_Ntk_t * Abc_NtkFrames( Abc_Ntk_t * pNtk, int nFrames, int fInitial ) assert( nFrames > 0 ); assert( Abc_NtkIsStrash(pNtk) ); // start the new network - pNtkFrames = Abc_NtkAlloc( ABC_TYPE_STRASH, ABC_FUNC_AIG ); + pNtkFrames = Abc_NtkAlloc( ABC_NTK_STRASH, ABC_FUNC_AIG ); sprintf( Buffer, "%s_%d_frames", pNtk->pName, nFrames ); pNtkFrames->pName = util_strsav(Buffer); // create new latches (or their initial values) and remember them in the new latches diff --git a/src/base/abci/abcNtbdd.c b/src/base/abci/abcNtbdd.c index 6362a9257..8aee5014a 100644 --- a/src/base/abci/abcNtbdd.c +++ b/src/base/abci/abcNtbdd.c @@ -78,7 +78,7 @@ Abc_Ntk_t * Abc_NtkDeriveFromBdd( DdManager * dd, DdNode * bFunc, char * pNamePo return NULL; // start the network - pNtk = Abc_NtkAlloc( ABC_TYPE_LOGIC, ABC_FUNC_BDD ); + pNtk = Abc_NtkAlloc( ABC_NTK_LOGIC, ABC_FUNC_BDD ); pNtk->pName = util_strsav(pNamePo); // make sure the new manager has enough inputs Cudd_bddIthVar( pNtk->pManFunc, Vec_PtrSize(vNamesPi) ); @@ -121,7 +121,7 @@ Abc_Ntk_t * Abc_NtkBddToMuxes( Abc_Ntk_t * pNtk ) { Abc_Ntk_t * pNtkNew; assert( Abc_NtkIsBddLogic(pNtk) ); - pNtkNew = Abc_NtkStartFrom( pNtk, ABC_TYPE_LOGIC, ABC_FUNC_SOP ); + pNtkNew = Abc_NtkStartFrom( pNtk, ABC_NTK_LOGIC, ABC_FUNC_SOP ); Abc_NtkBddToMuxesPerform( pNtk, pNtkNew ); Abc_NtkFinalize( pNtk, pNtkNew ); // make sure everything is okay diff --git a/src/base/abci/abcPga.c b/src/base/abci/abcPga.c index 0562ddb20..5142d66b4 100644 --- a/src/base/abci/abcPga.c +++ b/src/base/abci/abcPga.c @@ -107,7 +107,7 @@ Abc_Ntk_t * Abc_NtkFromPga( Abc_Ntk_t * pNtk, Vec_Ptr_t * vNodeCuts ) Vec_Ptr_t * vLeaves, * vVisited; int i, k, nDupGates; // create the new network - pNtkNew = Abc_NtkStartFrom( pNtk, ABC_TYPE_LOGIC, ABC_FUNC_BDD ); + pNtkNew = Abc_NtkStartFrom( pNtk, ABC_NTK_LOGIC, ABC_FUNC_BDD ); dd = pNtkNew->pManFunc; // set the constant node pNode = Abc_AigConst1(pNtk->pManFunc); diff --git a/src/base/abci/abcRenode.c b/src/base/abci/abcRenode.c index ad91134e1..3871b52c4 100644 --- a/src/base/abci/abcRenode.c +++ b/src/base/abci/abcRenode.c @@ -73,7 +73,7 @@ Abc_Ntk_t * Abc_NtkRenode( Abc_Ntk_t * pNtk, int nThresh, int nFaninMax, int fCn Abc_NtkRenodeSetBounds( pNtk, nThresh, nFaninMax ); // perform renoding for this boundary - pNtkNew = Abc_NtkStartFrom( pNtk, ABC_TYPE_LOGIC, ABC_FUNC_BDD ); + pNtkNew = Abc_NtkStartFrom( pNtk, ABC_NTK_LOGIC, ABC_FUNC_BDD ); Abc_NtkRenodeInt( pNtk, pNtkNew ); Abc_NtkFinalize( pNtk, pNtkNew ); diff --git a/src/base/abci/abcStrash.c b/src/base/abci/abcStrash.c index de87a1e96..8059f2227 100644 --- a/src/base/abci/abcStrash.c +++ b/src/base/abci/abcStrash.c @@ -61,7 +61,7 @@ Abc_Ntk_t * Abc_NtkStrash( Abc_Ntk_t * pNtk, bool fAllNodes, bool fCleanup ) if ( Abc_NtkGetChoiceNum( pNtk ) ) printf( "Warning: The choice nodes in the initial AIG are removed by strashing.\n" ); // perform strashing - pNtkAig = Abc_NtkStartFrom( pNtk, ABC_TYPE_STRASH, ABC_FUNC_AIG ); + pNtkAig = Abc_NtkStartFrom( pNtk, ABC_NTK_STRASH, ABC_FUNC_AIG ); Abc_NtkStrashPerform( pNtk, pNtkAig, fAllNodes ); Abc_NtkFinalize( pNtk, pNtkAig ); // print warning about self-feed latches diff --git a/src/base/abci/abcUnreach.c b/src/base/abci/abcUnreach.c index abc02cc3a..182d688db 100644 --- a/src/base/abci/abcUnreach.c +++ b/src/base/abci/abcUnreach.c @@ -282,7 +282,7 @@ Abc_Ntk_t * Abc_NtkConstructExdc( DdManager * dd, Abc_Ntk_t * pNtk, DdNode * bUn int i; // start the new network - pNtkNew = Abc_NtkAlloc( ABC_TYPE_LOGIC, ABC_FUNC_BDD ); + pNtkNew = Abc_NtkAlloc( ABC_NTK_LOGIC, ABC_FUNC_BDD ); // create PIs corresponding to LOs Abc_NtkForEachLatch( pNtk, pNode, i ) pNode->pCopy = Abc_NtkCreatePi(pNtkNew); diff --git a/src/base/abcs/abcRetImpl.c b/src/base/abcs/abcRetImpl.c index 9a28a354a..84b386bb3 100644 --- a/src/base/abcs/abcRetImpl.c +++ b/src/base/abcs/abcRetImpl.c @@ -117,7 +117,7 @@ int Abc_NtkImplementRetimingBackward( Abc_Ntk_t * pNtk, Vec_Ptr_t * vMoves ) vValues = Vec_IntAlloc( 100 ); // create the network for the initial state computation - pNtkProb = Abc_NtkAlloc( ABC_TYPE_LOGIC, ABC_FUNC_SOP ); + pNtkProb = Abc_NtkAlloc( ABC_NTK_LOGIC, ABC_FUNC_SOP ); // perform the backward moves and build the network Vec_PtrForEachEntry( vMoves, pNode, i ) diff --git a/src/base/abcs/abcSeq.c b/src/base/abcs/abcSeq.c index 1264a98dd..3b2661828 100644 --- a/src/base/abcs/abcSeq.c +++ b/src/base/abcs/abcSeq.c @@ -79,7 +79,7 @@ Abc_Ntk_t * Abc_NtkAigToSeq( Abc_Ntk_t * pNtk ) assert( Abc_NtkIsStrash(pNtk) ); assert( Abc_NtkCountSelfFeedLatches(pNtk) == 0 ); // start the network - pNtkNew = Abc_NtkAlloc( ABC_TYPE_SEQ, ABC_FUNC_AIG ); + pNtkNew = Abc_NtkAlloc( ABC_NTK_SEQ, ABC_FUNC_AIG ); // duplicate the name and the spec pNtkNew->pName = util_strsav(pNtk->pName); pNtkNew->pSpec = util_strsav(pNtk->pSpec); @@ -231,7 +231,7 @@ Abc_Ntk_t * Abc_NtkSeqToLogicSop( Abc_Ntk_t * pNtk ) assert( Abc_NtkIsSeq(pNtk) ); // start the network without latches nCutNodes = pNtk->vLats->nSize; pNtk->vLats->nSize = 0; - pNtkNew = Abc_NtkStartFrom( pNtk, ABC_TYPE_LOGIC, ABC_FUNC_SOP ); + pNtkNew = Abc_NtkStartFrom( pNtk, ABC_NTK_LOGIC, ABC_FUNC_SOP ); pNtk->vLats->nSize = nCutNodes; // create the constant node Abc_NtkDupConst1( pNtk, pNtkNew ); diff --git a/src/base/abcs/abcs.h b/src/base/abcs/abcs.h index bfa95f3e9..ba0442c0b 100644 --- a/src/base/abcs/abcs.h +++ b/src/base/abcs/abcs.h @@ -17,7 +17,7 @@ Revision [$Id: abcs.h,v 1.00 2005/06/20 00:00:00 alanmi Exp $] ***********************************************************************/ - + #ifndef __ABCS_H__ #define __ABCS_H__ diff --git a/src/base/abcs/module.make b/src/base/abcs/module.make index ad084bb87..309a88713 100644 --- a/src/base/abcs/module.make +++ b/src/base/abcs/module.make @@ -1,2 +1,7 @@ -SRC += src/base/abcs/abcRetime.c \ - src/base/abcs/abcSeq.c +SRC += src/base/abcs/abcRetCore.c \ + src/base/abcs/abcRetDelay.c \ + src/base/abcs/abcRetImpl.c \ + src/base/abcs/abcRetUtil.c \ + src/base/abcs/abcSeq.c \ + src/base/abcs/abcShare.c \ + src/base/abcs/abcUtils.c diff --git a/src/base/io/ioReadBench.c b/src/base/io/ioReadBench.c index 988cabfb5..7bbd428ab 100644 --- a/src/base/io/ioReadBench.c +++ b/src/base/io/ioReadBench.c @@ -100,6 +100,7 @@ Abc_Ntk_t * Io_ReadBenchNetwork( Extra_FileReader_t * p ) if ( vTokens->nSize == 1 ) { printf( "%s: Wrong input file format.\n", Extra_FileReaderGetFileName(p) ); + Vec_StrFree( vString ); Abc_NtkDelete( pNtk ); return NULL; } @@ -144,6 +145,7 @@ Abc_Ntk_t * Io_ReadBenchNetwork( Extra_FileReader_t * p ) else { printf( "Cannot determine gate type \"%s\" in line %d.\n", pType, Extra_FileReaderGetLineNumber(p, 0) ); + Vec_StrFree( vString ); Abc_NtkDelete( pNtk ); return NULL; } diff --git a/src/base/io/ioReadBlif.c b/src/base/io/ioReadBlif.c index 1cae68e71..23fb5272e 100644 --- a/src/base/io/ioReadBlif.c +++ b/src/base/io/ioReadBlif.c @@ -292,12 +292,12 @@ Abc_Ntk_t * Io_ReadBlifNetwork( Io_ReadBlif_t * p ) } pModelName = vTokens->pArray[1]; // allocate the empty network - p->pNtk = Abc_NtkAlloc( ABC_TYPE_NETLIST, ABC_FUNC_SOP ); + p->pNtk = Abc_NtkAlloc( ABC_NTK_NETLIST, ABC_FUNC_SOP ); p->pNtk->pName = util_strsav( pModelName ); p->pNtk->pSpec = util_strsav( p->pFileName ); } else - p->pNtk = Abc_NtkAlloc( ABC_TYPE_NETLIST, ABC_FUNC_SOP ); + p->pNtk = Abc_NtkAlloc( ABC_NTK_NETLIST, ABC_FUNC_SOP ); // read the inputs/outputs pProgress = Extra_ProgressBarStart( stdout, Extra_FileReaderGetFileSize(p->pReader) ); diff --git a/src/base/io/ioReadPla.c b/src/base/io/ioReadPla.c index 1e54db5f8..79ba5d255 100644 --- a/src/base/io/ioReadPla.c +++ b/src/base/io/ioReadPla.c @@ -229,6 +229,7 @@ Abc_Ntk_t * Io_ReadPlaNetwork( Extra_FileReader_t * p ) { Abc_ObjRemoveFanins(pNode); pNode->pData = Abc_SopRegister( pNtk->pManFunc, " 0\n" ); + Vec_StrFree( ppSops[i] ); continue; } Vec_StrPush( ppSops[i], 0 ); diff --git a/src/base/io/ioReadVerilog.c b/src/base/io/ioReadVerilog.c index f4855dde1..25a164f2d 100644 --- a/src/base/io/ioReadVerilog.c +++ b/src/base/io/ioReadVerilog.c @@ -271,7 +271,7 @@ Abc_Ntk_t * Io_ReadVerNetwork( Io_ReadVer_t * p ) pModelName = vTokens->pArray[1]; // allocate the empty network - pNtk = Abc_NtkAlloc( ABC_TYPE_NETLIST, ABC_FUNC_SOP ); + pNtk = Abc_NtkAlloc( ABC_NTK_NETLIST, ABC_FUNC_SOP ); pNtk->pName = util_strsav( pModelName ); pNtk->pSpec = util_strsav( p->pFileName ); diff --git a/src/sat/csat/csat_apis.c b/src/sat/csat/csat_apis.c index 37822383b..1f324c4b4 100644 --- a/src/sat/csat/csat_apis.c +++ b/src/sat/csat/csat_apis.c @@ -72,7 +72,7 @@ CSAT_Manager CSAT_InitManager() CSAT_Manager_t * mng; mng = ALLOC( CSAT_Manager_t, 1 ); memset( mng, 0, sizeof(CSAT_Manager_t) ); - mng->pNtk = Abc_NtkAlloc( ABC_TYPE_LOGIC, ABC_FUNC_SOP ); + mng->pNtk = Abc_NtkAlloc( ABC_NTK_LOGIC, ABC_FUNC_SOP ); mng->pNtk->pName = util_strsav("csat_network"); mng->tName2Node = stmm_init_table(strcmp, stmm_strhash); mng->tNode2Name = stmm_init_table(stmm_ptrcmp, stmm_ptrhash);