Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
abc
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
abc
Commits
0f6eeaea
Commit
0f6eeaea
authored
Sep 13, 2005
by
Alan Mishchenko
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Version abc50913
parent
c065b2c5
Hide whitespace changes
Inline
Side-by-side
Showing
29 changed files
with
96 additions
and
83 deletions
+96
-83
Makefile
+5
-1
abc.opt
+0
-0
abc.plg
+25
-25
src/base/abc/abc.h
+15
-15
src/base/abc/abcAig.c
+3
-2
src/base/abc/abcFunc.c
+6
-6
src/base/abc/abcNetlist.c
+6
-6
src/base/abc/abcNtk.c
+2
-2
src/base/abci/abcBalance.c
+1
-1
src/base/abci/abcCollapse.c
+1
-1
src/base/abci/abcDsd.c
+1
-1
src/base/abci/abcFpga.c
+1
-1
src/base/abci/abcFraig.c
+2
-2
src/base/abci/abcMap.c
+1
-1
src/base/abci/abcMiter.c
+3
-3
src/base/abci/abcNtbdd.c
+2
-2
src/base/abci/abcPga.c
+1
-1
src/base/abci/abcRenode.c
+1
-1
src/base/abci/abcStrash.c
+1
-1
src/base/abci/abcUnreach.c
+1
-1
src/base/abcs/abcRetImpl.c
+1
-1
src/base/abcs/abcSeq.c
+2
-2
src/base/abcs/abcs.h
+1
-1
src/base/abcs/module.make
+7
-2
src/base/io/ioReadBench.c
+2
-0
src/base/io/ioReadBlif.c
+2
-2
src/base/io/ioReadPla.c
+1
-0
src/base/io/ioReadVerilog.c
+1
-1
src/sat/csat/csat_apis.c
+1
-1
No files found.
Makefile
View file @
0f6eeaea
...
@@ -8,7 +8,7 @@ PROG := abc
...
@@ -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
\
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/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/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/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
src/sat/asat src/sat/csat src/sat/msat src/sat/fraig
...
@@ -59,6 +59,10 @@ tags:
...
@@ -59,6 +59,10 @@ tags:
$(PROG)
:
$(OBJ)
$(PROG)
:
$(OBJ)
$(LD)
-o
$@
$^
$(LIBS)
$(LD)
-o
$@
$^
$(LIBS)
lib$(PROG).a
:
$(OBJ)
ar rv
$@
$?
ranlib
$@
docs
:
docs
:
doxygen doxygen.conf
doxygen doxygen.conf
abc.opt
View file @
0f6eeaea
No preview for this file type
abc.plg
View file @
0f6eeaea
...
@@ -6,23 +6,23 @@
...
@@ -6,23 +6,23 @@
--------------------Configuration: abc - Win32 Debug--------------------
--------------------Configuration: abc - Win32 Debug--------------------
</h3>
</h3>
<h3>
Command Lines
</h3>
<h3>
Command Lines
</h3>
Creating temporary file "C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1
CE4
.tmp" with contents
Creating temporary file "C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1
DD5
.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
/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\abcNetlist.c"
"C:\_projects\abc\src\base\abc\abcUtil.c"
"C:\_projects\abc\src\base\abc\abcUtil.c"
"C:\_projects\abc\src\base\abci\abc.c"
"C:\_projects\abc\src\base\abci\abc.c"
"C:\_projects\abc\src\base\abci\abcPrint.c"
"C:\_projects\abc\src\base\abci\abcPrint.c"
"C:\_projects\abc\src\base\abcs\abcSeq.c"
"C:\_projects\abc\src\base\abcs\abcRetCore.c"
"C:\_projects\abc\src\base\abcs\abcUtils.c"
"C:\_projects\abc\src\base\abcs\abcShare.c"
"C:\_projects\abc\src\base\abcs\abcRetDelay.c"
"C:\_projects\abc\src\base\abcs\abcRetDelay.c"
"C:\_projects\abc\src\base\abcs\abcRetImpl.c"
"C:\_projects\abc\src\base\abcs\abcRetImpl.c"
"C:\_projects\abc\src\base\abcs\abcRetUtil.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\RSP1
CE4
.tmp"
Creating command line "cl.exe @C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1
DD5
.tmp"
Creating temporary file "C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1
CE5
.tmp" with contents
Creating temporary file "C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1
DD6
.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
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\abcAig.obj
...
@@ -65,7 +65,12 @@ kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32
...
@@ -65,7 +65,12 @@ kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32
.\Debug\abcTiming.obj
.\Debug\abcTiming.obj
.\Debug\abcUnreach.obj
.\Debug\abcUnreach.obj
.\Debug\abcVerify.obj
.\Debug\abcVerify.obj
.\Debug\abcRetCore.obj
.\Debug\abcRetDelay.obj
.\Debug\abcRetImpl.obj
.\Debug\abcRetUtil.obj
.\Debug\abcSeq.obj
.\Debug\abcSeq.obj
.\Debug\abcShare.obj
.\Debug\abcUtils.obj
.\Debug\abcUtils.obj
.\Debug\cmd.obj
.\Debug\cmd.obj
.\Debug\cmdAlias.obj
.\Debug\cmdAlias.obj
...
@@ -320,28 +325,23 @@ kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32
...
@@ -320,28 +325,23 @@ kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32
.\Debug\mvcPrint.obj
.\Debug\mvcPrint.obj
.\Debug\mvcSort.obj
.\Debug\mvcSort.obj
.\Debug\mvcUtils.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\RSP1
CE5
.tmp"
Creating command line "link.exe @C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1
DD6
.tmp"
<h3>
Output Window
</h3>
<h3>
Output Window
</h3>
Compiling...
Compiling...
abcNetlist.c
abcNetlist.c
abcUtil.c
abcUtil.c
abc.c
abc.c
abcPrint.c
abcPrint.c
abcSeq.c
abcRetCore.c
abcUtils.c
abcShare.c
abcRetDelay.c
abcRetDelay.c
abcRetImpl.c
abcRetImpl.c
abcRetUtil.c
abcRetUtil.c
abcRetCore.c
abcSeq.c
abcShare.c
abcUtils.c
Linking...
Linking...
Creating temporary file "C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1
CE6
.tmp" with contents
Creating temporary file "C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1
DD8
.tmp" with contents
[
[
/nologo /o"Debug/abc.bsc"
/nologo /o"Debug/abc.bsc"
.\Debug\abcAig.sbr
.\Debug\abcAig.sbr
...
@@ -384,7 +384,12 @@ Creating temporary file "C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1CE6.tmp" with cont
...
@@ -384,7 +384,12 @@ Creating temporary file "C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1CE6.tmp" with cont
.\Debug\abcTiming.sbr
.\Debug\abcTiming.sbr
.\Debug\abcUnreach.sbr
.\Debug\abcUnreach.sbr
.\Debug\abcVerify.sbr
.\Debug\abcVerify.sbr
.\Debug\abcRetCore.sbr
.\Debug\abcRetDelay.sbr
.\Debug\abcRetImpl.sbr
.\Debug\abcRetUtil.sbr
.\Debug\abcSeq.sbr
.\Debug\abcSeq.sbr
.\Debug\abcShare.sbr
.\Debug\abcUtils.sbr
.\Debug\abcUtils.sbr
.\Debug\cmd.sbr
.\Debug\cmd.sbr
.\Debug\cmdAlias.sbr
.\Debug\cmdAlias.sbr
...
@@ -638,13 +643,8 @@ Creating temporary file "C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1CE6.tmp" with cont
...
@@ -638,13 +643,8 @@ Creating temporary file "C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1CE6.tmp" with cont
.\Debug\mvcOpBool.sbr
.\Debug\mvcOpBool.sbr
.\Debug\mvcPrint.sbr
.\Debug\mvcPrint.sbr
.\Debug\mvcSort.sbr
.\Debug\mvcSort.sbr
.\Debug\mvcUtils.sbr
.\Debug\mvcUtils.sbr]
.\Debug\abcShare.sbr
Creating command line "bscmake.exe @C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1DD8.tmp"
.\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"
Creating browse info file...
Creating browse info file...
<h3>
Output Window
</h3>
<h3>
Output Window
</h3>
...
...
src/base/abc/abc.h
View file @
0f6eeaea
...
@@ -43,12 +43,12 @@
...
@@ -43,12 +43,12 @@
// network types
// network types
typedef
enum
{
typedef
enum
{
ABC_
TYPE_NONE
=
0
,
// 0: unknown
ABC_
NTK_NONE
=
0
,
// 0: unknown
ABC_
TYPE_NETLIST
,
// 1: network with PIs/POs, latches, nodes, and nets
ABC_
NTK_NETLIST
,
// 1: network with PIs/POs, latches, nodes, and nets
ABC_
TYPE_LOGIC
,
// 2: network with PIs/POs, latches, and nodes
ABC_
NTK_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_
NTK_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_
NTK_SEQ
,
// 4: sequential AIG (two input AND gates with c- and latch-attributes on edges)
ABC_
TYPE_OTHER
// 5: unused
ABC_
NTK_OTHER
// 5: unused
}
Abc_NtkType_t
;
}
Abc_NtkType_t
;
// network functionality
// network functionality
...
@@ -206,21 +206,21 @@ struct Abc_Ntk_t_
...
@@ -206,21 +206,21 @@ struct Abc_Ntk_t_
#define ABC_INFINITY (10000000)
#define ABC_INFINITY (10000000)
// checking the network type
// checking the network type
static
inline
bool
Abc_NtkIsNetlist
(
Abc_Ntk_t
*
pNtk
)
{
return
pNtk
->
ntkType
==
ABC_
TYPE
_NETLIST
;
}
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_
TYPE
_LOGIC
;
}
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_
TYPE
_STRASH
;
}
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_
TYPE
_SEQ
;
}
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_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_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_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_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_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_
TYPE
_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_
TYPE
_LOGIC
;
}
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_
TYPE
_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_
TYPE
_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
;
}
static
inline
bool
Abc_NtkIsComb
(
Abc_Ntk_t
*
pNtk
)
{
return
pNtk
->
nLatches
==
0
;
}
// reading data members of the network
// reading data members of the network
...
...
src/base/abc/abcAig.c
View file @
0f6eeaea
...
@@ -160,12 +160,13 @@ Abc_Aig_t * Abc_AigDup( Abc_Aig_t * pMan, Abc_Aig_t * pManNew )
...
@@ -160,12 +160,13 @@ Abc_Aig_t * Abc_AigDup( Abc_Aig_t * pMan, Abc_Aig_t * pManNew )
Abc_NtkForEachLatch
(
pMan
->
pNtkAig
,
pObj
,
i
)
Abc_NtkForEachLatch
(
pMan
->
pNtkAig
,
pObj
,
i
)
pObj
->
pCopy
=
Abc_NtkLatch
(
pManNew
->
pNtkAig
,
i
);
pObj
->
pCopy
=
Abc_NtkLatch
(
pManNew
->
pNtkAig
,
i
);
// copy internal nodes
// copy internal nodes
vNodes
=
Abc_AigDfs
(
pMan
->
pNtkAig
,
1
,
0
);
vNodes
=
Abc_AigDfs
(
pMan
->
pNtkAig
,
0
,
0
);
Vec_PtrForEachEntry
(
vNodes
,
pObj
,
i
)
Vec_PtrForEachEntry
(
vNodes
,
pObj
,
i
)
{
{
if
(
!
Abc_NodeIsAigAnd
(
pObj
)
)
if
(
!
Abc_NodeIsAigAnd
(
pObj
)
)
continue
;
continue
;
pObj
->
pCopy
=
Abc_AigAnd
(
pManNew
,
Abc_ObjChild0Copy
(
pObj
),
Abc_ObjChild1Copy
(
pObj
)
);
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
// transfer latch attributes
Abc_ObjSetFaninL0
(
pObj
->
pCopy
,
Abc_ObjFaninL0
(
pObj
)
);
Abc_ObjSetFaninL0
(
pObj
->
pCopy
,
Abc_ObjFaninL0
(
pObj
)
);
Abc_ObjSetFaninL1
(
pObj
->
pCopy
,
Abc_ObjFaninL1
(
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 )
...
@@ -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
// get the number of nodes before and after
if
(
Abc_NtkNodeNum
(
pMan
->
pNtkAig
)
!=
Abc_NtkNodeNum
(
pManNew
->
pNtkAig
)
)
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
)
);
Abc_NtkNodeNum
(
pMan
->
pNtkAig
)
-
Abc_NtkNodeNum
(
pManNew
->
pNtkAig
)
);
return
pManNew
;
return
pManNew
;
}
}
...
...
src/base/abc/abcFunc.c
View file @
0f6eeaea
...
@@ -193,8 +193,8 @@ int Abc_NtkBddToSop( Abc_Ntk_t * pNtk )
...
@@ -193,8 +193,8 @@ int Abc_NtkBddToSop( Abc_Ntk_t * pNtk )
Abc_Obj_t
*
pNode
;
Abc_Obj_t
*
pNode
;
DdManager
*
dd
=
pNtk
->
pManFunc
;
DdManager
*
dd
=
pNtk
->
pManFunc
;
DdNode
*
bFunc
;
DdNode
*
bFunc
;
int
RetValue
,
i
;
Vec_Str_t
*
vCube
;
Vec_Str_t
*
vCube
;
int
i
;
assert
(
Abc_NtkIsBddLogic
(
pNtk
)
);
assert
(
Abc_NtkIsBddLogic
(
pNtk
)
);
Cudd_zddVarsFromBddVars
(
dd
,
2
);
Cudd_zddVarsFromBddVars
(
dd
,
2
);
...
@@ -211,17 +211,17 @@ int Abc_NtkBddToSop( Abc_Ntk_t * pNtk )
...
@@ -211,17 +211,17 @@ int Abc_NtkBddToSop( Abc_Ntk_t * pNtk )
bFunc
=
pNode
->
pData
;
bFunc
=
pNode
->
pData
;
pNode
->
pData
=
Abc_ConvertBddToSop
(
pNtk
->
pManFunc
,
dd
,
bFunc
,
bFunc
,
Abc_ObjFaninNum
(
pNode
),
vCube
,
-
1
);
pNode
->
pData
=
Abc_ConvertBddToSop
(
pNtk
->
pManFunc
,
dd
,
bFunc
,
bFunc
,
Abc_ObjFaninNum
(
pNode
),
vCube
,
-
1
);
if
(
pNode
->
pData
==
NULL
)
if
(
pNode
->
pData
==
NULL
)
{
Vec_StrFree
(
vCube
);
Cudd_Quit
(
dd
);
return
0
;
return
0
;
}
Cudd_RecursiveDeref
(
dd
,
bFunc
);
Cudd_RecursiveDeref
(
dd
,
bFunc
);
}
}
Vec_StrFree
(
vCube
);
Vec_StrFree
(
vCube
);
// check for remaining references in the package
// check for remaining references in the package
RetValue
=
Cudd_CheckZeroRef
(
dd
);
Extra_StopManager
(
dd
);
if
(
RetValue
>
0
)
printf
(
"
\n
The number of referenced nodes = %d
\n\n
"
,
RetValue
);
// Cudd_PrintInfo( dd, stdout );
Cudd_Quit
(
dd
);
return
1
;
return
1
;
}
}
...
...
src/base/abc/abcNetlist.c
View file @
0f6eeaea
...
@@ -48,9 +48,9 @@ Abc_Ntk_t * Abc_NtkNetlistToLogic( Abc_Ntk_t * pNtk )
...
@@ -48,9 +48,9 @@ Abc_Ntk_t * Abc_NtkNetlistToLogic( Abc_Ntk_t * pNtk )
assert
(
Abc_NtkIsNetlist
(
pNtk
)
);
assert
(
Abc_NtkIsNetlist
(
pNtk
)
);
// start the network
// start the network
if
(
!
Abc_NtkHasMapping
(
pNtk
)
)
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
else
pNtkNew
=
Abc_NtkStartFrom
(
pNtk
,
ABC_
TYPE
_LOGIC
,
ABC_FUNC_MAP
);
pNtkNew
=
Abc_NtkStartFrom
(
pNtk
,
ABC_
NTK
_LOGIC
,
ABC_FUNC_MAP
);
// duplicate the nodes
// duplicate the nodes
Abc_NtkForEachNode
(
pNtk
,
pObj
,
i
)
Abc_NtkForEachNode
(
pNtk
,
pObj
,
i
)
Abc_NtkDupObj
(
pNtkNew
,
pObj
);
Abc_NtkDupObj
(
pNtkNew
,
pObj
);
...
@@ -159,9 +159,9 @@ Abc_Ntk_t * Abc_NtkLogicSopToNetlist( Abc_Ntk_t * pNtk )
...
@@ -159,9 +159,9 @@ Abc_Ntk_t * Abc_NtkLogicSopToNetlist( Abc_Ntk_t * pNtk )
// start the netlist by creating PI/PO/Latch objects
// start the netlist by creating PI/PO/Latch objects
if
(
Abc_NtkIsSopLogic
(
pNtk
)
)
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
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
// create the CI nets and remember them in the new CI nodes
Abc_NtkForEachCi
(
pNtk
,
pObj
,
i
)
Abc_NtkForEachCi
(
pNtk
,
pObj
,
i
)
{
{
...
@@ -236,7 +236,7 @@ Abc_Ntk_t * Abc_NtkAigToLogicSop( Abc_Ntk_t * pNtk )
...
@@ -236,7 +236,7 @@ Abc_Ntk_t * Abc_NtkAigToLogicSop( Abc_Ntk_t * pNtk )
int
i
,
k
;
int
i
,
k
;
assert
(
Abc_NtkIsStrash
(
pNtk
)
);
assert
(
Abc_NtkIsStrash
(
pNtk
)
);
// start the network
// 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
// create the constant node
Abc_NtkDupConst1
(
pNtk
,
pNtkNew
);
Abc_NtkDupConst1
(
pNtk
,
pNtkNew
);
// duplicate the nodes and create node functions
// duplicate the nodes and create node functions
...
@@ -313,7 +313,7 @@ Abc_Ntk_t * Abc_NtkAigToLogicSopBench( Abc_Ntk_t * pNtk )
...
@@ -313,7 +313,7 @@ Abc_Ntk_t * Abc_NtkAigToLogicSopBench( Abc_Ntk_t * pNtk )
if
(
Abc_NtkGetChoiceNum
(
pNtk
)
)
if
(
Abc_NtkGetChoiceNum
(
pNtk
)
)
printf
(
"Warning: Choice nodes are skipped.
\n
"
);
printf
(
"Warning: Choice nodes are skipped.
\n
"
);
// start the network
// 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
// create the constant node
Abc_NtkDupConst1
(
pNtk
,
pNtkNew
);
Abc_NtkDupConst1
(
pNtk
,
pNtkNew
);
// collect the nodes to be used (marks all nodes with current TravId)
// collect the nodes to be used (marks all nodes with current TravId)
...
...
src/base/abc/abcNtk.c
View file @
0f6eeaea
...
@@ -210,7 +210,7 @@ Abc_Ntk_t * Abc_NtkStartRead( char * pName )
...
@@ -210,7 +210,7 @@ Abc_Ntk_t * Abc_NtkStartRead( char * pName )
{
{
Abc_Ntk_t
*
pNtkNew
;
Abc_Ntk_t
*
pNtkNew
;
// allocate the empty network
// 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
// set the specs
pNtkNew
->
pName
=
util_strsav
(
pName
);
pNtkNew
->
pName
=
util_strsav
(
pName
);
pNtkNew
->
pSpec
=
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 *
...
@@ -379,7 +379,7 @@ Abc_Ntk_t * Abc_NtkCreateCone( Abc_Ntk_t * pNtk, Vec_Ptr_t * vRoots, Vec_Int_t *
// start the network
// start the network
Abc_NtkCleanCopy
(
pNtk
);
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
);
pNtkNew
->
pName
=
util_strsav
(
pNtk
->
pName
);
// collect the nodes in the TFI of the output
// collect the nodes in the TFI of the output
...
...
src/base/abci/abcBalance.c
View file @
0f6eeaea
...
@@ -49,7 +49,7 @@ Abc_Ntk_t * Abc_NtkBalance( Abc_Ntk_t * pNtk, bool fDuplicate )
...
@@ -49,7 +49,7 @@ Abc_Ntk_t * Abc_NtkBalance( Abc_Ntk_t * pNtk, bool fDuplicate )
Abc_Ntk_t
*
pNtkAig
;
Abc_Ntk_t
*
pNtkAig
;
assert
(
Abc_NtkIsStrash
(
pNtk
)
);
assert
(
Abc_NtkIsStrash
(
pNtk
)
);
// perform balancing
// 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_NtkBalancePerform
(
pNtk
,
pNtkAig
,
fDuplicate
);
Abc_NtkFinalize
(
pNtk
,
pNtkAig
);
Abc_NtkFinalize
(
pNtk
,
pNtkAig
);
// make sure everything is okay
// make sure everything is okay
...
...
src/base/abci/abcCollapse.c
View file @
0f6eeaea
...
@@ -98,7 +98,7 @@ Abc_Ntk_t * Abc_NtkFromGlobalBdds( Abc_Ntk_t * pNtk )
...
@@ -98,7 +98,7 @@ Abc_Ntk_t * Abc_NtkFromGlobalBdds( Abc_Ntk_t * pNtk )
DdManager
*
dd
=
pNtk
->
pManGlob
;
DdManager
*
dd
=
pNtk
->
pManGlob
;
int
i
;
int
i
;
// start the new network
// 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
// make sure the new manager has the same number of inputs
Cudd_bddIthVar
(
pNtkNew
->
pManFunc
,
dd
->
size
-
1
);
Cudd_bddIthVar
(
pNtkNew
->
pManFunc
,
dd
->
size
-
1
);
// process the POs
// process the POs
...
...
src/base/abci/abcDsd.c
View file @
0f6eeaea
...
@@ -126,7 +126,7 @@ Abc_Ntk_t * Abc_NtkDsdInternal( Abc_Ntk_t * pNtk, bool fVerbose, bool fPrint, bo
...
@@ -126,7 +126,7 @@ Abc_Ntk_t * Abc_NtkDsdInternal( Abc_Ntk_t * pNtk, bool fVerbose, bool fPrint, bo
}
}
// start the new network
// 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
// make sure the new manager has enough inputs
Cudd_bddIthVar
(
pNtkNew
->
pManFunc
,
dd
->
size
-
1
);
Cudd_bddIthVar
(
pNtkNew
->
pManFunc
,
dd
->
size
-
1
);
// put the results into the new network (save new CO drivers in old CO drivers)
// put the results into the new network (save new CO drivers in old CO drivers)
...
...
src/base/abci/abcFpga.c
View file @
0f6eeaea
...
@@ -194,7 +194,7 @@ Abc_Ntk_t * Abc_NtkFromFpga( Fpga_Man_t * pMan, Abc_Ntk_t * pNtk )
...
@@ -194,7 +194,7 @@ Abc_Ntk_t * Abc_NtkFromFpga( Fpga_Man_t * pMan, Abc_Ntk_t * pNtk )
Abc_Obj_t
*
pNode
,
*
pNodeNew
;
Abc_Obj_t
*
pNode
,
*
pNodeNew
;
int
i
,
nDupGates
;
int
i
,
nDupGates
;
// create the new network
// 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
// make the mapper point to the new network
Fpga_CutsCleanSign
(
pMan
);
Fpga_CutsCleanSign
(
pMan
);
Fpga_ManCleanData0
(
pMan
);
Fpga_ManCleanData0
(
pMan
);
...
...
src/base/abci/abcFraig.c
View file @
0f6eeaea
...
@@ -148,7 +148,7 @@ Abc_Ntk_t * Abc_NtkFromFraig( Fraig_Man_t * pMan, Abc_Ntk_t * pNtk )
...
@@ -148,7 +148,7 @@ Abc_Ntk_t * Abc_NtkFromFraig( Fraig_Man_t * pMan, Abc_Ntk_t * pNtk )
Abc_Obj_t
*
pNode
,
*
pNodeNew
;
Abc_Obj_t
*
pNode
,
*
pNodeNew
;
int
i
;
int
i
;
// create the new network
// 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
// make the mapper point to the new network
Abc_NtkForEachCi
(
pNtk
,
pNode
,
i
)
Abc_NtkForEachCi
(
pNtk
,
pNode
,
i
)
Fraig_NodeSetData1
(
Fraig_ManReadIthVar
(
pMan
,
i
),
(
Fraig_Node_t
*
)
pNode
->
pCopy
);
Fraig_NodeSetData1
(
Fraig_ManReadIthVar
(
pMan
,
i
),
(
Fraig_Node_t
*
)
pNode
->
pCopy
);
...
@@ -260,7 +260,7 @@ Abc_Ntk_t * Abc_NtkFraigTrust( Abc_Ntk_t * pNtk )
...
@@ -260,7 +260,7 @@ Abc_Ntk_t * Abc_NtkFraigTrust( Abc_Ntk_t * pNtk )
}
}
// perform strashing
// 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_NtkFraigTrustOne
(
pNtk
,
pNtkNew
);
Abc_NtkFinalize
(
pNtk
,
pNtkNew
);
Abc_NtkFinalize
(
pNtk
,
pNtkNew
);
...
...
src/base/abci/abcMap.c
View file @
0f6eeaea
...
@@ -222,7 +222,7 @@ Abc_Ntk_t * Abc_NtkFromMap( Map_Man_t * pMan, Abc_Ntk_t * pNtk )
...
@@ -222,7 +222,7 @@ Abc_Ntk_t * Abc_NtkFromMap( Map_Man_t * pMan, Abc_Ntk_t * pNtk )
int
i
,
nDupGates
;
int
i
,
nDupGates
;
// create the new network
// 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
// make the mapper point to the new network
Map_ManCleanData
(
pMan
);
Map_ManCleanData
(
pMan
);
Abc_NtkForEachCi
(
pNtk
,
pNode
,
i
)
Abc_NtkForEachCi
(
pNtk
,
pNode
,
i
)
...
...
src/base/abci/abcMiter.c
View file @
0f6eeaea
...
@@ -84,7 +84,7 @@ Abc_Ntk_t * Abc_NtkMiterInt( Abc_Ntk_t * pNtk1, Abc_Ntk_t * pNtk2, int fComb )
...
@@ -84,7 +84,7 @@ Abc_Ntk_t * Abc_NtkMiterInt( Abc_Ntk_t * pNtk1, Abc_Ntk_t * pNtk2, int fComb )
assert
(
Abc_NtkIsStrash
(
pNtk2
)
);
assert
(
Abc_NtkIsStrash
(
pNtk2
)
);
// start the new network
// 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
);
sprintf
(
Buffer
,
"%s_%s_miter"
,
pNtk1
->
pName
,
pNtk2
->
pName
);
pNtkMiter
->
pName
=
util_strsav
(
Buffer
);
pNtkMiter
->
pName
=
util_strsav
(
Buffer
);
...
@@ -321,7 +321,7 @@ Abc_Ntk_t * Abc_NtkMiterForCofactors( Abc_Ntk_t * pNtk, int Out, int In1, int In
...
@@ -321,7 +321,7 @@ Abc_Ntk_t * Abc_NtkMiterForCofactors( Abc_Ntk_t * pNtk, int Out, int In1, int In
assert
(
In2
<
Abc_NtkCiNum
(
pNtk
)
);
assert
(
In2
<
Abc_NtkCiNum
(
pNtk
)
);
// start the new network
// 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
))
);
sprintf
(
Buffer
,
"%s_miter"
,
Abc_ObjName
(
Abc_NtkCo
(
pNtk
,
Out
))
);
pNtkMiter
->
pName
=
util_strsav
(
Buffer
);
pNtkMiter
->
pName
=
util_strsav
(
Buffer
);
...
@@ -477,7 +477,7 @@ Abc_Ntk_t * Abc_NtkFrames( Abc_Ntk_t * pNtk, int nFrames, int fInitial )
...
@@ -477,7 +477,7 @@ Abc_Ntk_t * Abc_NtkFrames( Abc_Ntk_t * pNtk, int nFrames, int fInitial )
assert
(
nFrames
>
0
);
assert
(
nFrames
>
0
);
assert
(
Abc_NtkIsStrash
(
pNtk
)
);
assert
(
Abc_NtkIsStrash
(
pNtk
)
);
// start the new network
// 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
);
sprintf
(
Buffer
,
"%s_%d_frames"
,
pNtk
->
pName
,
nFrames
);
pNtkFrames
->
pName
=
util_strsav
(
Buffer
);
pNtkFrames
->
pName
=
util_strsav
(
Buffer
);
// create new latches (or their initial values) and remember them in the new latches
// create new latches (or their initial values) and remember them in the new latches
...
...
src/base/abci/abcNtbdd.c
View file @
0f6eeaea
...
@@ -78,7 +78,7 @@ Abc_Ntk_t * Abc_NtkDeriveFromBdd( DdManager * dd, DdNode * bFunc, char * pNamePo
...
@@ -78,7 +78,7 @@ Abc_Ntk_t * Abc_NtkDeriveFromBdd( DdManager * dd, DdNode * bFunc, char * pNamePo
return
NULL
;
return
NULL
;
// start the network
// 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
);
pNtk
->
pName
=
util_strsav
(
pNamePo
);
// make sure the new manager has enough inputs
// make sure the new manager has enough inputs
Cudd_bddIthVar
(
pNtk
->
pManFunc
,
Vec_PtrSize
(
vNamesPi
)
);
Cudd_bddIthVar
(
pNtk
->
pManFunc
,
Vec_PtrSize
(
vNamesPi
)
);
...
@@ -121,7 +121,7 @@ Abc_Ntk_t * Abc_NtkBddToMuxes( Abc_Ntk_t * pNtk )
...
@@ -121,7 +121,7 @@ Abc_Ntk_t * Abc_NtkBddToMuxes( Abc_Ntk_t * pNtk )
{
{
Abc_Ntk_t
*
pNtkNew
;
Abc_Ntk_t
*
pNtkNew
;
assert
(
Abc_NtkIsBddLogic
(
pNtk
)
);
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_NtkBddToMuxesPerform
(
pNtk
,
pNtkNew
);
Abc_NtkFinalize
(
pNtk
,
pNtkNew
);
Abc_NtkFinalize
(
pNtk
,
pNtkNew
);
// make sure everything is okay
// make sure everything is okay
...
...
src/base/abci/abcPga.c
View file @
0f6eeaea
...
@@ -107,7 +107,7 @@ Abc_Ntk_t * Abc_NtkFromPga( Abc_Ntk_t * pNtk, Vec_Ptr_t * vNodeCuts )
...
@@ -107,7 +107,7 @@ Abc_Ntk_t * Abc_NtkFromPga( Abc_Ntk_t * pNtk, Vec_Ptr_t * vNodeCuts )
Vec_Ptr_t
*
vLeaves
,
*
vVisited
;
Vec_Ptr_t
*
vLeaves
,
*
vVisited
;
int
i
,
k
,
nDupGates
;
int
i
,
k
,
nDupGates
;
// create the new network
// 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
;
dd
=
pNtkNew
->
pManFunc
;
// set the constant node
// set the constant node
pNode
=
Abc_AigConst1
(
pNtk
->
pManFunc
);
pNode
=
Abc_AigConst1
(
pNtk
->
pManFunc
);
...
...
src/base/abci/abcRenode.c
View file @
0f6eeaea
...
@@ -73,7 +73,7 @@ Abc_Ntk_t * Abc_NtkRenode( Abc_Ntk_t * pNtk, int nThresh, int nFaninMax, int fCn
...
@@ -73,7 +73,7 @@ Abc_Ntk_t * Abc_NtkRenode( Abc_Ntk_t * pNtk, int nThresh, int nFaninMax, int fCn
Abc_NtkRenodeSetBounds
(
pNtk
,
nThresh
,
nFaninMax
);
Abc_NtkRenodeSetBounds
(
pNtk
,
nThresh
,
nFaninMax
);
// perform renoding for this boundary
// 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_NtkRenodeInt
(
pNtk
,
pNtkNew
);
Abc_NtkFinalize
(
pNtk
,
pNtkNew
);
Abc_NtkFinalize
(
pNtk
,
pNtkNew
);
...
...
src/base/abci/abcStrash.c
View file @
0f6eeaea
...
@@ -61,7 +61,7 @@ Abc_Ntk_t * Abc_NtkStrash( Abc_Ntk_t * pNtk, bool fAllNodes, bool fCleanup )
...
@@ -61,7 +61,7 @@ Abc_Ntk_t * Abc_NtkStrash( Abc_Ntk_t * pNtk, bool fAllNodes, bool fCleanup )
if
(
Abc_NtkGetChoiceNum
(
pNtk
)
)
if
(
Abc_NtkGetChoiceNum
(
pNtk
)
)
printf
(
"Warning: The choice nodes in the initial AIG are removed by strashing.
\n
"
);
printf
(
"Warning: The choice nodes in the initial AIG are removed by strashing.
\n
"
);
// perform strashing
// 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_NtkStrashPerform
(
pNtk
,
pNtkAig
,
fAllNodes
);
Abc_NtkFinalize
(
pNtk
,
pNtkAig
);
Abc_NtkFinalize
(
pNtk
,
pNtkAig
);
// print warning about self-feed latches
// print warning about self-feed latches
...
...
src/base/abci/abcUnreach.c
View file @
0f6eeaea
...
@@ -282,7 +282,7 @@ Abc_Ntk_t * Abc_NtkConstructExdc( DdManager * dd, Abc_Ntk_t * pNtk, DdNode * bUn
...
@@ -282,7 +282,7 @@ Abc_Ntk_t * Abc_NtkConstructExdc( DdManager * dd, Abc_Ntk_t * pNtk, DdNode * bUn
int
i
;
int
i
;
// start the new network
// 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
// create PIs corresponding to LOs
Abc_NtkForEachLatch
(
pNtk
,
pNode
,
i
)
Abc_NtkForEachLatch
(
pNtk
,
pNode
,
i
)
pNode
->
pCopy
=
Abc_NtkCreatePi
(
pNtkNew
);
pNode
->
pCopy
=
Abc_NtkCreatePi
(
pNtkNew
);
...
...
src/base/abcs/abcRetImpl.c
View file @
0f6eeaea
...
@@ -117,7 +117,7 @@ int Abc_NtkImplementRetimingBackward( Abc_Ntk_t * pNtk, Vec_Ptr_t * vMoves )
...
@@ -117,7 +117,7 @@ int Abc_NtkImplementRetimingBackward( Abc_Ntk_t * pNtk, Vec_Ptr_t * vMoves )
vValues
=
Vec_IntAlloc
(
100
);
vValues
=
Vec_IntAlloc
(
100
);
// create the network for the initial state computation
// 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
// perform the backward moves and build the network
Vec_PtrForEachEntry
(
vMoves
,
pNode
,
i
)
Vec_PtrForEachEntry
(
vMoves
,
pNode
,
i
)
...
...
src/base/abcs/abcSeq.c
View file @
0f6eeaea
...
@@ -79,7 +79,7 @@ Abc_Ntk_t * Abc_NtkAigToSeq( Abc_Ntk_t * pNtk )
...
@@ -79,7 +79,7 @@ Abc_Ntk_t * Abc_NtkAigToSeq( Abc_Ntk_t * pNtk )
assert
(
Abc_NtkIsStrash
(
pNtk
)
);
assert
(
Abc_NtkIsStrash
(
pNtk
)
);
assert
(
Abc_NtkCountSelfFeedLatches
(
pNtk
)
==
0
);
assert
(
Abc_NtkCountSelfFeedLatches
(
pNtk
)
==
0
);
// start the network
// 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
// duplicate the name and the spec
pNtkNew
->
pName
=
util_strsav
(
pNtk
->
pName
);
pNtkNew
->
pName
=
util_strsav
(
pNtk
->
pName
);
pNtkNew
->
pSpec
=
util_strsav
(
pNtk
->
pSpec
);
pNtkNew
->
pSpec
=
util_strsav
(
pNtk
->
pSpec
);
...
@@ -231,7 +231,7 @@ Abc_Ntk_t * Abc_NtkSeqToLogicSop( Abc_Ntk_t * pNtk )
...
@@ -231,7 +231,7 @@ Abc_Ntk_t * Abc_NtkSeqToLogicSop( Abc_Ntk_t * pNtk )
assert
(
Abc_NtkIsSeq
(
pNtk
)
);
assert
(
Abc_NtkIsSeq
(
pNtk
)
);
// start the network without latches
// start the network without latches
nCutNodes
=
pNtk
->
vLats
->
nSize
;
pNtk
->
vLats
->
nSize
=
0
;
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
;
pNtk
->
vLats
->
nSize
=
nCutNodes
;
// create the constant node
// create the constant node
Abc_NtkDupConst1
(
pNtk
,
pNtkNew
);
Abc_NtkDupConst1
(
pNtk
,
pNtkNew
);
...
...
src/base/abcs/abcs.h
View file @
0f6eeaea
...
@@ -17,7 +17,7 @@
...
@@ -17,7 +17,7 @@
Revision [$Id: abcs.h,v 1.00 2005/06/20 00:00:00 alanmi Exp $]
Revision [$Id: abcs.h,v 1.00 2005/06/20 00:00:00 alanmi Exp $]
***********************************************************************/
***********************************************************************/
#ifndef __ABCS_H__
#ifndef __ABCS_H__
#define __ABCS_H__
#define __ABCS_H__
...
...
src/base/abcs/module.make
View file @
0f6eeaea
SRC
+=
src/base/abcs/abcRetime.c
\
SRC
+=
src/base/abcs/abcRetCore.c
\
src/base/abcs/abcSeq.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
src/base/io/ioReadBench.c
View file @
0f6eeaea
...
@@ -100,6 +100,7 @@ Abc_Ntk_t * Io_ReadBenchNetwork( Extra_FileReader_t * p )
...
@@ -100,6 +100,7 @@ Abc_Ntk_t * Io_ReadBenchNetwork( Extra_FileReader_t * p )
if
(
vTokens
->
nSize
==
1
)
if
(
vTokens
->
nSize
==
1
)
{
{
printf
(
"%s: Wrong input file format.
\n
"
,
Extra_FileReaderGetFileName
(
p
)
);
printf
(
"%s: Wrong input file format.
\n
"
,
Extra_FileReaderGetFileName
(
p
)
);
Vec_StrFree
(
vString
);
Abc_NtkDelete
(
pNtk
);
Abc_NtkDelete
(
pNtk
);
return
NULL
;
return
NULL
;
}
}
...
@@ -144,6 +145,7 @@ Abc_Ntk_t * Io_ReadBenchNetwork( Extra_FileReader_t * p )
...
@@ -144,6 +145,7 @@ Abc_Ntk_t * Io_ReadBenchNetwork( Extra_FileReader_t * p )
else
else
{
{
printf
(
"Cannot determine gate type
\"
%s
\"
in line %d.
\n
"
,
pType
,
Extra_FileReaderGetLineNumber
(
p
,
0
)
);
printf
(
"Cannot determine gate type
\"
%s
\"
in line %d.
\n
"
,
pType
,
Extra_FileReaderGetLineNumber
(
p
,
0
)
);
Vec_StrFree
(
vString
);
Abc_NtkDelete
(
pNtk
);
Abc_NtkDelete
(
pNtk
);
return
NULL
;
return
NULL
;
}
}
...
...
src/base/io/ioReadBlif.c
View file @
0f6eeaea
...
@@ -292,12 +292,12 @@ Abc_Ntk_t * Io_ReadBlifNetwork( Io_ReadBlif_t * p )
...
@@ -292,12 +292,12 @@ Abc_Ntk_t * Io_ReadBlifNetwork( Io_ReadBlif_t * p )
}
}
pModelName
=
vTokens
->
pArray
[
1
];
pModelName
=
vTokens
->
pArray
[
1
];
// allocate the empty network
// 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
->
pName
=
util_strsav
(
pModelName
);
p
->
pNtk
->
pSpec
=
util_strsav
(
p
->
pFileName
);
p
->
pNtk
->
pSpec
=
util_strsav
(
p
->
pFileName
);
}
}
else
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
// read the inputs/outputs
pProgress
=
Extra_ProgressBarStart
(
stdout
,
Extra_FileReaderGetFileSize
(
p
->
pReader
)
);
pProgress
=
Extra_ProgressBarStart
(
stdout
,
Extra_FileReaderGetFileSize
(
p
->
pReader
)
);
...
...
src/base/io/ioReadPla.c
View file @
0f6eeaea
...
@@ -229,6 +229,7 @@ Abc_Ntk_t * Io_ReadPlaNetwork( Extra_FileReader_t * p )
...
@@ -229,6 +229,7 @@ Abc_Ntk_t * Io_ReadPlaNetwork( Extra_FileReader_t * p )
{
{
Abc_ObjRemoveFanins
(
pNode
);
Abc_ObjRemoveFanins
(
pNode
);
pNode
->
pData
=
Abc_SopRegister
(
pNtk
->
pManFunc
,
" 0
\n
"
);
pNode
->
pData
=
Abc_SopRegister
(
pNtk
->
pManFunc
,
" 0
\n
"
);
Vec_StrFree
(
ppSops
[
i
]
);
continue
;
continue
;
}
}
Vec_StrPush
(
ppSops
[
i
],
0
);
Vec_StrPush
(
ppSops
[
i
],
0
);
...
...
src/base/io/ioReadVerilog.c
View file @
0f6eeaea
...
@@ -271,7 +271,7 @@ Abc_Ntk_t * Io_ReadVerNetwork( Io_ReadVer_t * p )
...
@@ -271,7 +271,7 @@ Abc_Ntk_t * Io_ReadVerNetwork( Io_ReadVer_t * p )
pModelName
=
vTokens
->
pArray
[
1
];
pModelName
=
vTokens
->
pArray
[
1
];
// allocate the empty network
// 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
->
pName
=
util_strsav
(
pModelName
);
pNtk
->
pSpec
=
util_strsav
(
p
->
pFileName
);
pNtk
->
pSpec
=
util_strsav
(
p
->
pFileName
);
...
...
src/sat/csat/csat_apis.c
View file @
0f6eeaea
...
@@ -72,7 +72,7 @@ CSAT_Manager CSAT_InitManager()
...
@@ -72,7 +72,7 @@ CSAT_Manager CSAT_InitManager()
CSAT_Manager_t
*
mng
;
CSAT_Manager_t
*
mng
;
mng
=
ALLOC
(
CSAT_Manager_t
,
1
);
mng
=
ALLOC
(
CSAT_Manager_t
,
1
);
memset
(
mng
,
0
,
sizeof
(
CSAT_Manager_t
)
);
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
->
pNtk
->
pName
=
util_strsav
(
"csat_network"
);
mng
->
tName2Node
=
stmm_init_table
(
strcmp
,
stmm_strhash
);
mng
->
tName2Node
=
stmm_init_table
(
strcmp
,
stmm_strhash
);
mng
->
tNode2Name
=
stmm_init_table
(
stmm_ptrcmp
,
stmm_ptrhash
);
mng
->
tNode2Name
=
stmm_init_table
(
stmm_ptrcmp
,
stmm_ptrhash
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment