From 77536ad1fd75c6b36f268e3fbbc90860de1b229d Mon Sep 17 00:00:00 2001 From: Alan Mishchenko Date: Mon, 10 Oct 2005 08:01:00 -0700 Subject: [PATCH] Version abc51010 --- abc.dsp | 12 + abc.opt | Bin 52736 -> 51712 bytes abc.plg | 1290 ++++++++++++++-------------- src/base/abcs/abcSeqMan.c | 218 +++++ src/base/abcs/abcs.h | 1 + src/base/io/io.c | 136 +++ src/base/io/io.h | 4 + src/base/io/ioRead.c | 2 + src/base/io/ioReadBaf.c | 164 ++++ src/base/io/ioWriteBaf.c | 163 ++++ src/base/io/module.make | 2 + src/misc/extra/extraUtilProgress.c | 4 +- src/opt/sim/simSym.c | 1 + src/opt/sim/simSymStr.c | 2 + src/opt/sim/simUtils.c | 45 + 15 files changed, 1414 insertions(+), 630 deletions(-) create mode 100644 src/base/abcs/abcSeqMan.c create mode 100644 src/base/io/ioReadBaf.c create mode 100644 src/base/io/ioWriteBaf.c diff --git a/abc.dsp b/abc.dsp index c0b3b1873..9ab94ff0a 100644 --- a/abc.dsp +++ b/abc.dsp @@ -310,6 +310,10 @@ SOURCE=.\src\base\abcs\abcSeq.c # End Source File # Begin Source File +SOURCE=.\src\base\abcs\abcSeqMan.c +# End Source File +# Begin Source File + SOURCE=.\src\base\abcs\abcShare.c # End Source File # Begin Source File @@ -374,6 +378,10 @@ SOURCE=.\src\base\io\ioRead.c # End Source File # Begin Source File +SOURCE=.\src\base\io\ioReadBaf.c +# End Source File +# Begin Source File + SOURCE=.\src\base\io\ioReadBench.c # End Source File # Begin Source File @@ -402,6 +410,10 @@ SOURCE=.\src\base\io\ioUtil.c # End Source File # Begin Source File +SOURCE=.\src\base\io\ioWriteBaf.c +# End Source File +# Begin Source File + SOURCE=.\src\base\io\ioWriteBench.c # End Source File # Begin Source File diff --git a/abc.opt b/abc.opt index 801ad0372f092c28c0ae7b2ca9e130ec979584ec..9f43f99817344d8ff5cf1ad85e6e891fb7d4cf11 100644 GIT binary patch literal 51712 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 a7iIsK|E>LBl>2|m{Xb>@_y529zyCKVet!G_ diff --git a/abc.plg b/abc.plg index 6b48f938a..9ffe17e4e 100644 --- a/abc.plg +++ b/abc.plg @@ -3,644 +3,678 @@
 

Build Log

---------------------Configuration: abc - Win32 Release-------------------- +--------------------Configuration: abc - Win32 Debug--------------------

Command Lines

-Creating temporary file "C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1B74.tmp" with contents +Creating temporary file "C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP20CE.tmp" with contents [ -/nologo /ML /W3 /GX /O2 /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\sim" /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\npn" /I "src\misc\vec" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "__STDC__" /D "HAVE_ASSERT_H" /FR"Release/" /Fp"Release/abc.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c -"C:\_projects\abc\src\opt\sim\simSupp.c" +/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\sim" /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\npn" /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\abcFpgaDelay.c" +"C:\_projects\abc\src\base\abcs\abcFpgaSeq.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\abcSeq.c" +"C:\_projects\abc\src\base\abcs\abcShare.c" +"C:\_projects\abc\src\base\abcs\abcUtils.c" +"C:\_projects\abc\src\base\io\ioWriteDot.c" +"C:\_projects\abc\src\base\abcs\abcSeqMan.c" ] -Creating command line "cl.exe @C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1B74.tmp" -Creating temporary file "C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1B75.tmp" with contents +Creating command line "cl.exe @C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP20CE.tmp" +Creating temporary file "C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP20CF.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:no /pdb:"Release/abc.pdb" /machine:I386 /out:"_TEST/abc.exe" -.\Release\abcAig.obj -.\Release\abcCheck.obj -.\Release\abcDfs.obj -.\Release\abcFanio.obj -.\Release\abcFunc.obj -.\Release\abcLatch.obj -.\Release\abcMinBase.obj -.\Release\abcNames.obj -.\Release\abcNetlist.obj -.\Release\abcNtk.obj -.\Release\abcObj.obj -.\Release\abcRefs.obj -.\Release\abcShow.obj -.\Release\abcSop.obj -.\Release\abcUtil.obj -.\Release\abc.obj -.\Release\abcAttach.obj -.\Release\abcBalance.obj -.\Release\abcCollapse.obj -.\Release\abcCut.obj -.\Release\abcDsd.obj -.\Release\abcFpga.obj -.\Release\abcFraig.obj -.\Release\abcFxu.obj -.\Release\abcMap.obj -.\Release\abcMiter.obj -.\Release\abcNtbdd.obj -.\Release\abcPga.obj -.\Release\abcPrint.obj -.\Release\abcReconv.obj -.\Release\abcRefactor.obj -.\Release\abcRenode.obj -.\Release\abcRewrite.obj -.\Release\abcSat.obj -.\Release\abcStrash.obj -.\Release\abcSweep.obj -.\Release\abcSymm.obj -.\Release\abcTiming.obj -.\Release\abcUnreach.obj -.\Release\abcVanEijk.obj -.\Release\abcVanImp.obj -.\Release\abcVerify.obj -.\Release\abcFpgaDelay.obj -.\Release\abcFpgaSeq.obj -.\Release\abcRetCore.obj -.\Release\abcRetDelay.obj -.\Release\abcRetImpl.obj -.\Release\abcRetUtil.obj -.\Release\abcSeq.obj -.\Release\abcShare.obj -.\Release\abcUtils.obj -.\Release\cmd.obj -.\Release\cmdAlias.obj -.\Release\cmdApi.obj -.\Release\cmdFlag.obj -.\Release\cmdHist.obj -.\Release\cmdUtils.obj -.\Release\io.obj -.\Release\ioRead.obj -.\Release\ioReadBench.obj -.\Release\ioReadBlif.obj -.\Release\ioReadEdif.obj -.\Release\ioReadEqn.obj -.\Release\ioReadPla.obj -.\Release\ioReadVerilog.obj -.\Release\ioUtil.obj -.\Release\ioWriteBench.obj -.\Release\ioWriteBlif.obj -.\Release\ioWriteCnf.obj -.\Release\ioWriteDot.obj -.\Release\ioWriteEqn.obj -.\Release\ioWriteGml.obj -.\Release\ioWritePla.obj -.\Release\libSupport.obj -.\Release\main.obj -.\Release\mainFrame.obj -.\Release\mainInit.obj -.\Release\mainUtils.obj -.\Release\cuddAddAbs.obj -.\Release\cuddAddApply.obj -.\Release\cuddAddFind.obj -.\Release\cuddAddInv.obj -.\Release\cuddAddIte.obj -.\Release\cuddAddNeg.obj -.\Release\cuddAddWalsh.obj -.\Release\cuddAndAbs.obj -.\Release\cuddAnneal.obj -.\Release\cuddApa.obj -.\Release\cuddAPI.obj -.\Release\cuddApprox.obj -.\Release\cuddBddAbs.obj -.\Release\cuddBddCorr.obj -.\Release\cuddBddIte.obj -.\Release\cuddBridge.obj -.\Release\cuddCache.obj -.\Release\cuddCheck.obj -.\Release\cuddClip.obj -.\Release\cuddCof.obj -.\Release\cuddCompose.obj -.\Release\cuddDecomp.obj -.\Release\cuddEssent.obj -.\Release\cuddExact.obj -.\Release\cuddExport.obj -.\Release\cuddGenCof.obj -.\Release\cuddGenetic.obj -.\Release\cuddGroup.obj -.\Release\cuddHarwell.obj -.\Release\cuddInit.obj -.\Release\cuddInteract.obj -.\Release\cuddLCache.obj -.\Release\cuddLevelQ.obj -.\Release\cuddLinear.obj -.\Release\cuddLiteral.obj -.\Release\cuddMatMult.obj -.\Release\cuddPriority.obj -.\Release\cuddRead.obj -.\Release\cuddRef.obj -.\Release\cuddReorder.obj -.\Release\cuddSat.obj -.\Release\cuddSign.obj -.\Release\cuddSolve.obj -.\Release\cuddSplit.obj -.\Release\cuddSubsetHB.obj -.\Release\cuddSubsetSP.obj -.\Release\cuddSymmetry.obj -.\Release\cuddTable.obj -.\Release\cuddUtil.obj -.\Release\cuddWindow.obj -.\Release\cuddZddCount.obj -.\Release\cuddZddFuncs.obj -.\Release\cuddZddGroup.obj -.\Release\cuddZddIsop.obj -.\Release\cuddZddLin.obj -.\Release\cuddZddMisc.obj -.\Release\cuddZddPort.obj -.\Release\cuddZddReord.obj -.\Release\cuddZddSetop.obj -.\Release\cuddZddSymm.obj -.\Release\cuddZddUtil.obj -.\Release\epd.obj -.\Release\mtrBasic.obj -.\Release\mtrGroup.obj -.\Release\parseCore.obj -.\Release\parseStack.obj -.\Release\dsdApi.obj -.\Release\dsdCheck.obj -.\Release\dsdLocal.obj -.\Release\dsdMan.obj -.\Release\dsdProc.obj -.\Release\dsdTree.obj -.\Release\reoApi.obj -.\Release\reoCore.obj -.\Release\reoProfile.obj -.\Release\reoSift.obj -.\Release\reoSwap.obj -.\Release\reoTest.obj -.\Release\reoTransfer.obj -.\Release\reoUnits.obj -.\Release\added.obj -.\Release\solver.obj -.\Release\msatActivity.obj -.\Release\msatClause.obj -.\Release\msatClauseVec.obj -.\Release\msatMem.obj -.\Release\msatOrderH.obj -.\Release\msatQueue.obj -.\Release\msatRead.obj -.\Release\msatSolverApi.obj -.\Release\msatSolverCore.obj -.\Release\msatSolverIo.obj -.\Release\msatSolverSearch.obj -.\Release\msatSort.obj -.\Release\msatVec.obj -.\Release\fraigApi.obj -.\Release\fraigCanon.obj -.\Release\fraigFanout.obj -.\Release\fraigFeed.obj -.\Release\fraigMan.obj -.\Release\fraigMem.obj -.\Release\fraigNode.obj -.\Release\fraigPrime.obj -.\Release\fraigSat.obj -.\Release\fraigTable.obj -.\Release\fraigUtil.obj -.\Release\fraigVec.obj -.\Release\csat_apis.obj -.\Release\fxu.obj -.\Release\fxuCreate.obj -.\Release\fxuHeapD.obj -.\Release\fxuHeapS.obj -.\Release\fxuList.obj -.\Release\fxuMatrix.obj -.\Release\fxuPair.obj -.\Release\fxuPrint.obj -.\Release\fxuReduce.obj -.\Release\fxuSelect.obj -.\Release\fxuSingle.obj -.\Release\fxuUpdate.obj -.\Release\rwrDec.obj -.\Release\rwrEva.obj -.\Release\rwrExp.obj -.\Release\rwrLib.obj -.\Release\rwrMan.obj -.\Release\rwrPrint.obj -.\Release\rwrUtil.obj -.\Release\cutApi.obj -.\Release\cutCut.obj -.\Release\cutMan.obj -.\Release\cutMerge.obj -.\Release\cutNode.obj -.\Release\cutOracle.obj -.\Release\cutSeq.obj -.\Release\cutTruth.obj -.\Release\decAbc.obj -.\Release\decFactor.obj -.\Release\decMan.obj -.\Release\decPrint.obj -.\Release\decUtil.obj -.\Release\simMan.obj -.\Release\simSat.obj -.\Release\simSeq.obj -.\Release\simSupp.obj -.\Release\simSwitch.obj -.\Release\simSym.obj -.\Release\simSymSat.obj -.\Release\simSymSim.obj -.\Release\simSymStr.obj -.\Release\simUtils.obj -.\Release\fpga.obj -.\Release\fpgaCore.obj -.\Release\fpgaCreate.obj -.\Release\fpgaCut.obj -.\Release\fpgaCutUtils.obj -.\Release\fpgaFanout.obj -.\Release\fpgaLib.obj -.\Release\fpgaMatch.obj -.\Release\fpgaSwitch.obj -.\Release\fpgaTime.obj -.\Release\fpgaTruth.obj -.\Release\fpgaUtils.obj -.\Release\fpgaVec.obj -.\Release\mapper.obj -.\Release\mapperCanon.obj -.\Release\mapperCore.obj -.\Release\mapperCreate.obj -.\Release\mapperCut.obj -.\Release\mapperCutUtils.obj -.\Release\mapperFanout.obj -.\Release\mapperLib.obj -.\Release\mapperMatch.obj -.\Release\mapperRefs.obj -.\Release\mapperSuper.obj -.\Release\mapperSwitch.obj -.\Release\mapperTable.obj -.\Release\mapperTime.obj -.\Release\mapperTree.obj -.\Release\mapperTruth.obj -.\Release\mapperUtils.obj -.\Release\mapperVec.obj -.\Release\mio.obj -.\Release\mioApi.obj -.\Release\mioFunc.obj -.\Release\mioRead.obj -.\Release\mioUtils.obj -.\Release\super.obj -.\Release\superAnd.obj -.\Release\superGate.obj -.\Release\superWrite.obj -.\Release\pgaCore.obj -.\Release\pgaMan.obj -.\Release\pgaMatch.obj -.\Release\pgaUtil.obj -.\Release\extraBddKmap.obj -.\Release\extraBddMisc.obj -.\Release\extraBddSymm.obj -.\Release\extraUtilBitMatrix.obj -.\Release\extraUtilCanon.obj -.\Release\extraUtilFile.obj -.\Release\extraUtilMemory.obj -.\Release\extraUtilMisc.obj -.\Release\extraUtilProgress.obj -.\Release\extraUtilReader.obj -.\Release\st.obj -.\Release\stmm.obj -.\Release\cpu_stats.obj -.\Release\cpu_time.obj -.\Release\datalimit.obj -.\Release\getopt.obj -.\Release\pathsearch.obj -.\Release\safe_mem.obj -.\Release\strsav.obj -.\Release\texpand.obj -.\Release\mvc.obj -.\Release\mvcApi.obj -.\Release\mvcCompare.obj -.\Release\mvcContain.obj -.\Release\mvcCover.obj -.\Release\mvcCube.obj -.\Release\mvcDivide.obj -.\Release\mvcDivisor.obj -.\Release\mvcList.obj -.\Release\mvcLits.obj -.\Release\mvcMan.obj -.\Release\mvcOpAlg.obj -.\Release\mvcOpBool.obj -.\Release\mvcPrint.obj -.\Release\mvcSort.obj -.\Release\mvcUtils.obj +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 +.\Debug\abcCheck.obj +.\Debug\abcDfs.obj +.\Debug\abcFanio.obj +.\Debug\abcFunc.obj +.\Debug\abcLatch.obj +.\Debug\abcMinBase.obj +.\Debug\abcNames.obj +.\Debug\abcNetlist.obj +.\Debug\abcNtk.obj +.\Debug\abcObj.obj +.\Debug\abcRefs.obj +.\Debug\abcShow.obj +.\Debug\abcSop.obj +.\Debug\abcUtil.obj +.\Debug\abc.obj +.\Debug\abcAttach.obj +.\Debug\abcBalance.obj +.\Debug\abcCollapse.obj +.\Debug\abcCut.obj +.\Debug\abcDsd.obj +.\Debug\abcFpga.obj +.\Debug\abcFraig.obj +.\Debug\abcFxu.obj +.\Debug\abcMap.obj +.\Debug\abcMiter.obj +.\Debug\abcNtbdd.obj +.\Debug\abcPga.obj +.\Debug\abcPrint.obj +.\Debug\abcReconv.obj +.\Debug\abcRefactor.obj +.\Debug\abcRenode.obj +.\Debug\abcRewrite.obj +.\Debug\abcSat.obj +.\Debug\abcStrash.obj +.\Debug\abcSweep.obj +.\Debug\abcSymm.obj +.\Debug\abcTiming.obj +.\Debug\abcUnreach.obj +.\Debug\abcVanEijk.obj +.\Debug\abcVanImp.obj +.\Debug\abcVerify.obj +.\Debug\abcFpgaDelay.obj +.\Debug\abcFpgaSeq.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 +.\Debug\cmdApi.obj +.\Debug\cmdFlag.obj +.\Debug\cmdHist.obj +.\Debug\cmdUtils.obj +.\Debug\io.obj +.\Debug\ioRead.obj +.\Debug\ioReadBaf.obj +.\Debug\ioReadBench.obj +.\Debug\ioReadBlif.obj +.\Debug\ioReadEdif.obj +.\Debug\ioReadEqn.obj +.\Debug\ioReadPla.obj +.\Debug\ioReadVerilog.obj +.\Debug\ioUtil.obj +.\Debug\ioWriteBaf.obj +.\Debug\ioWriteBench.obj +.\Debug\ioWriteBlif.obj +.\Debug\ioWriteCnf.obj +.\Debug\ioWriteDot.obj +.\Debug\ioWriteEqn.obj +.\Debug\ioWriteGml.obj +.\Debug\ioWritePla.obj +.\Debug\libSupport.obj +.\Debug\main.obj +.\Debug\mainFrame.obj +.\Debug\mainInit.obj +.\Debug\mainUtils.obj +.\Debug\cuddAddAbs.obj +.\Debug\cuddAddApply.obj +.\Debug\cuddAddFind.obj +.\Debug\cuddAddInv.obj +.\Debug\cuddAddIte.obj +.\Debug\cuddAddNeg.obj +.\Debug\cuddAddWalsh.obj +.\Debug\cuddAndAbs.obj +.\Debug\cuddAnneal.obj +.\Debug\cuddApa.obj +.\Debug\cuddAPI.obj +.\Debug\cuddApprox.obj +.\Debug\cuddBddAbs.obj +.\Debug\cuddBddCorr.obj +.\Debug\cuddBddIte.obj +.\Debug\cuddBridge.obj +.\Debug\cuddCache.obj +.\Debug\cuddCheck.obj +.\Debug\cuddClip.obj +.\Debug\cuddCof.obj +.\Debug\cuddCompose.obj +.\Debug\cuddDecomp.obj +.\Debug\cuddEssent.obj +.\Debug\cuddExact.obj +.\Debug\cuddExport.obj +.\Debug\cuddGenCof.obj +.\Debug\cuddGenetic.obj +.\Debug\cuddGroup.obj +.\Debug\cuddHarwell.obj +.\Debug\cuddInit.obj +.\Debug\cuddInteract.obj +.\Debug\cuddLCache.obj +.\Debug\cuddLevelQ.obj +.\Debug\cuddLinear.obj +.\Debug\cuddLiteral.obj +.\Debug\cuddMatMult.obj +.\Debug\cuddPriority.obj +.\Debug\cuddRead.obj +.\Debug\cuddRef.obj +.\Debug\cuddReorder.obj +.\Debug\cuddSat.obj +.\Debug\cuddSign.obj +.\Debug\cuddSolve.obj +.\Debug\cuddSplit.obj +.\Debug\cuddSubsetHB.obj +.\Debug\cuddSubsetSP.obj +.\Debug\cuddSymmetry.obj +.\Debug\cuddTable.obj +.\Debug\cuddUtil.obj +.\Debug\cuddWindow.obj +.\Debug\cuddZddCount.obj +.\Debug\cuddZddFuncs.obj +.\Debug\cuddZddGroup.obj +.\Debug\cuddZddIsop.obj +.\Debug\cuddZddLin.obj +.\Debug\cuddZddMisc.obj +.\Debug\cuddZddPort.obj +.\Debug\cuddZddReord.obj +.\Debug\cuddZddSetop.obj +.\Debug\cuddZddSymm.obj +.\Debug\cuddZddUtil.obj +.\Debug\epd.obj +.\Debug\mtrBasic.obj +.\Debug\mtrGroup.obj +.\Debug\parseCore.obj +.\Debug\parseStack.obj +.\Debug\dsdApi.obj +.\Debug\dsdCheck.obj +.\Debug\dsdLocal.obj +.\Debug\dsdMan.obj +.\Debug\dsdProc.obj +.\Debug\dsdTree.obj +.\Debug\reoApi.obj +.\Debug\reoCore.obj +.\Debug\reoProfile.obj +.\Debug\reoSift.obj +.\Debug\reoSwap.obj +.\Debug\reoTest.obj +.\Debug\reoTransfer.obj +.\Debug\reoUnits.obj +.\Debug\added.obj +.\Debug\solver.obj +.\Debug\msatActivity.obj +.\Debug\msatClause.obj +.\Debug\msatClauseVec.obj +.\Debug\msatMem.obj +.\Debug\msatOrderH.obj +.\Debug\msatQueue.obj +.\Debug\msatRead.obj +.\Debug\msatSolverApi.obj +.\Debug\msatSolverCore.obj +.\Debug\msatSolverIo.obj +.\Debug\msatSolverSearch.obj +.\Debug\msatSort.obj +.\Debug\msatVec.obj +.\Debug\fraigApi.obj +.\Debug\fraigCanon.obj +.\Debug\fraigFanout.obj +.\Debug\fraigFeed.obj +.\Debug\fraigMan.obj +.\Debug\fraigMem.obj +.\Debug\fraigNode.obj +.\Debug\fraigPrime.obj +.\Debug\fraigSat.obj +.\Debug\fraigTable.obj +.\Debug\fraigUtil.obj +.\Debug\fraigVec.obj +.\Debug\csat_apis.obj +.\Debug\fxu.obj +.\Debug\fxuCreate.obj +.\Debug\fxuHeapD.obj +.\Debug\fxuHeapS.obj +.\Debug\fxuList.obj +.\Debug\fxuMatrix.obj +.\Debug\fxuPair.obj +.\Debug\fxuPrint.obj +.\Debug\fxuReduce.obj +.\Debug\fxuSelect.obj +.\Debug\fxuSingle.obj +.\Debug\fxuUpdate.obj +.\Debug\rwrDec.obj +.\Debug\rwrEva.obj +.\Debug\rwrExp.obj +.\Debug\rwrLib.obj +.\Debug\rwrMan.obj +.\Debug\rwrPrint.obj +.\Debug\rwrUtil.obj +.\Debug\cutApi.obj +.\Debug\cutCut.obj +.\Debug\cutMan.obj +.\Debug\cutMerge.obj +.\Debug\cutNode.obj +.\Debug\cutOracle.obj +.\Debug\cutSeq.obj +.\Debug\cutTruth.obj +.\Debug\decAbc.obj +.\Debug\decFactor.obj +.\Debug\decMan.obj +.\Debug\decPrint.obj +.\Debug\decUtil.obj +.\Debug\simMan.obj +.\Debug\simSat.obj +.\Debug\simSeq.obj +.\Debug\simSupp.obj +.\Debug\simSwitch.obj +.\Debug\simSym.obj +.\Debug\simSymSat.obj +.\Debug\simSymSim.obj +.\Debug\simSymStr.obj +.\Debug\simUtils.obj +.\Debug\fpga.obj +.\Debug\fpgaCore.obj +.\Debug\fpgaCreate.obj +.\Debug\fpgaCut.obj +.\Debug\fpgaCutUtils.obj +.\Debug\fpgaFanout.obj +.\Debug\fpgaLib.obj +.\Debug\fpgaMatch.obj +.\Debug\fpgaSwitch.obj +.\Debug\fpgaTime.obj +.\Debug\fpgaTruth.obj +.\Debug\fpgaUtils.obj +.\Debug\fpgaVec.obj +.\Debug\mapper.obj +.\Debug\mapperCanon.obj +.\Debug\mapperCore.obj +.\Debug\mapperCreate.obj +.\Debug\mapperCut.obj +.\Debug\mapperCutUtils.obj +.\Debug\mapperFanout.obj +.\Debug\mapperLib.obj +.\Debug\mapperMatch.obj +.\Debug\mapperRefs.obj +.\Debug\mapperSuper.obj +.\Debug\mapperSwitch.obj +.\Debug\mapperTable.obj +.\Debug\mapperTime.obj +.\Debug\mapperTree.obj +.\Debug\mapperTruth.obj +.\Debug\mapperUtils.obj +.\Debug\mapperVec.obj +.\Debug\mio.obj +.\Debug\mioApi.obj +.\Debug\mioFunc.obj +.\Debug\mioRead.obj +.\Debug\mioUtils.obj +.\Debug\super.obj +.\Debug\superAnd.obj +.\Debug\superGate.obj +.\Debug\superWrite.obj +.\Debug\pgaCore.obj +.\Debug\pgaMan.obj +.\Debug\pgaMatch.obj +.\Debug\pgaUtil.obj +.\Debug\extraBddKmap.obj +.\Debug\extraBddMisc.obj +.\Debug\extraBddSymm.obj +.\Debug\extraUtilBitMatrix.obj +.\Debug\extraUtilCanon.obj +.\Debug\extraUtilFile.obj +.\Debug\extraUtilMemory.obj +.\Debug\extraUtilMisc.obj +.\Debug\extraUtilProgress.obj +.\Debug\extraUtilReader.obj +.\Debug\st.obj +.\Debug\stmm.obj +.\Debug\cpu_stats.obj +.\Debug\cpu_time.obj +.\Debug\datalimit.obj +.\Debug\getopt.obj +.\Debug\pathsearch.obj +.\Debug\safe_mem.obj +.\Debug\strsav.obj +.\Debug\texpand.obj +.\Debug\mvc.obj +.\Debug\mvcApi.obj +.\Debug\mvcCompare.obj +.\Debug\mvcContain.obj +.\Debug\mvcCover.obj +.\Debug\mvcCube.obj +.\Debug\mvcDivide.obj +.\Debug\mvcDivisor.obj +.\Debug\mvcList.obj +.\Debug\mvcLits.obj +.\Debug\mvcMan.obj +.\Debug\mvcOpAlg.obj +.\Debug\mvcOpBool.obj +.\Debug\mvcPrint.obj +.\Debug\mvcSort.obj +.\Debug\mvcUtils.obj +.\Debug\abcSeqMan.obj ] -Creating command line "link.exe @C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1B75.tmp" +Creating command line "link.exe @C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP20CF.tmp"

Output Window

Compiling... -simSupp.c +abcNetlist.c +abcUtil.c +abc.c +abcPrint.c +abcFpgaDelay.c +abcFpgaSeq.c +abcRetCore.c +abcRetDelay.c +abcRetImpl.c +abcRetUtil.c +abcSeq.c +abcShare.c +abcUtils.c +ioWriteDot.c +abcSeqMan.c Linking... -Creating temporary file "C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1B77.tmp" with contents +Creating temporary file "C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP20D1.tmp" with contents [ -/nologo /o"Release/abc.bsc" -.\Release\abcAig.sbr -.\Release\abcCheck.sbr -.\Release\abcDfs.sbr -.\Release\abcFanio.sbr -.\Release\abcFunc.sbr -.\Release\abcLatch.sbr -.\Release\abcMinBase.sbr -.\Release\abcNames.sbr -.\Release\abcNetlist.sbr -.\Release\abcNtk.sbr -.\Release\abcObj.sbr -.\Release\abcRefs.sbr -.\Release\abcShow.sbr -.\Release\abcSop.sbr -.\Release\abcUtil.sbr -.\Release\abc.sbr -.\Release\abcAttach.sbr -.\Release\abcBalance.sbr -.\Release\abcCollapse.sbr -.\Release\abcCut.sbr -.\Release\abcDsd.sbr -.\Release\abcFpga.sbr -.\Release\abcFraig.sbr -.\Release\abcFxu.sbr -.\Release\abcMap.sbr -.\Release\abcMiter.sbr -.\Release\abcNtbdd.sbr -.\Release\abcPga.sbr -.\Release\abcPrint.sbr -.\Release\abcReconv.sbr -.\Release\abcRefactor.sbr -.\Release\abcRenode.sbr -.\Release\abcRewrite.sbr -.\Release\abcSat.sbr -.\Release\abcStrash.sbr -.\Release\abcSweep.sbr -.\Release\abcSymm.sbr -.\Release\abcTiming.sbr -.\Release\abcUnreach.sbr -.\Release\abcVanEijk.sbr -.\Release\abcVanImp.sbr -.\Release\abcVerify.sbr -.\Release\abcFpgaDelay.sbr -.\Release\abcFpgaSeq.sbr -.\Release\abcRetCore.sbr -.\Release\abcRetDelay.sbr -.\Release\abcRetImpl.sbr -.\Release\abcRetUtil.sbr -.\Release\abcSeq.sbr -.\Release\abcShare.sbr -.\Release\abcUtils.sbr -.\Release\cmd.sbr -.\Release\cmdAlias.sbr -.\Release\cmdApi.sbr -.\Release\cmdFlag.sbr -.\Release\cmdHist.sbr -.\Release\cmdUtils.sbr -.\Release\io.sbr -.\Release\ioRead.sbr -.\Release\ioReadBench.sbr -.\Release\ioReadBlif.sbr -.\Release\ioReadEdif.sbr -.\Release\ioReadEqn.sbr -.\Release\ioReadPla.sbr -.\Release\ioReadVerilog.sbr -.\Release\ioUtil.sbr -.\Release\ioWriteBench.sbr -.\Release\ioWriteBlif.sbr -.\Release\ioWriteCnf.sbr -.\Release\ioWriteDot.sbr -.\Release\ioWriteEqn.sbr -.\Release\ioWriteGml.sbr -.\Release\ioWritePla.sbr -.\Release\libSupport.sbr -.\Release\main.sbr -.\Release\mainFrame.sbr -.\Release\mainInit.sbr -.\Release\mainUtils.sbr -.\Release\cuddAddAbs.sbr -.\Release\cuddAddApply.sbr -.\Release\cuddAddFind.sbr -.\Release\cuddAddInv.sbr -.\Release\cuddAddIte.sbr -.\Release\cuddAddNeg.sbr -.\Release\cuddAddWalsh.sbr -.\Release\cuddAndAbs.sbr -.\Release\cuddAnneal.sbr -.\Release\cuddApa.sbr -.\Release\cuddAPI.sbr -.\Release\cuddApprox.sbr -.\Release\cuddBddAbs.sbr -.\Release\cuddBddCorr.sbr -.\Release\cuddBddIte.sbr -.\Release\cuddBridge.sbr -.\Release\cuddCache.sbr -.\Release\cuddCheck.sbr -.\Release\cuddClip.sbr -.\Release\cuddCof.sbr -.\Release\cuddCompose.sbr -.\Release\cuddDecomp.sbr -.\Release\cuddEssent.sbr -.\Release\cuddExact.sbr -.\Release\cuddExport.sbr -.\Release\cuddGenCof.sbr -.\Release\cuddGenetic.sbr -.\Release\cuddGroup.sbr -.\Release\cuddHarwell.sbr -.\Release\cuddInit.sbr -.\Release\cuddInteract.sbr -.\Release\cuddLCache.sbr -.\Release\cuddLevelQ.sbr -.\Release\cuddLinear.sbr -.\Release\cuddLiteral.sbr -.\Release\cuddMatMult.sbr -.\Release\cuddPriority.sbr -.\Release\cuddRead.sbr -.\Release\cuddRef.sbr -.\Release\cuddReorder.sbr -.\Release\cuddSat.sbr -.\Release\cuddSign.sbr -.\Release\cuddSolve.sbr -.\Release\cuddSplit.sbr -.\Release\cuddSubsetHB.sbr -.\Release\cuddSubsetSP.sbr -.\Release\cuddSymmetry.sbr -.\Release\cuddTable.sbr -.\Release\cuddUtil.sbr -.\Release\cuddWindow.sbr -.\Release\cuddZddCount.sbr -.\Release\cuddZddFuncs.sbr -.\Release\cuddZddGroup.sbr -.\Release\cuddZddIsop.sbr -.\Release\cuddZddLin.sbr -.\Release\cuddZddMisc.sbr -.\Release\cuddZddPort.sbr -.\Release\cuddZddReord.sbr -.\Release\cuddZddSetop.sbr -.\Release\cuddZddSymm.sbr -.\Release\cuddZddUtil.sbr -.\Release\epd.sbr -.\Release\mtrBasic.sbr -.\Release\mtrGroup.sbr -.\Release\parseCore.sbr -.\Release\parseStack.sbr -.\Release\dsdApi.sbr -.\Release\dsdCheck.sbr -.\Release\dsdLocal.sbr -.\Release\dsdMan.sbr -.\Release\dsdProc.sbr -.\Release\dsdTree.sbr -.\Release\reoApi.sbr -.\Release\reoCore.sbr -.\Release\reoProfile.sbr -.\Release\reoSift.sbr -.\Release\reoSwap.sbr -.\Release\reoTest.sbr -.\Release\reoTransfer.sbr -.\Release\reoUnits.sbr -.\Release\added.sbr -.\Release\solver.sbr -.\Release\msatActivity.sbr -.\Release\msatClause.sbr -.\Release\msatClauseVec.sbr -.\Release\msatMem.sbr -.\Release\msatOrderH.sbr -.\Release\msatQueue.sbr -.\Release\msatRead.sbr -.\Release\msatSolverApi.sbr -.\Release\msatSolverCore.sbr -.\Release\msatSolverIo.sbr -.\Release\msatSolverSearch.sbr -.\Release\msatSort.sbr -.\Release\msatVec.sbr -.\Release\fraigApi.sbr -.\Release\fraigCanon.sbr -.\Release\fraigFanout.sbr -.\Release\fraigFeed.sbr -.\Release\fraigMan.sbr -.\Release\fraigMem.sbr -.\Release\fraigNode.sbr -.\Release\fraigPrime.sbr -.\Release\fraigSat.sbr -.\Release\fraigTable.sbr -.\Release\fraigUtil.sbr -.\Release\fraigVec.sbr -.\Release\csat_apis.sbr -.\Release\fxu.sbr -.\Release\fxuCreate.sbr -.\Release\fxuHeapD.sbr -.\Release\fxuHeapS.sbr -.\Release\fxuList.sbr -.\Release\fxuMatrix.sbr -.\Release\fxuPair.sbr -.\Release\fxuPrint.sbr -.\Release\fxuReduce.sbr -.\Release\fxuSelect.sbr -.\Release\fxuSingle.sbr -.\Release\fxuUpdate.sbr -.\Release\rwrDec.sbr -.\Release\rwrEva.sbr -.\Release\rwrExp.sbr -.\Release\rwrLib.sbr -.\Release\rwrMan.sbr -.\Release\rwrPrint.sbr -.\Release\rwrUtil.sbr -.\Release\cutApi.sbr -.\Release\cutCut.sbr -.\Release\cutMan.sbr -.\Release\cutMerge.sbr -.\Release\cutNode.sbr -.\Release\cutOracle.sbr -.\Release\cutSeq.sbr -.\Release\cutTruth.sbr -.\Release\decAbc.sbr -.\Release\decFactor.sbr -.\Release\decMan.sbr -.\Release\decPrint.sbr -.\Release\decUtil.sbr -.\Release\simMan.sbr -.\Release\simSat.sbr -.\Release\simSeq.sbr -.\Release\simSupp.sbr -.\Release\simSwitch.sbr -.\Release\simSym.sbr -.\Release\simSymSat.sbr -.\Release\simSymSim.sbr -.\Release\simSymStr.sbr -.\Release\simUtils.sbr -.\Release\fpga.sbr -.\Release\fpgaCore.sbr -.\Release\fpgaCreate.sbr -.\Release\fpgaCut.sbr -.\Release\fpgaCutUtils.sbr -.\Release\fpgaFanout.sbr -.\Release\fpgaLib.sbr -.\Release\fpgaMatch.sbr -.\Release\fpgaSwitch.sbr -.\Release\fpgaTime.sbr -.\Release\fpgaTruth.sbr -.\Release\fpgaUtils.sbr -.\Release\fpgaVec.sbr -.\Release\mapper.sbr -.\Release\mapperCanon.sbr -.\Release\mapperCore.sbr -.\Release\mapperCreate.sbr -.\Release\mapperCut.sbr -.\Release\mapperCutUtils.sbr -.\Release\mapperFanout.sbr -.\Release\mapperLib.sbr -.\Release\mapperMatch.sbr -.\Release\mapperRefs.sbr -.\Release\mapperSuper.sbr -.\Release\mapperSwitch.sbr -.\Release\mapperTable.sbr -.\Release\mapperTime.sbr -.\Release\mapperTree.sbr -.\Release\mapperTruth.sbr -.\Release\mapperUtils.sbr -.\Release\mapperVec.sbr -.\Release\mio.sbr -.\Release\mioApi.sbr -.\Release\mioFunc.sbr -.\Release\mioRead.sbr -.\Release\mioUtils.sbr -.\Release\super.sbr -.\Release\superAnd.sbr -.\Release\superGate.sbr -.\Release\superWrite.sbr -.\Release\pgaCore.sbr -.\Release\pgaMan.sbr -.\Release\pgaMatch.sbr -.\Release\pgaUtil.sbr -.\Release\extraBddKmap.sbr -.\Release\extraBddMisc.sbr -.\Release\extraBddSymm.sbr -.\Release\extraUtilBitMatrix.sbr -.\Release\extraUtilCanon.sbr -.\Release\extraUtilFile.sbr -.\Release\extraUtilMemory.sbr -.\Release\extraUtilMisc.sbr -.\Release\extraUtilProgress.sbr -.\Release\extraUtilReader.sbr -.\Release\st.sbr -.\Release\stmm.sbr -.\Release\cpu_stats.sbr -.\Release\cpu_time.sbr -.\Release\datalimit.sbr -.\Release\getopt.sbr -.\Release\pathsearch.sbr -.\Release\safe_mem.sbr -.\Release\strsav.sbr -.\Release\texpand.sbr -.\Release\mvc.sbr -.\Release\mvcApi.sbr -.\Release\mvcCompare.sbr -.\Release\mvcContain.sbr -.\Release\mvcCover.sbr -.\Release\mvcCube.sbr -.\Release\mvcDivide.sbr -.\Release\mvcDivisor.sbr -.\Release\mvcList.sbr -.\Release\mvcLits.sbr -.\Release\mvcMan.sbr -.\Release\mvcOpAlg.sbr -.\Release\mvcOpBool.sbr -.\Release\mvcPrint.sbr -.\Release\mvcSort.sbr -.\Release\mvcUtils.sbr] -Creating command line "bscmake.exe @C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1B77.tmp" +/nologo /o"Debug/abc.bsc" +.\Debug\abcAig.sbr +.\Debug\abcCheck.sbr +.\Debug\abcDfs.sbr +.\Debug\abcFanio.sbr +.\Debug\abcFunc.sbr +.\Debug\abcLatch.sbr +.\Debug\abcMinBase.sbr +.\Debug\abcNames.sbr +.\Debug\abcNetlist.sbr +.\Debug\abcNtk.sbr +.\Debug\abcObj.sbr +.\Debug\abcRefs.sbr +.\Debug\abcShow.sbr +.\Debug\abcSop.sbr +.\Debug\abcUtil.sbr +.\Debug\abc.sbr +.\Debug\abcAttach.sbr +.\Debug\abcBalance.sbr +.\Debug\abcCollapse.sbr +.\Debug\abcCut.sbr +.\Debug\abcDsd.sbr +.\Debug\abcFpga.sbr +.\Debug\abcFraig.sbr +.\Debug\abcFxu.sbr +.\Debug\abcMap.sbr +.\Debug\abcMiter.sbr +.\Debug\abcNtbdd.sbr +.\Debug\abcPga.sbr +.\Debug\abcPrint.sbr +.\Debug\abcReconv.sbr +.\Debug\abcRefactor.sbr +.\Debug\abcRenode.sbr +.\Debug\abcRewrite.sbr +.\Debug\abcSat.sbr +.\Debug\abcStrash.sbr +.\Debug\abcSweep.sbr +.\Debug\abcSymm.sbr +.\Debug\abcTiming.sbr +.\Debug\abcUnreach.sbr +.\Debug\abcVanEijk.sbr +.\Debug\abcVanImp.sbr +.\Debug\abcVerify.sbr +.\Debug\abcFpgaDelay.sbr +.\Debug\abcFpgaSeq.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 +.\Debug\cmdApi.sbr +.\Debug\cmdFlag.sbr +.\Debug\cmdHist.sbr +.\Debug\cmdUtils.sbr +.\Debug\io.sbr +.\Debug\ioRead.sbr +.\Debug\ioReadBaf.sbr +.\Debug\ioReadBench.sbr +.\Debug\ioReadBlif.sbr +.\Debug\ioReadEdif.sbr +.\Debug\ioReadEqn.sbr +.\Debug\ioReadPla.sbr +.\Debug\ioReadVerilog.sbr +.\Debug\ioUtil.sbr +.\Debug\ioWriteBaf.sbr +.\Debug\ioWriteBench.sbr +.\Debug\ioWriteBlif.sbr +.\Debug\ioWriteCnf.sbr +.\Debug\ioWriteDot.sbr +.\Debug\ioWriteEqn.sbr +.\Debug\ioWriteGml.sbr +.\Debug\ioWritePla.sbr +.\Debug\libSupport.sbr +.\Debug\main.sbr +.\Debug\mainFrame.sbr +.\Debug\mainInit.sbr +.\Debug\mainUtils.sbr +.\Debug\cuddAddAbs.sbr +.\Debug\cuddAddApply.sbr +.\Debug\cuddAddFind.sbr +.\Debug\cuddAddInv.sbr +.\Debug\cuddAddIte.sbr +.\Debug\cuddAddNeg.sbr +.\Debug\cuddAddWalsh.sbr +.\Debug\cuddAndAbs.sbr +.\Debug\cuddAnneal.sbr +.\Debug\cuddApa.sbr +.\Debug\cuddAPI.sbr +.\Debug\cuddApprox.sbr +.\Debug\cuddBddAbs.sbr +.\Debug\cuddBddCorr.sbr +.\Debug\cuddBddIte.sbr +.\Debug\cuddBridge.sbr +.\Debug\cuddCache.sbr +.\Debug\cuddCheck.sbr +.\Debug\cuddClip.sbr +.\Debug\cuddCof.sbr +.\Debug\cuddCompose.sbr +.\Debug\cuddDecomp.sbr +.\Debug\cuddEssent.sbr +.\Debug\cuddExact.sbr +.\Debug\cuddExport.sbr +.\Debug\cuddGenCof.sbr +.\Debug\cuddGenetic.sbr +.\Debug\cuddGroup.sbr +.\Debug\cuddHarwell.sbr +.\Debug\cuddInit.sbr +.\Debug\cuddInteract.sbr +.\Debug\cuddLCache.sbr +.\Debug\cuddLevelQ.sbr +.\Debug\cuddLinear.sbr +.\Debug\cuddLiteral.sbr +.\Debug\cuddMatMult.sbr +.\Debug\cuddPriority.sbr +.\Debug\cuddRead.sbr +.\Debug\cuddRef.sbr +.\Debug\cuddReorder.sbr +.\Debug\cuddSat.sbr +.\Debug\cuddSign.sbr +.\Debug\cuddSolve.sbr +.\Debug\cuddSplit.sbr +.\Debug\cuddSubsetHB.sbr +.\Debug\cuddSubsetSP.sbr +.\Debug\cuddSymmetry.sbr +.\Debug\cuddTable.sbr +.\Debug\cuddUtil.sbr +.\Debug\cuddWindow.sbr +.\Debug\cuddZddCount.sbr +.\Debug\cuddZddFuncs.sbr +.\Debug\cuddZddGroup.sbr +.\Debug\cuddZddIsop.sbr +.\Debug\cuddZddLin.sbr +.\Debug\cuddZddMisc.sbr +.\Debug\cuddZddPort.sbr +.\Debug\cuddZddReord.sbr +.\Debug\cuddZddSetop.sbr +.\Debug\cuddZddSymm.sbr +.\Debug\cuddZddUtil.sbr +.\Debug\epd.sbr +.\Debug\mtrBasic.sbr +.\Debug\mtrGroup.sbr +.\Debug\parseCore.sbr +.\Debug\parseStack.sbr +.\Debug\dsdApi.sbr +.\Debug\dsdCheck.sbr +.\Debug\dsdLocal.sbr +.\Debug\dsdMan.sbr +.\Debug\dsdProc.sbr +.\Debug\dsdTree.sbr +.\Debug\reoApi.sbr +.\Debug\reoCore.sbr +.\Debug\reoProfile.sbr +.\Debug\reoSift.sbr +.\Debug\reoSwap.sbr +.\Debug\reoTest.sbr +.\Debug\reoTransfer.sbr +.\Debug\reoUnits.sbr +.\Debug\added.sbr +.\Debug\solver.sbr +.\Debug\msatActivity.sbr +.\Debug\msatClause.sbr +.\Debug\msatClauseVec.sbr +.\Debug\msatMem.sbr +.\Debug\msatOrderH.sbr +.\Debug\msatQueue.sbr +.\Debug\msatRead.sbr +.\Debug\msatSolverApi.sbr +.\Debug\msatSolverCore.sbr +.\Debug\msatSolverIo.sbr +.\Debug\msatSolverSearch.sbr +.\Debug\msatSort.sbr +.\Debug\msatVec.sbr +.\Debug\fraigApi.sbr +.\Debug\fraigCanon.sbr +.\Debug\fraigFanout.sbr +.\Debug\fraigFeed.sbr +.\Debug\fraigMan.sbr +.\Debug\fraigMem.sbr +.\Debug\fraigNode.sbr +.\Debug\fraigPrime.sbr +.\Debug\fraigSat.sbr +.\Debug\fraigTable.sbr +.\Debug\fraigUtil.sbr +.\Debug\fraigVec.sbr +.\Debug\csat_apis.sbr +.\Debug\fxu.sbr +.\Debug\fxuCreate.sbr +.\Debug\fxuHeapD.sbr +.\Debug\fxuHeapS.sbr +.\Debug\fxuList.sbr +.\Debug\fxuMatrix.sbr +.\Debug\fxuPair.sbr +.\Debug\fxuPrint.sbr +.\Debug\fxuReduce.sbr +.\Debug\fxuSelect.sbr +.\Debug\fxuSingle.sbr +.\Debug\fxuUpdate.sbr +.\Debug\rwrDec.sbr +.\Debug\rwrEva.sbr +.\Debug\rwrExp.sbr +.\Debug\rwrLib.sbr +.\Debug\rwrMan.sbr +.\Debug\rwrPrint.sbr +.\Debug\rwrUtil.sbr +.\Debug\cutApi.sbr +.\Debug\cutCut.sbr +.\Debug\cutMan.sbr +.\Debug\cutMerge.sbr +.\Debug\cutNode.sbr +.\Debug\cutOracle.sbr +.\Debug\cutSeq.sbr +.\Debug\cutTruth.sbr +.\Debug\decAbc.sbr +.\Debug\decFactor.sbr +.\Debug\decMan.sbr +.\Debug\decPrint.sbr +.\Debug\decUtil.sbr +.\Debug\simMan.sbr +.\Debug\simSat.sbr +.\Debug\simSeq.sbr +.\Debug\simSupp.sbr +.\Debug\simSwitch.sbr +.\Debug\simSym.sbr +.\Debug\simSymSat.sbr +.\Debug\simSymSim.sbr +.\Debug\simSymStr.sbr +.\Debug\simUtils.sbr +.\Debug\fpga.sbr +.\Debug\fpgaCore.sbr +.\Debug\fpgaCreate.sbr +.\Debug\fpgaCut.sbr +.\Debug\fpgaCutUtils.sbr +.\Debug\fpgaFanout.sbr +.\Debug\fpgaLib.sbr +.\Debug\fpgaMatch.sbr +.\Debug\fpgaSwitch.sbr +.\Debug\fpgaTime.sbr +.\Debug\fpgaTruth.sbr +.\Debug\fpgaUtils.sbr +.\Debug\fpgaVec.sbr +.\Debug\mapper.sbr +.\Debug\mapperCanon.sbr +.\Debug\mapperCore.sbr +.\Debug\mapperCreate.sbr +.\Debug\mapperCut.sbr +.\Debug\mapperCutUtils.sbr +.\Debug\mapperFanout.sbr +.\Debug\mapperLib.sbr +.\Debug\mapperMatch.sbr +.\Debug\mapperRefs.sbr +.\Debug\mapperSuper.sbr +.\Debug\mapperSwitch.sbr +.\Debug\mapperTable.sbr +.\Debug\mapperTime.sbr +.\Debug\mapperTree.sbr +.\Debug\mapperTruth.sbr +.\Debug\mapperUtils.sbr +.\Debug\mapperVec.sbr +.\Debug\mio.sbr +.\Debug\mioApi.sbr +.\Debug\mioFunc.sbr +.\Debug\mioRead.sbr +.\Debug\mioUtils.sbr +.\Debug\super.sbr +.\Debug\superAnd.sbr +.\Debug\superGate.sbr +.\Debug\superWrite.sbr +.\Debug\pgaCore.sbr +.\Debug\pgaMan.sbr +.\Debug\pgaMatch.sbr +.\Debug\pgaUtil.sbr +.\Debug\extraBddKmap.sbr +.\Debug\extraBddMisc.sbr +.\Debug\extraBddSymm.sbr +.\Debug\extraUtilBitMatrix.sbr +.\Debug\extraUtilCanon.sbr +.\Debug\extraUtilFile.sbr +.\Debug\extraUtilMemory.sbr +.\Debug\extraUtilMisc.sbr +.\Debug\extraUtilProgress.sbr +.\Debug\extraUtilReader.sbr +.\Debug\st.sbr +.\Debug\stmm.sbr +.\Debug\cpu_stats.sbr +.\Debug\cpu_time.sbr +.\Debug\datalimit.sbr +.\Debug\getopt.sbr +.\Debug\pathsearch.sbr +.\Debug\safe_mem.sbr +.\Debug\strsav.sbr +.\Debug\texpand.sbr +.\Debug\mvc.sbr +.\Debug\mvcApi.sbr +.\Debug\mvcCompare.sbr +.\Debug\mvcContain.sbr +.\Debug\mvcCover.sbr +.\Debug\mvcCube.sbr +.\Debug\mvcDivide.sbr +.\Debug\mvcDivisor.sbr +.\Debug\mvcList.sbr +.\Debug\mvcLits.sbr +.\Debug\mvcMan.sbr +.\Debug\mvcOpAlg.sbr +.\Debug\mvcOpBool.sbr +.\Debug\mvcPrint.sbr +.\Debug\mvcSort.sbr +.\Debug\mvcUtils.sbr +.\Debug\abcSeqMan.sbr] +Creating command line "bscmake.exe @C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP20D1.tmp" Creating browse info file...

Output Window

diff --git a/src/base/abcs/abcSeqMan.c b/src/base/abcs/abcSeqMan.c new file mode 100644 index 000000000..b5db4befc --- /dev/null +++ b/src/base/abcs/abcSeqMan.c @@ -0,0 +1,218 @@ +/**CFile**************************************************************** + + FileName [abcSeqMan.c] + + SystemName [ABC: Logic synthesis and verification system.] + + PackageName [Network and node package.] + + Synopsis [Manager of sequential AIGs.] + + Author [Alan Mishchenko] + + Affiliation [UC Berkeley] + + Date [Ver. 1.0. Started - June 20, 2005.] + + Revision [$Id: abcSeqMan.c,v 1.00 2005/06/20 00:00:00 alanmi Exp $] + +***********************************************************************/ + +#include "abcs.h" + +//////////////////////////////////////////////////////////////////////// +/// DECLARATIONS /// +//////////////////////////////////////////////////////////////////////// + +typedef struct Abc_SeqLat_t_ Abc_SeqLat_t; +struct Abc_SeqLat_t_ +{ + Abc_SeqLat_t * pNext; // the next Lat in the ring + Abc_SeqLat_t * pPrev; // the prev Lat in the ring +}; + +typedef struct Abc_SeqMan_t_ Abc_SeqMan_t; +struct Abc_SeqMan_t_ +{ + int nSize; // the number of entries in all internal arrays + Vec_Ptr_t * vInits; // the initial states for each edge in the AIG + Extra_MmFixed_t * pMmInits; // memory manager for initial states of the Lates + +}; + +// reading the contents of the lat +static inline Abc_InitType_t Abc_SeqLatInit( Abc_SeqLat_t * pLat ) { return ((unsigned)pLat->pPrev) & 3; } +static inline Abc_SeqLat_t * Abc_SeqLatNext( Abc_SeqLat_t * pLat ) { return pLat->pNext; } +static inline Abc_SeqLat_t * Abc_SeqLatPrev( Abc_SeqLat_t * pLat ) { return (void *)(((unsigned)pLat->pPrev) & (ABC_FULL_MASK << 2)); } + +// setting the contents of the lat +static inline void Abc_SeqLatSetInit( Abc_SeqLat_t * pLat, Abc_InitType_t Init ) { pLat->pPrev = (void *)( (3 & Init) | (((unsigned)pLat->pPrev) & (ABC_FULL_MASK << 2)) ); } +static inline void Abc_SeqLatSetNext( Abc_SeqLat_t * pLat, Abc_SeqLat_t * pNext ) { pLat->pNext = pNext; } +static inline void Abc_SeqLatSetPrev( Abc_SeqLat_t * pLat, Abc_SeqLat_t * pPrev ) { Abc_InitType_t Init = Abc_SeqLatInit(pLat); pLat->pPrev = pPrev; Abc_SeqLatSetInit(pLat, Init); } + +// accessing initial state datastructure +static inline Vec_Ptr_t * Abc_SeqNodeInits( Abc_Obj_t * pObj ) { return ((Abc_SeqMan_t*)pObj->pNtk->pManFunc)->vInits; } +static inline Abc_SeqLat_t * Abc_SeqNodeReadInit( Abc_Obj_t * pObj, int Edge ) { return Vec_PtrEntry( Abc_SeqNodeInits(pObj), (pObj->Id<<1)+Edge ); } +static inline void Abc_SeqNodeSetInit ( Abc_Obj_t * pObj, int Edge, Abc_SeqLat_t * pInit ) { Vec_PtrWriteEntry( Abc_SeqNodeInits(pObj), (pObj->Id<<1)+Edge, pInit ); } +static inline Abc_SeqLat_t * Abc_SeqNodeCreateLat( Abc_Obj_t * pObj ) { return (Abc_SeqLat_t *)Extra_MmFixedEntryFetch( ((Abc_SeqMan_t*)pObj->pNtk->pManFunc)->pMmInits ); } +static inline void Abc_SeqNodeRecycleLat( Abc_Obj_t * pObj, Abc_SeqLat_t * pLat ) { Extra_MmFixedEntryRecycle( ((Abc_SeqMan_t*)pObj->pNtk->pManFunc)->pMmInits, (char *)pLat ); } + +// getting the Lat with the given number +static inline Abc_SeqLat_t * Abc_SeqNodeGetLat( Abc_Obj_t * pObj, int Edge, int iLat ) +{ + int Counter; + Abc_SeqLat_t * pLat = Abc_SeqNodeReadInit(pObj, Edge); + for ( Counter = 0; Counter != iLat; Counter++ ) + pLat = pLat->pNext; + return pLat; +} +// getting the first Lat +static inline Abc_SeqLat_t * Abc_SeqNodeGetLatFirst( Abc_Obj_t * pObj, int Edge ) +{ + return Abc_SeqNodeReadInit(pObj, Edge); +} +// getting the last Lat +static inline Abc_SeqLat_t * Abc_SeqNodeGetLatLast( Abc_Obj_t * pObj, int Edge ) +{ + return Abc_SeqLatPrev( Abc_SeqNodeReadInit(pObj, Edge) ); +} + +// getting the init value of the given Lat on the edge +static inline Abc_InitType_t Abc_SeqNodeGetInitOne( Abc_Obj_t * pObj, int Edge, int iLat ) +{ + return Abc_SeqLatInit( Abc_SeqNodeGetLat(pObj, Edge, iLat) ); +} +// geting the init value of the first Lat on the edge +static inline Abc_InitType_t Abc_SeqNodeGetInitFirst( Abc_Obj_t * pObj, int Edge ) +{ + return Abc_SeqLatInit( Abc_SeqNodeGetLatFirst(pObj, Edge) ); +} +// geting the init value of the last Lat on the edge +static inline Abc_InitType_t Abc_SeqNodeGetInitLast( Abc_Obj_t * pObj, int Edge ) +{ + return Abc_SeqLatInit( Abc_SeqNodeGetLatLast(pObj, Edge) ); +} + + +// setting the init value of the given Lat on the edge +static inline void Abc_SeqNodeSetInitOne( Abc_Obj_t * pObj, int Edge, int iLat, Abc_InitType_t Init ) +{ + Abc_SeqLatSetInit( Abc_SeqNodeGetLat(pObj, Edge, iLat), Init ); +} + + +// insert the first Lat on the edge +static inline void Abc_SeqNodeInsertFirst( Abc_Obj_t * pObj, int Edge, Abc_InitType_t Init ) +{ + Abc_SeqLat_t * pLat, * pRing, * pPrev; + pLat = Abc_SeqNodeCreateLat( pObj ); + pRing = Abc_SeqNodeReadInit( pObj, Edge ); + if ( pRing == NULL ) + { + pLat->pNext = pLat->pPrev = pLat; + Abc_SeqNodeSetInit( pObj, Edge, pLat ); + } + else + { + Abc_SeqLatSetPrev( pRing, pLat ); + Abc_SeqLatSetNext( pLat, pRing ); + pPrev = Abc_SeqLatPrev( pRing ); + Abc_SeqLatSetPrev( pLat, pPrev ); + Abc_SeqLatSetNext( pPrev, pLat ); + Abc_SeqNodeSetInit( pObj, Edge, pLat ); // rotate the ring to make pLat the first + } + Abc_SeqLatSetInit( pLat, Init ); +} + +// insert the last Lat on the edge +static inline void Abc_SeqNodeInsertLast( Abc_Obj_t * pObj, int Edge, Abc_InitType_t Init ) +{ + Abc_SeqLat_t * pLat, * pRing, * pPrev; + pLat = Abc_SeqNodeCreateLat( pObj ); + pRing = Abc_SeqNodeReadInit( pObj, Edge ); + if ( pRing == NULL ) + { + pLat->pNext = pLat->pPrev = pLat; + Abc_SeqNodeSetInit( pObj, Edge, pLat ); + } + else + { + Abc_SeqLatSetPrev( pRing, pLat ); + Abc_SeqLatSetNext( pLat, pRing ); + pPrev = Abc_SeqLatPrev( pRing ); + Abc_SeqLatSetPrev( pLat, pPrev ); + Abc_SeqLatSetNext( pPrev, pLat ); + } + Abc_SeqLatSetInit( pLat, Init ); +} + +// delete the first Lat on the edge +static inline Abc_InitType_t Abc_SeqNodeDeleteFirst( Abc_Obj_t * pObj, int Edge ) +{ + Abc_SeqLat_t * pLat, * pRing, * pPrev, * pNext; + pRing = Abc_SeqNodeReadInit( pObj, Edge ); + pLat = pRing; // consider the first latch + if ( pLat->pNext == pLat ) + Abc_SeqNodeSetInit( pObj, Edge, NULL ); + else + { + pPrev = Abc_SeqLatPrev( pLat ); + pNext = Abc_SeqLatNext( pLat ); + Abc_SeqLatSetPrev( pNext, pPrev ); + Abc_SeqLatSetNext( pPrev, pNext ); + Abc_SeqNodeSetInit( pObj, Edge, pNext ); // rotate the ring + } + Abc_SeqNodeRecycleLat( pObj, pLat ); +} + +// delete the last Lat on the edge +static inline Abc_InitType_t Abc_SeqNodeDeleteLast( Abc_Obj_t * pObj, int Edge ) +{ + Abc_SeqLat_t * pLat, * pRing, * pPrev, * pNext; + pRing = Abc_SeqNodeReadInit( pObj, Edge ); + pLat = Abc_SeqLatPrev( pRing ); // consider the last latch + if ( pLat->pNext == pLat ) + Abc_SeqNodeSetInit( pObj, Edge, NULL ); + else + { + pPrev = Abc_SeqLatPrev( pLat ); + pNext = Abc_SeqLatNext( pLat ); + Abc_SeqLatSetPrev( pNext, pPrev ); + Abc_SeqLatSetNext( pPrev, pNext ); + } + Abc_SeqNodeRecycleLat( pObj, pLat ); +} + +//////////////////////////////////////////////////////////////////////// +/// FUNCTION DEFITIONS /// +//////////////////////////////////////////////////////////////////////// + +/**Function************************************************************* + + Synopsis [] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +Abc_SeqMan_t * Abc_SeqCreate( int nMaxId ) +{ + Abc_SeqMan_t * p; + // start the manager + p = ALLOC( Abc_SeqMan_t, 1 ); + memset( p, 0, sizeof(Abc_SeqMan_t) ); + p->nSize = nMaxId + 1; + // create internal data structures + p->vInits = Vec_PtrStart( 2 * p->nSize ); + p->pMmInits = Extra_MmFixedStart( sizeof(Abc_SeqLat_t) ); + return p; +} + +//////////////////////////////////////////////////////////////////////// +/// END OF FILE /// +//////////////////////////////////////////////////////////////////////// + + diff --git a/src/base/abcs/abcs.h b/src/base/abcs/abcs.h index e250d9299..fd0bc4c99 100644 --- a/src/base/abcs/abcs.h +++ b/src/base/abcs/abcs.h @@ -34,6 +34,7 @@ // the maximum number of latches on the edge #define ABC_MAX_EDGE_LATCH 16 +#define ABC_FULL_MASK 0xFFFFFFFF //////////////////////////////////////////////////////////////////////// /// BASIC TYPES /// diff --git a/src/base/io/io.c b/src/base/io/io.c index bffdfc101..bf71e72df 100644 --- a/src/base/io/io.c +++ b/src/base/io/io.c @@ -26,6 +26,7 @@ //////////////////////////////////////////////////////////////////////// static int IoCommandRead ( Abc_Frame_t * pAbc, int argc, char **argv ); +static int IoCommandReadBaf ( Abc_Frame_t * pAbc, int argc, char **argv ); static int IoCommandReadBlif ( Abc_Frame_t * pAbc, int argc, char **argv ); static int IoCommandReadBench ( Abc_Frame_t * pAbc, int argc, char **argv ); static int IoCommandReadEdif ( Abc_Frame_t * pAbc, int argc, char **argv ); @@ -34,6 +35,7 @@ static int IoCommandReadVerilog ( Abc_Frame_t * pAbc, int argc, char **argv ); static int IoCommandReadPla ( Abc_Frame_t * pAbc, int argc, char **argv ); static int IoCommandReadTruth ( Abc_Frame_t * pAbc, int argc, char **argv ); +static int IoCommandWriteBaf ( Abc_Frame_t * pAbc, int argc, char **argv ); static int IoCommandWriteBlif ( Abc_Frame_t * pAbc, int argc, char **argv ); static int IoCommandWriteBench ( Abc_Frame_t * pAbc, int argc, char **argv ); static int IoCommandWriteCnf ( Abc_Frame_t * pAbc, int argc, char **argv ); @@ -60,6 +62,7 @@ static int IoCommandWritePla ( Abc_Frame_t * pAbc, int argc, char **argv ); void Io_Init( Abc_Frame_t * pAbc ) { Cmd_CommandAdd( pAbc, "I/O", "read", IoCommandRead, 1 ); + Cmd_CommandAdd( pAbc, "I/O", "read_baf", IoCommandReadBaf, 1 ); Cmd_CommandAdd( pAbc, "I/O", "read_blif", IoCommandReadBlif, 1 ); Cmd_CommandAdd( pAbc, "I/O", "read_bench", IoCommandReadBench, 1 ); Cmd_CommandAdd( pAbc, "I/O", "read_edif", IoCommandReadEdif, 1 ); @@ -68,6 +71,7 @@ void Io_Init( Abc_Frame_t * pAbc ) Cmd_CommandAdd( pAbc, "I/O", "read_pla", IoCommandReadPla, 1 ); Cmd_CommandAdd( pAbc, "I/O", "read_truth", IoCommandReadTruth, 1 ); + Cmd_CommandAdd( pAbc, "I/O", "write_baf", IoCommandWriteBaf, 0 ); Cmd_CommandAdd( pAbc, "I/O", "write_blif", IoCommandWriteBlif, 0 ); Cmd_CommandAdd( pAbc, "I/O", "write_bench", IoCommandWriteBench, 0 ); Cmd_CommandAdd( pAbc, "I/O", "write_cnf", IoCommandWriteCnf, 0 ); @@ -164,6 +168,79 @@ usage: return 1; } +/**Function************************************************************* + + Synopsis [] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +int IoCommandReadBaf( Abc_Frame_t * pAbc, int argc, char ** argv ) +{ + Abc_Ntk_t * pNtk; + char * FileName; + FILE * pFile; + int fCheck; + int c; + + fCheck = 1; + util_getopt_reset(); + while ( ( c = util_getopt( argc, argv, "ch" ) ) != EOF ) + { + switch ( c ) + { + case 'c': + fCheck ^= 1; + break; + case 'h': + goto usage; + default: + goto usage; + } + } + + if ( argc != util_optind + 1 ) + { + goto usage; + } + + // get the input file name + FileName = argv[util_optind]; + if ( (pFile = fopen( FileName, "r" )) == NULL ) + { + fprintf( pAbc->Err, "Cannot open input file \"%s\". ", FileName ); + if ( FileName = Extra_FileGetSimilarName( FileName, ".mv", ".blif", ".pla", ".eqn", ".bench" ) ) + fprintf( pAbc->Err, "Did you mean \"%s\"?", FileName ); + fprintf( pAbc->Err, "\n" ); + return 1; + } + fclose( pFile ); + + // set the new network + pNtk = Io_ReadBaf( FileName, fCheck ); + if ( pNtk == NULL ) + { + fprintf( pAbc->Err, "Reading network from BAF file has failed.\n" ); + return 1; + } + + // replace the current network + Abc_FrameReplaceCurrentNetwork( pAbc, pNtk ); + return 0; + +usage: + fprintf( pAbc->Err, "usage: read_baf [-ch] \n" ); + fprintf( pAbc->Err, "\t read the network in Binary Aig Format (BAF)\n" ); + fprintf( pAbc->Err, "\t-c : toggle network check after reading [default = %s]\n", fCheck? "yes":"no" ); + fprintf( pAbc->Err, "\t-h : prints the command summary\n" ); + fprintf( pAbc->Err, "\tfile : the name of a file to read\n" ); + return 1; +} + /**Function************************************************************* Synopsis [] @@ -716,6 +793,65 @@ usage: } +/**Function************************************************************* + + Synopsis [] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +int IoCommandWriteBaf( Abc_Frame_t * pAbc, int argc, char **argv ) +{ + Abc_Ntk_t * pNtk; + char * FileName; + int c; + + util_getopt_reset(); + while ( ( c = util_getopt( argc, argv, "lh" ) ) != EOF ) + { + switch ( c ) + { + case 'h': + goto usage; + default: + goto usage; + } + } + + pNtk = pAbc->pNtkCur; + if ( pNtk == NULL ) + { + fprintf( pAbc->Out, "Empty network.\n" ); + return 0; + } + + if ( argc != util_optind + 1 ) + { + goto usage; + } + FileName = argv[util_optind]; + + // check the network type + if ( !Abc_NtkIsStrash(pNtk) ) + { + fprintf( pAbc->Out, "Currently can only write strashed combinational AIGs.\n" ); + return 0; + } + Io_WriteBaf( pNtk, FileName ); + return 0; + +usage: + fprintf( pAbc->Err, "usage: write_baf [-lh] \n" ); + fprintf( pAbc->Err, "\t write the network into a BLIF file\n" ); + fprintf( pAbc->Err, "\t-h : print the help massage\n" ); + fprintf( pAbc->Err, "\tfile : the name of the file to write\n" ); + return 1; +} + /**Function************************************************************* Synopsis [] diff --git a/src/base/io/io.h b/src/base/io/io.h index a5aae5297..8551a7143 100644 --- a/src/base/io/io.h +++ b/src/base/io/io.h @@ -47,6 +47,8 @@ /*=== abcRead.c ==========================================================*/ extern Abc_Ntk_t * Io_Read( char * pFileName, int fCheck ); +/*=== abcReadBaf.c ==========================================================*/ +extern Abc_Ntk_t * Io_ReadBaf( char * pFileName, int fCheck ); /*=== abcReadBlif.c ==========================================================*/ extern Abc_Ntk_t * Io_ReadBlif( char * pFileName, int fCheck ); /*=== abcReadBench.c ==========================================================*/ @@ -67,6 +69,8 @@ extern Abc_Obj_t * Io_ReadCreateNode( Abc_Ntk_t * pNtk, char * pNameOut, extern Abc_Obj_t * Io_ReadCreateConst( Abc_Ntk_t * pNtk, char * pName, bool fConst1 ); extern Abc_Obj_t * Io_ReadCreateInv( Abc_Ntk_t * pNtk, char * pNameIn, char * pNameOut ); extern Abc_Obj_t * Io_ReadCreateBuf( Abc_Ntk_t * pNtk, char * pNameIn, char * pNameOut ); +/*=== abcWriteBaf.c ==========================================================*/ +extern void Io_WriteBaf( Abc_Ntk_t * pNtk, char * pFileName ); /*=== abcWriteBlif.c ==========================================================*/ extern void Io_WriteBlif( Abc_Ntk_t * pNtk, char * pFileName, int fWriteLatches ); extern void Io_WriteBlifLogic( Abc_Ntk_t * pNtk, char * pFileName, int fWriteLatches ); diff --git a/src/base/io/ioRead.c b/src/base/io/ioRead.c index acf4deda6..28500a3d4 100644 --- a/src/base/io/ioRead.c +++ b/src/base/io/ioRead.c @@ -55,6 +55,8 @@ Abc_Ntk_t * Io_Read( char * pFileName, int fCheck ) pNtk = Io_ReadPla( pFileName, fCheck ); else if ( Extra_FileNameCheckExtension( pFileName, "eqn" ) ) pNtk = Io_ReadEqn( pFileName, fCheck ); + else if ( Extra_FileNameCheckExtension( pFileName, "baf" ) ) + return Io_ReadBaf( pFileName, fCheck ); else { fprintf( stderr, "Unknown file format\n" ); diff --git a/src/base/io/ioReadBaf.c b/src/base/io/ioReadBaf.c new file mode 100644 index 000000000..7783373fa --- /dev/null +++ b/src/base/io/ioReadBaf.c @@ -0,0 +1,164 @@ +/**CFile**************************************************************** + + FileName [ioReadBaf.c] + + SystemName [ABC: Logic synthesis and verification system.] + + PackageName [Command processing package.] + + Synopsis [Procedures to read AIG in the binary format.] + + Author [Alan Mishchenko] + + Affiliation [UC Berkeley] + + Date [Ver. 1.0. Started - June 20, 2005.] + + Revision [$Id: ioReadBaf.c,v 1.00 2005/06/20 00:00:00 alanmi Exp $] + +***********************************************************************/ + +#include "io.h" + +//////////////////////////////////////////////////////////////////////// +/// DECLARATIONS /// +//////////////////////////////////////////////////////////////////////// + +//////////////////////////////////////////////////////////////////////// +/// FUNCTION DEFITIONS /// +//////////////////////////////////////////////////////////////////////// + +/**Function************************************************************* + + Synopsis [Writes the AIG in the binary format.] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +Abc_Ntk_t * Io_ReadBaf( char * pFileName, int fCheck ) +{ + ProgressBar * pProgress; + FILE * pFile; + Vec_Ptr_t * vNodes; + Abc_Obj_t * pObj, * pNode0, * pNode1; + Abc_Ntk_t * pNtkNew; + int nInputs, nOutputs, nLatches, nAnds, nFileSize, Num, i; + char * pContents, * pName, * pCur; + unsigned * pBufferNode; + + // read the file into the buffer + nFileSize = Extra_FileSize( pFileName ); + pFile = fopen( pFileName, "rb" ); + pContents = ALLOC( char, nFileSize ); + fread( pContents, nFileSize, 1, pFile ); + fclose( pFile ); + + // skip the comments (comment lines begin with '#' and end with '\n') + for ( pCur = pContents; *pCur == '#'; ) + while ( *pCur++ != '\n' ); + + // read the name + pName = pCur; while ( *pCur++ ); + // read the number of inputs + nInputs = atoi( pCur ); while ( *pCur++ ); + // read the number of outputs + nOutputs = atoi( pCur ); while ( *pCur++ ); + // read the number of latches + nLatches = atoi( pCur ); while ( *pCur++ ); + // read the number of nodes + nAnds = atoi( pCur ); while ( *pCur++ ); + + // allocate the empty AIG + pNtkNew = Abc_NtkAlloc( ABC_NTK_STRASH, ABC_FUNC_AIG ); + pNtkNew->pName = util_strsav( pName ); + pNtkNew->pSpec = util_strsav( pFileName ); + + // prepare the array of nodes + vNodes = Vec_PtrAlloc( 1 + nInputs + nLatches + nAnds ); + Vec_PtrPush( vNodes, Abc_AigConst1(pNtkNew->pManFunc) ); + + // create the PIs + for ( i = 0; i < nInputs; i++ ) + { + pObj = Abc_NtkCreatePi(pNtkNew); + Abc_NtkLogicStoreName( pObj, pCur ); while ( *pCur++ ); + Vec_PtrPush( vNodes, pObj ); + } + // create the POs + for ( i = 0; i < nOutputs; i++ ) + { + pObj = Abc_NtkCreatePo(pNtkNew); + Abc_NtkLogicStoreName( pObj, pCur ); while ( *pCur++ ); + } + // create the latches + for ( i = 0; i < nLatches; i++ ) + { + pObj = Abc_NtkCreateLatch(pNtkNew); + Abc_NtkLogicStoreName( pObj, pCur ); while ( *pCur++ ); + Vec_PtrPush( vNodes, pObj ); + Vec_PtrPush( pNtkNew->vCis, pObj ); + Vec_PtrPush( pNtkNew->vCos, pObj ); + } + + // get the pointer to the beginning of the node array + pBufferNode = (int *)(pContents + (nFileSize - (2 * nAnds + nOutputs + nLatches) * sizeof(int)) ); + // make sure we are at the place where the nodes begin + if ( pBufferNode != (int *)pCur ) + { + free( pContents ); + Vec_PtrFree( vNodes ); + Abc_NtkDelete( pNtkNew ); + printf( "Warning: Internal reader error.\n" ); + return NULL; + } + + // create the AND gates + pProgress = Extra_ProgressBarStart( stdout, nAnds ); + for ( i = 0; i < nAnds; i++ ) + { + Extra_ProgressBarUpdate( pProgress, i, NULL ); + pNode0 = Abc_ObjNotCond( Vec_PtrEntry(vNodes, pBufferNode[2*i+0] >> 1), pBufferNode[2*i+0] & 1 ); + pNode1 = Abc_ObjNotCond( Vec_PtrEntry(vNodes, pBufferNode[2*i+1] >> 1), pBufferNode[2*i+1] & 1 ); + Vec_PtrPush( vNodes, Abc_AigAnd(pNtkNew->pManFunc, pNode0, pNode1) ); + } + Extra_ProgressBarStop( pProgress ); + + // read the POs + Abc_NtkForEachCo( pNtkNew, pObj, i ) + { + Num = pBufferNode[2*nAnds+i]; + if ( Abc_ObjIsLatch(pObj) ) + { + Abc_ObjSetData( pObj, (void *)(Num & 3) ); + Num >>= 2; + } + pNode0 = Abc_ObjNotCond( Vec_PtrEntry(vNodes, Num >> 1), Num & 1 ); + Abc_ObjAddFanin( pObj, pNode0 ); + } + free( pContents ); + Vec_PtrFree( vNodes ); + + // remove the extra nodes + Abc_AigCleanup( pNtkNew->pManFunc ); + + // check the result + if ( fCheck && !Abc_NtkCheckRead( pNtkNew ) ) + { + printf( "Io_ReadBaf: The network check has failed.\n" ); + Abc_NtkDelete( pNtkNew ); + return NULL; + } + return pNtkNew; + +} + + +//////////////////////////////////////////////////////////////////////// +/// END OF FILE /// +//////////////////////////////////////////////////////////////////////// + + diff --git a/src/base/io/ioWriteBaf.c b/src/base/io/ioWriteBaf.c new file mode 100644 index 000000000..3ecd8e736 --- /dev/null +++ b/src/base/io/ioWriteBaf.c @@ -0,0 +1,163 @@ +/**CFile**************************************************************** + + FileName [ioWriteBaf.c] + + SystemName [ABC: Logic synthesis and verification system.] + + PackageName [Command processing package.] + + Synopsis [Procedures to write AIG in the binary format.] + + Author [Alan Mishchenko] + + Affiliation [UC Berkeley] + + Date [Ver. 1.0. Started - June 20, 2005.] + + Revision [$Id: ioWriteBaf.c,v 1.00 2005/06/20 00:00:00 alanmi Exp $] + +***********************************************************************/ + +#include "io.h" + +//////////////////////////////////////////////////////////////////////// +/// DECLARATIONS /// +//////////////////////////////////////////////////////////////////////// + +/* + Binary Aig Format + + The motivation for this format is to have + - compact binary representation of large AIGs (~10x more compact than BLIF) + - consequently, fast reading/writing of large AIGs (~10x faster than BLIF) + - representation for all tech-ind info related to an AIG + - human-readable file header + + The header: + (1) May contain several lines of human-readable comments. + Each comment line begins with symbol '#' and ends with symbol '\n'. + (2) Always contains the following data. + - benchmark name + - number of primary inputs + - number of primary outputs + - number of latches + - number of AIG nodes (excluding the constant 1 node) + Each entry is followed by 0-byte (character '\0'): + (3) Next follow the names of the PIs, POs, and latches in this order. + Each name is followed by 0-byte (character '\0'). + Inside each set of names (PIs, POs, latches) there should be no + identical names but the PO names may coincide with PI/latch names. + + The body: + (1) First part of the body contains binary information about the internal AIG nodes. + Each internal AIG node is represented using two 4-byte integers. + Each integer is the fanin ID followed by 1-bit representation of the complemented attribute. + (For example, complemented edge to node 10 will be represented as 2*10 + 1 = 21.) + The IDs of the nodes are created as follows: Constant 1 node has ID=0. + CIs (PIs and latch outputs) have 1-based IDs assigned in that order. + Each node in the array of the internal AIG nodes has the ID assigned in that order. + The constant 1 node is not written into the file. + (2) Second part of the body contains binary information about the edges connecting + the COs (POs and latch inputs) with the internal AIG nodes. + Each edge is represented by one 4-byte integer the same way as a node fanin. +*/ + +//////////////////////////////////////////////////////////////////////// +/// FUNCTION DEFITIONS /// +//////////////////////////////////////////////////////////////////////// + +/**Function************************************************************* + + Synopsis [Writes the AIG in the binary format.] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +void Io_WriteBaf( Abc_Ntk_t * pNtk, char * pFileName ) +{ + ProgressBar * pProgress; + FILE * pFile; + Abc_Obj_t * pObj; + int i, nNodes, nAnds, nBufferSize; + unsigned * pBufferNode; + assert( Abc_NtkIsStrash(pNtk) ); + // start the output stream + pFile = fopen( pFileName, "wb" ); + if ( pFile == NULL ) + { + fprintf( stdout, "Io_WriteBaf(): Cannot open the output file \"%s\".\n", pFileName ); + return; + } + + // write the comment + fprintf( pFile, "# BAF (Binary Aig Format) for \"%s\" written by ABC on %s\n", pNtk->pName, Extra_TimeStamp() ); + + // write the network name + fprintf( pFile, "%s%c", pNtk->pName, 0 ); + // write the number of PIs + fprintf( pFile, "%d%c", Abc_NtkPiNum(pNtk), 0 ); + // write the number of POs + fprintf( pFile, "%d%c", Abc_NtkPoNum(pNtk), 0 ); + // write the number of latches + fprintf( pFile, "%d%c", Abc_NtkLatchNum(pNtk), 0 ); + // write the number of internal nodes + fprintf( pFile, "%d%c", Abc_NtkNodeNum(pNtk), 0 ); + + // write PIs + Abc_NtkForEachPi( pNtk, pObj, i ) + fprintf( pFile, "%s%c", Abc_ObjName(pObj), 0 ); + // write POs + Abc_NtkForEachPo( pNtk, pObj, i ) + fprintf( pFile, "%s%c", Abc_ObjName(pObj), 0 ); + // write latches + Abc_NtkForEachLatch( pNtk, pObj, i ) + fprintf( pFile, "%s%c", Abc_ObjName(pObj), 0 ); + + // set the node numbers to be used in the output file + Abc_NtkCleanCopy( pNtk ); + nNodes = 1; + Abc_NtkForEachCi( pNtk, pObj, i ) + pObj->pCopy = (void *)nNodes++; + Abc_AigForEachAnd( pNtk, pObj, i ) + pObj->pCopy = (void *)nNodes++; + + // write the nodes into the buffer + nAnds = 0; + nBufferSize = Abc_NtkNodeNum(pNtk) * 2 + Abc_NtkCoNum(pNtk); + pBufferNode = ALLOC( int, nBufferSize ); + pProgress = Extra_ProgressBarStart( stdout, nBufferSize ); + Abc_AigForEachAnd( pNtk, pObj, i ) + { + Extra_ProgressBarUpdate( pProgress, nAnds, NULL ); + pBufferNode[nAnds++] = (((int)Abc_ObjFanin0(pObj)->pCopy) << 1) | Abc_ObjFaninC0(pObj); + pBufferNode[nAnds++] = (((int)Abc_ObjFanin1(pObj)->pCopy) << 1) | Abc_ObjFaninC1(pObj); + } + + // write the COs into the buffer + Abc_NtkForEachCo( pNtk, pObj, i ) + { + Extra_ProgressBarUpdate( pProgress, nAnds, NULL ); + pBufferNode[nAnds] = (((int)Abc_ObjFanin0(pObj)->pCopy) << 1) | Abc_ObjFaninC0(pObj); + if ( Abc_ObjIsLatch(pObj) ) + pBufferNode[nAnds] = (pBufferNode[nAnds] << 2) | ((unsigned)Abc_ObjData(pObj) & 3); + nAnds++; + } + Extra_ProgressBarStop( pProgress ); + assert( nBufferSize == nAnds ); + + // write the buffer + fwrite( pBufferNode, 1, sizeof(int) * nBufferSize, pFile ); + fclose( pFile ); + free( pBufferNode ); +} + + +//////////////////////////////////////////////////////////////////////// +/// END OF FILE /// +//////////////////////////////////////////////////////////////////////// + + diff --git a/src/base/io/module.make b/src/base/io/module.make index 345824737..9938af12c 100644 --- a/src/base/io/module.make +++ b/src/base/io/module.make @@ -1,5 +1,6 @@ SRC += src/base/io/io.c \ src/base/io/ioRead.c \ + src/base/io/ioReadBaf.c \ src/base/io/ioReadBench.c \ src/base/io/ioReadBlif.c \ src/base/io/ioReadEdif.c \ @@ -7,6 +8,7 @@ SRC += src/base/io/io.c \ src/base/io/ioReadPla.c \ src/base/io/ioReadVerilog.c \ src/base/io/ioUtil.c \ + src/base/io/ioWriteBaf.c \ src/base/io/ioWriteBench.c \ src/base/io/ioWriteBlif.c \ src/base/io/ioWriteCnf.c \ diff --git a/src/misc/extra/extraUtilProgress.c b/src/misc/extra/extraUtilProgress.c index 7b0efb5c8..b8d7c8a84 100644 --- a/src/misc/extra/extraUtilProgress.c +++ b/src/misc/extra/extraUtilProgress.c @@ -86,8 +86,8 @@ void Extra_ProgressBarUpdate_int( ProgressBar * p, int nItemsCur, char * pString return; if ( nItemsCur > p->nItemsTotal ) nItemsCur = p->nItemsTotal; - p->posCur = (int)((float)nItemsCur * p->posTotal / p->nItemsTotal); - p->nItemsNext = (int)((float)p->nItemsTotal/p->posTotal)*(p->posCur+10)+1; + p->posCur = (int)((double)nItemsCur * p->posTotal / p->nItemsTotal); + p->nItemsNext = (int)((double)p->nItemsTotal/p->posTotal)*(p->posCur+10)+1; if ( p->posCur == 0 ) p->posCur = 1; Extra_ProgressBarShow( p, pString ); diff --git a/src/opt/sim/simSym.c b/src/opt/sim/simSym.c index 93e0426e4..0635526ec 100644 --- a/src/opt/sim/simSym.c +++ b/src/opt/sim/simSym.c @@ -125,6 +125,7 @@ p->timeStruct = clock() - clk; if ( fVerbose ) printf( "Total = %8d. Sym = %8d. NonSym = %8d. Remaining = %8d.\n", p->nPairsTotal, p->nPairsSymm, p->nPairsNonSymm, p->nPairsRem ); +// Sim_UtilCountPairsAllPrint( p ); Result = p->nPairsSymm; vResult = p->vMatrSymms; diff --git a/src/opt/sim/simSymStr.c b/src/opt/sim/simSymStr.c index ed7e93bf2..c909d986e 100644 --- a/src/opt/sim/simSymStr.c +++ b/src/opt/sim/simSymStr.c @@ -81,6 +81,7 @@ void Sim_SymmsStructCompute( Abc_Ntk_t * pNtk, Vec_Ptr_t * vMatrs, Vec_Ptr_t * v // collect the results for the COs; Abc_NtkForEachCo( pNtk, pTemp, i ) { +//printf( "Output %d:\n", i ); pTemp = Abc_ObjFanin0(pTemp); if ( Abc_ObjIsCi(pTemp) || Abc_NodeIsConst(pTemp) ) continue; @@ -444,6 +445,7 @@ void Sim_SymmsTransferToMatrix( Extra_BitMat_t * pMatSymm, Vec_Int_t * vSymms, u uSymm = (unsigned)vSymms->pArray[i]; Ind1 = (uSymm & 0xffff); Ind2 = (uSymm >> 16); +//printf( "%d,%d ", Ind1, Ind2 ); // skip variables that are not in the true support assert( Sim_HasBit(pSupport, Ind1) == Sim_HasBit(pSupport, Ind2) ); if ( !Sim_HasBit(pSupport, Ind1) || !Sim_HasBit(pSupport, Ind2) ) diff --git a/src/opt/sim/simUtils.c b/src/opt/sim/simUtils.c index 6a3a911b4..31baaec82 100644 --- a/src/opt/sim/simUtils.c +++ b/src/opt/sim/simUtils.c @@ -601,6 +601,51 @@ int Sim_UtilCountPairsOne( Extra_BitMat_t * pMat, Vec_Int_t * vSupport ) return Counter; } +/**Function************************************************************* + + Synopsis [Counts the number of entries in the array of matrices.] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +int Sim_UtilCountPairsOnePrint( Extra_BitMat_t * pMat, Vec_Int_t * vSupport ) +{ + int i, k, Index1, Index2; + Vec_IntForEachEntry( vSupport, i, Index1 ) + Vec_IntForEachEntryStart( vSupport, k, Index2, Index1+1 ) + if ( Extra_BitMatrixLookup1( pMat, i, k ) ) + printf( "(%d,%d) ", i, k ); + return 0; +} + +/**Function************************************************************* + + Synopsis [Counts the number of entries in the array of matrices.] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +void Sim_UtilCountPairsAllPrint( Sym_Man_t * p ) +{ + int i, clk; +clk = clock(); + for ( i = 0; i < p->nOutputs; i++ ) + { + printf( "Output %2d :", i ); + Sim_UtilCountPairsOnePrint( Vec_PtrEntry(p->vMatrSymms, i), Vec_VecEntry(p->vSupports, i) ); + printf( "\n" ); + } +p->timeCount += clock() - clk; +} + /**Function************************************************************* Synopsis [Counts the number of entries in the array of matrices.]