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
477ecc17
Commit
477ecc17
authored
Jul 21, 2015
by
Alan Mishchenko
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Renaming Cba into Bac.
parent
ddda9320
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
266 additions
and
358 deletions
+266
-358
abclib.dsp
+81
-29
src/base/cba/cba.c
+1
-1
src/base/cba/cba.h
+0
-0
src/base/cba/cbaBlast.c
+0
-0
src/base/cba/cbaCba.c
+6
-252
src/base/cba/cbaCom.c
+30
-52
src/base/cba/cbaNtk.c
+0
-0
src/base/cba/cbaPrs.h
+102
-0
src/base/cba/cbaReadBlif.c
+1
-1
src/base/cba/cbaReadVer.c
+4
-4
src/base/cba/cbaWriteBlif.c
+5
-3
src/base/cba/cbaWriteVer.c
+11
-9
src/base/cba/module.make
+0
-7
src/base/main/mainInit.c
+4
-0
src/misc/vec/vecInt.h
+21
-0
No files found.
abclib.dsp
View file @
477ecc17
...
@@ -782,120 +782,172 @@ SOURCE=.\src\base\wlc\wlcStdin.c
...
@@ -782,120 +782,172 @@ SOURCE=.\src\base\wlc\wlcStdin.c
SOURCE=.\src\base\wlc\wlcWriteVer.c
SOURCE=.\src\base\wlc\wlcWriteVer.c
# End Source File
# End Source File
# End Group
# End Group
# Begin Group "
cb
a"
# Begin Group "
pl
a"
# PROP Default_Filter ""
# PROP Default_Filter ""
# Begin Source File
# Begin Source File
SOURCE=.\src\base\
cba\cb
a.h
SOURCE=.\src\base\
pla\pl
a.h
# End Source File
# End Source File
# Begin Source File
# Begin Source File
SOURCE=.\src\base\
cba\cbaBlast
.c
SOURCE=.\src\base\
pla\plaCom
.c
# End Source File
# End Source File
# Begin Source File
# Begin Source File
SOURCE=.\src\base\
cba\cbaCba
.c
SOURCE=.\src\base\
pla\plaFxch
.c
# End Source File
# End Source File
# Begin Source File
# Begin Source File
SOURCE=.\src\base\
cba\cbaCom
.c
SOURCE=.\src\base\
pla\plaHash
.c
# End Source File
# End Source File
# Begin Source File
# Begin Source File
SOURCE=.\src\base\
cba\cbaLib
.c
SOURCE=.\src\base\
pla\plaMan
.c
# End Source File
# End Source File
# Begin Source File
# Begin Source File
SOURCE=.\src\base\
cba\cbaNtk
.c
SOURCE=.\src\base\
pla\plaMerge
.c
# End Source File
# End Source File
# Begin Source File
# Begin Source File
SOURCE=.\src\base\
cba\cbaOper
.c
SOURCE=.\src\base\
pla\plaRead
.c
# End Source File
# End Source File
# Begin Source File
# Begin Source File
SOURCE=.\src\base\
cba\cbaPrs.h
SOURCE=.\src\base\
pla\plaSimple.c
# End Source File
# End Source File
# Begin Source File
# Begin Source File
SOURCE=.\src\base\
cba\cbaPrsBuild
.c
SOURCE=.\src\base\
pla\plaWrite
.c
# End Source File
# End Source File
# End Group
# Begin Group "bac"
# PROP Default_Filter ""
# Begin Source File
# Begin Source File
SOURCE=.\src\base\
cba\cbaPrsTrans
.c
SOURCE=.\src\base\
bac\bac
.c
# End Source File
# End Source File
# Begin Source File
# Begin Source File
SOURCE=.\src\base\
cba\cbaPtr.c
SOURCE=.\src\base\
bac\bac.h
# End Source File
# End Source File
# Begin Source File
# Begin Source File
SOURCE=.\src\base\
cba\cbaPtrAb
c.c
SOURCE=.\src\base\
bac\bacBa
c.c
# End Source File
# End Source File
# Begin Source File
# Begin Source File
SOURCE=.\src\base\
cba\cbaReadBlif
.c
SOURCE=.\src\base\
bac\bacBlast
.c
# End Source File
# End Source File
# Begin Source File
# Begin Source File
SOURCE=.\src\base\
cba\cbaReadSmt
.c
SOURCE=.\src\base\
bac\bacCom
.c
# End Source File
# End Source File
# Begin Source File
# Begin Source File
SOURCE=.\src\base\
cba\cbaReadVer
.c
SOURCE=.\src\base\
bac\bacLib
.c
# End Source File
# End Source File
# Begin Source File
# Begin Source File
SOURCE=.\src\base\
cba\cbaWriteBlif
.c
SOURCE=.\src\base\
bac\bacNtk
.c
# End Source File
# End Source File
# Begin Source File
# Begin Source File
SOURCE=.\src\base\
cba\cbaWriteSmt
.c
SOURCE=.\src\base\
bac\bacOper
.c
# End Source File
# End Source File
# Begin Source File
# Begin Source File
SOURCE=.\src\base\cba\cbaWriteVer.c
SOURCE=.\src\base\bac\bacPrs.h
# End Source File
# Begin Source File
SOURCE=.\src\base\bac\bacPrsBuild.c
# End Source File
# Begin Source File
SOURCE=.\src\base\bac\bacPrsTrans.c
# End Source File
# Begin Source File
SOURCE=.\src\base\bac\bacPrtAbc.c
# End Source File
# Begin Source File
SOURCE=.\src\base\bac\bacPtr.c
# End Source File
# Begin Source File
SOURCE=.\src\base\bac\bacReadBlif.c
# End Source File
# Begin Source File
SOURCE=.\src\base\bac\bacReadSmt.c
# End Source File
# Begin Source File
SOURCE=.\src\base\bac\bacReadVec.c
# End Source File
# Begin Source File
SOURCE=.\src\base\bac\bacWriteBlif.c
# End Source File
# Begin Source File
SOURCE=.\src\base\bac\bacWriteSmt.c
# End Source File
# Begin Source File
SOURCE=.\src\base\bac\bacWriteVer.c
# End Source File
# End Source File
# End Group
# End Group
# Begin Group "
pl
a"
# Begin Group "
cb
a"
# PROP Default_Filter ""
# PROP Default_Filter ""
# Begin Source File
# Begin Source File
SOURCE=.\src\base\
pla\pla.h
SOURCE=.\src\base\
cba\cba.c
# End Source File
# End Source File
# Begin Source File
# Begin Source File
SOURCE=.\src\base\
pla\plaCom.c
SOURCE=.\src\base\
cba\cba.h
# End Source File
# End Source File
# Begin Source File
# Begin Source File
SOURCE=.\src\base\
pla\plaFxch
.c
SOURCE=.\src\base\
cba\cbaBlast
.c
# End Source File
# End Source File
# Begin Source File
# Begin Source File
SOURCE=.\src\base\
pla\plaHash
.c
SOURCE=.\src\base\
cba\cbaCba
.c
# End Source File
# End Source File
# Begin Source File
# Begin Source File
SOURCE=.\src\base\
pla\plaMan
.c
SOURCE=.\src\base\
cba\cbaCom
.c
# End Source File
# End Source File
# Begin Source File
# Begin Source File
SOURCE=.\src\base\
pla\plaMerge
.c
SOURCE=.\src\base\
cba\cbaNtk
.c
# End Source File
# End Source File
# Begin Source File
# Begin Source File
SOURCE=.\src\base\
pla\plaRead.c
SOURCE=.\src\base\
cba\cbaPrs.h
# End Source File
# End Source File
# Begin Source File
# Begin Source File
SOURCE=.\src\base\
pla\plaSimple
.c
SOURCE=.\src\base\
cba\cbaReadBlif
.c
# End Source File
# End Source File
# Begin Source File
# Begin Source File
SOURCE=.\src\base\pla\plaWrite.c
SOURCE=.\src\base\cba\cbaReadVer.c
# End Source File
# Begin Source File
SOURCE=.\src\base\cba\cbaWriteBlif.c
# End Source File
# Begin Source File
SOURCE=.\src\base\cba\cbaWriteVer.c
# End Source File
# End Source File
# End Group
# End Group
# End Group
# End Group
...
...
src/base/cba/cba.c
View file @
477ecc17
...
@@ -12,7 +12,7 @@
...
@@ -12,7 +12,7 @@
Affiliation [UC Berkeley]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started -
November 29, 2014
.]
Date [Ver. 1.0. Started -
July 21, 2015
.]
Revision [$Id: cba.c,v 1.00 2014/11/29 00:00:00 alanmi Exp $]
Revision [$Id: cba.c,v 1.00 2014/11/29 00:00:00 alanmi Exp $]
...
...
src/base/cba/cba.h
View file @
477ecc17
This diff is collapsed.
Click to expand it.
src/base/cba/cbaBlast.c
View file @
477ecc17
This diff is collapsed.
Click to expand it.
src/base/cba/cbaCba.c
View file @
477ecc17
/**CFile****************************************************************
/**CFile****************************************************************
FileName [cba
Cba
.c]
FileName [cba.c]
SystemName [ABC: Logic synthesis and verification system.]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [
Hierarchical word-level netlist
.]
PackageName [
Verilog parser
.]
Synopsis [
Verilog parser
.]
Synopsis [
Parses several flavors of word-level Verilog
.]
Author [Alan Mishchenko]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started -
November 29, 2014
.]
Date [Ver. 1.0. Started -
July 21, 2015
.]
Revision [$Id: cba
Cba
.c,v 1.00 2014/11/29 00:00:00 alanmi Exp $]
Revision [$Id: cba.c,v 1.00 2014/11/29 00:00:00 alanmi Exp $]
***********************************************************************/
***********************************************************************/
...
@@ -30,10 +30,9 @@ ABC_NAMESPACE_IMPL_START
...
@@ -30,10 +30,9 @@ ABC_NAMESPACE_IMPL_START
/// FUNCTION DEFINITIONS ///
/// FUNCTION DEFINITIONS ///
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
/**Function*************************************************************
/**Function*************************************************************
Synopsis [
Read CBA.
]
Synopsis []
Description []
Description []
...
@@ -42,252 +41,7 @@ ABC_NAMESPACE_IMPL_START
...
@@ -42,252 +41,7 @@ ABC_NAMESPACE_IMPL_START
SeeAlso []
SeeAlso []
***********************************************************************/
***********************************************************************/
int
CbaManReadCbaLine
(
Vec_Str_t
*
vOut
,
int
*
pPos
,
char
*
pBuffer
,
char
*
pLimit
)
{
char
c
;
while
(
(
c
=
Vec_StrEntry
(
vOut
,
(
*
pPos
)
++
))
!=
'\n'
&&
pBuffer
<
pLimit
)
*
pBuffer
++
=
c
;
*
pBuffer
=
0
;
return
pBuffer
<
pLimit
;
}
int
CbaManReadCbaNameAndNums
(
char
*
pBuffer
,
int
*
Num1
,
int
*
Num2
,
int
*
Num3
,
int
*
Num4
)
{
*
Num1
=
*
Num2
=
*
Num3
=
*
Num4
=
-
1
;
// read name
while
(
*
pBuffer
&&
*
pBuffer
!=
' '
)
pBuffer
++
;
if
(
!*
pBuffer
)
return
0
;
assert
(
*
pBuffer
==
' '
);
*
pBuffer
=
0
;
// read Num1
*
Num1
=
atoi
(
++
pBuffer
);
while
(
*
pBuffer
&&
*
pBuffer
!=
' '
)
pBuffer
++
;
if
(
!*
pBuffer
)
return
0
;
// read Num2
assert
(
*
pBuffer
==
' '
);
*
Num2
=
atoi
(
++
pBuffer
);
while
(
*
pBuffer
&&
*
pBuffer
!=
' '
)
pBuffer
++
;
if
(
!*
pBuffer
)
return
1
;
// read Num3
assert
(
*
pBuffer
==
' '
);
*
Num3
=
atoi
(
++
pBuffer
);
while
(
*
pBuffer
&&
*
pBuffer
!=
' '
)
pBuffer
++
;
if
(
!*
pBuffer
)
return
1
;
// read Num4
assert
(
*
pBuffer
==
' '
);
*
Num4
=
atoi
(
++
pBuffer
);
return
1
;
}
void
Cba_ManReadCbaVecStr
(
Vec_Str_t
*
vOut
,
int
*
pPos
,
Vec_Str_t
*
p
,
int
nSize
)
{
memcpy
(
Vec_StrArray
(
p
),
Vec_StrArray
(
vOut
)
+
*
pPos
,
nSize
);
*
pPos
+=
nSize
;
p
->
nSize
=
nSize
;
assert
(
Vec_StrSize
(
p
)
==
Vec_StrCap
(
p
)
);
}
void
Cba_ManReadCbaVecInt
(
Vec_Str_t
*
vOut
,
int
*
pPos
,
Vec_Int_t
*
p
,
int
nSize
)
{
memcpy
(
Vec_IntArray
(
p
),
Vec_StrArray
(
vOut
)
+
*
pPos
,
nSize
);
*
pPos
+=
nSize
;
p
->
nSize
=
nSize
/
4
;
assert
(
Vec_IntSize
(
p
)
==
Vec_IntCap
(
p
)
);
}
void
Cba_ManReadCbaNtk
(
Vec_Str_t
*
vOut
,
int
*
pPos
,
Cba_Ntk_t
*
pNtk
)
{
int
i
,
Type
;
//char * pName; int iObj, NameId;
Cba_ManReadCbaVecStr
(
vOut
,
pPos
,
&
pNtk
->
vType
,
Cba_NtkObjNumAlloc
(
pNtk
)
);
Cba_ManReadCbaVecInt
(
vOut
,
pPos
,
&
pNtk
->
vFanin
,
4
*
Cba_NtkObjNumAlloc
(
pNtk
)
);
Cba_ManReadCbaVecInt
(
vOut
,
pPos
,
&
pNtk
->
vInfo
,
12
*
Cba_NtkInfoNumAlloc
(
pNtk
)
);
Cba_NtkForEachObjType
(
pNtk
,
Type
,
i
)
{
if
(
Type
==
CBA_OBJ_PI
)
Vec_IntPush
(
&
pNtk
->
vInputs
,
i
);
if
(
Type
==
CBA_OBJ_PO
)
Vec_IntPush
(
&
pNtk
->
vOutputs
,
i
);
}
assert
(
Cba_NtkPiNum
(
pNtk
)
==
Cba_NtkPiNumAlloc
(
pNtk
)
);
assert
(
Cba_NtkPoNum
(
pNtk
)
==
Cba_NtkPoNumAlloc
(
pNtk
)
);
assert
(
Cba_NtkObjNum
(
pNtk
)
==
Cba_NtkObjNumAlloc
(
pNtk
)
);
assert
(
Cba_NtkInfoNum
(
pNtk
)
==
Cba_NtkInfoNumAlloc
(
pNtk
)
);
/*
// read input/output/box names
Cba_NtkForEachPiMain( pNtk, iObj, i )
{
pName = Vec_StrEntryP( vOut, Pos );
NameId = Abc_NamStrFindOrAdd( p->pStrs, pName, NULL );
Pos += strlen(pName) + 1;
}
Cba_NtkForEachPoMain( pNtk, iObj, i )
{
pName = Vec_StrEntryP( vOut, Pos );
NameId = Abc_NamStrFindOrAdd( p->pStrs, pName, NULL );
Pos += strlen(pName) + 1;
}
Cba_NtkForEachBox( pNtk, iObj )
{
pName = Vec_StrEntryP( vOut, Pos );
NameId = Abc_NamStrFindOrAdd( p->pStrs, pName, NULL );
Pos += strlen(pName) + 1;
}
*/
}
Cba_Man_t
*
Cba_ManReadCbaInt
(
Vec_Str_t
*
vOut
)
{
Cba_Man_t
*
p
;
Cba_Ntk_t
*
pNtk
;
char
Buffer
[
1000
]
=
"#"
;
int
i
,
NameId
,
Pos
=
0
,
nNtks
,
Num1
,
Num2
,
Num3
,
Num4
;
while
(
Buffer
[
0
]
==
'#'
)
if
(
!
CbaManReadCbaLine
(
vOut
,
&
Pos
,
Buffer
,
Buffer
+
1000
)
)
return
NULL
;
if
(
!
CbaManReadCbaNameAndNums
(
Buffer
,
&
nNtks
,
&
Num2
,
&
Num3
,
&
Num4
)
)
return
NULL
;
// start manager
assert
(
nNtks
>
0
);
p
=
Cba_ManAlloc
(
Buffer
,
nNtks
);
// start networks
Cba_ManForEachNtk
(
p
,
pNtk
,
i
)
{
if
(
!
CbaManReadCbaLine
(
vOut
,
&
Pos
,
Buffer
,
Buffer
+
1000
)
)
{
Cba_ManFree
(
p
);
return
NULL
;
}
if
(
!
CbaManReadCbaNameAndNums
(
Buffer
,
&
Num1
,
&
Num2
,
&
Num3
,
&
Num4
)
)
{
Cba_ManFree
(
p
);
return
NULL
;
}
assert
(
Num1
>=
0
&&
Num2
>=
0
&&
Num3
>=
0
);
NameId
=
Abc_NamStrFindOrAdd
(
p
->
pStrs
,
Buffer
,
NULL
);
Cba_NtkAlloc
(
pNtk
,
NameId
,
Num1
,
Num2
,
Num3
);
Vec_IntFill
(
&
pNtk
->
vInfo
,
3
*
Num4
,
-
1
);
}
// read networks
Cba_ManForEachNtk
(
p
,
pNtk
,
i
)
Cba_ManReadCbaNtk
(
vOut
,
&
Pos
,
pNtk
);
assert
(
Cba_ManNtkNum
(
p
)
==
nNtks
);
assert
(
Pos
==
Vec_StrSize
(
vOut
)
);
return
p
;
}
Cba_Man_t
*
Cba_ManReadCba
(
char
*
pFileName
)
{
Cba_Man_t
*
p
;
FILE
*
pFile
;
Vec_Str_t
*
vOut
;
int
nFileSize
;
pFile
=
fopen
(
pFileName
,
"rb"
);
if
(
pFile
==
NULL
)
{
printf
(
"Cannot open file
\"
%s
\"
for reading.
\n
"
,
pFileName
);
return
NULL
;
}
// get the file size, in bytes
fseek
(
pFile
,
0
,
SEEK_END
);
nFileSize
=
ftell
(
pFile
);
rewind
(
pFile
);
// load the contents
vOut
=
Vec_StrAlloc
(
nFileSize
);
vOut
->
nSize
=
vOut
->
nCap
;
assert
(
nFileSize
==
Vec_StrSize
(
vOut
)
);
nFileSize
=
fread
(
Vec_StrArray
(
vOut
),
1
,
Vec_StrSize
(
vOut
),
pFile
);
assert
(
nFileSize
==
Vec_StrSize
(
vOut
)
);
fclose
(
pFile
);
// read the networks
p
=
Cba_ManReadCbaInt
(
vOut
);
if
(
p
!=
NULL
)
{
ABC_FREE
(
p
->
pSpec
);
p
->
pSpec
=
Abc_UtilStrsav
(
pFileName
);
}
Vec_StrFree
(
vOut
);
return
p
;
}
/**Function*************************************************************
Synopsis [Write CBA.]
Description []
SideEffects []
SeeAlso []
***********************************************************************/
void
Cba_ManWriteCbaNtk
(
Vec_Str_t
*
vOut
,
Cba_Ntk_t
*
pNtk
)
{
//char * pName; int iObj, NameId;
Vec_StrPushBuffer
(
vOut
,
(
char
*
)
Vec_StrArray
(
&
pNtk
->
vType
),
Cba_NtkObjNum
(
pNtk
)
);
Vec_StrPushBuffer
(
vOut
,
(
char
*
)
Vec_IntArray
(
&
pNtk
->
vFanin
),
4
*
Cba_NtkObjNum
(
pNtk
)
);
Vec_StrPushBuffer
(
vOut
,
(
char
*
)
Vec_IntArray
(
&
pNtk
->
vInfo
),
12
*
Cba_NtkInfoNum
(
pNtk
)
);
/*
// write input/output/box names
Cba_NtkForEachPiMain( pNtk, iObj, i )
{
pName = Cba_ObjNameStr( pNtk, iObj );
Vec_StrPrintStr( vOut, pName );
Vec_StrPush( vOut, '\0' );
}
Cba_NtkForEachPoMain( pNtk, iObj, i )
{
pName = Cba_ObjNameStr( pNtk, iObj );
Vec_StrPrintStr( vOut, pName );
Vec_StrPush( vOut, '\0' );
}
Cba_NtkForEachBox( pNtk, iObj )
{
pName = Cba_ObjNameStr( pNtk, iObj );
Vec_StrPrintStr( vOut, pName );
Vec_StrPush( vOut, '\0' );
}
*/
}
void
Cba_ManWriteCbaInt
(
Vec_Str_t
*
vOut
,
Cba_Man_t
*
p
)
{
char
Buffer
[
1000
];
Cba_Ntk_t
*
pNtk
;
int
i
;
sprintf
(
Buffer
,
"# Design
\"
%s
\"
written by ABC on %s
\n
"
,
Cba_ManName
(
p
),
Extra_TimeStamp
()
);
Vec_StrPrintStr
(
vOut
,
Buffer
);
// write short info
sprintf
(
Buffer
,
"%s %d
\n
"
,
Cba_ManName
(
p
),
Cba_ManNtkNum
(
p
)
);
Vec_StrPrintStr
(
vOut
,
Buffer
);
Cba_ManForEachNtk
(
p
,
pNtk
,
i
)
{
sprintf
(
Buffer
,
"%s %d %d %d %d
\n
"
,
Cba_NtkName
(
pNtk
),
Cba_NtkPiNum
(
pNtk
),
Cba_NtkPoNum
(
pNtk
),
Cba_NtkObjNum
(
pNtk
),
Cba_NtkInfoNum
(
pNtk
)
);
Vec_StrPrintStr
(
vOut
,
Buffer
);
}
Cba_ManForEachNtk
(
p
,
pNtk
,
i
)
Cba_ManWriteCbaNtk
(
vOut
,
pNtk
);
}
void
Cba_ManWriteCba
(
char
*
pFileName
,
Cba_Man_t
*
p
)
{
Vec_Str_t
*
vOut
;
assert
(
p
->
pMioLib
==
NULL
);
vOut
=
Vec_StrAlloc
(
10000
);
Cba_ManWriteCbaInt
(
vOut
,
p
);
if
(
Vec_StrSize
(
vOut
)
>
0
)
{
FILE
*
pFile
=
fopen
(
pFileName
,
"wb"
);
if
(
pFile
==
NULL
)
printf
(
"Cannot open file
\"
%s
\"
for writing.
\n
"
,
pFileName
);
else
{
fwrite
(
Vec_StrArray
(
vOut
),
1
,
Vec_StrSize
(
vOut
),
pFile
);
fclose
(
pFile
);
}
}
Vec_StrFree
(
vOut
);
}
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
/// END OF FILE ///
/// END OF FILE ///
...
...
src/base/cba/cbaCom.c
View file @
477ecc17
...
@@ -47,48 +47,6 @@ static inline void Cba_AbcUpdateMan( Abc_Frame_t * pAbc, Cba_Man_t * p )
...
@@ -47,48 +47,6 @@ static inline void Cba_AbcUpdateMan( Abc_Frame_t * pAbc, Cba_Man_t * p )
/**Function********************************************************************
/**Function********************************************************************
Synopsis [Accessing current Cba_Ntk_t.]
Description []
SideEffects []
SeeAlso []
******************************************************************************/
void
Abc_FrameImportPtr
(
Vec_Ptr_t
*
vPtr
)
{
Cba_Man_t
*
p
;
if
(
Abc_FrameGetGlobalFrame
()
==
NULL
)
{
printf
(
"ABC framework is not started.
\n
"
);
return
;
}
p
=
Cba_PtrTransformToCba
(
vPtr
);
if
(
p
==
NULL
)
printf
(
"Converting from Ptr failed.
\n
"
);
Cba_AbcUpdateMan
(
Abc_FrameGetGlobalFrame
(),
p
);
}
Vec_Ptr_t
*
Abc_FrameExportPtr
()
{
Vec_Ptr_t
*
vPtr
;
Cba_Man_t
*
p
;
if
(
Abc_FrameGetGlobalFrame
()
==
NULL
)
{
printf
(
"ABC framework is not started.
\n
"
);
return
NULL
;
}
p
=
Cba_AbcGetMan
(
Abc_FrameGetGlobalFrame
()
);
if
(
p
==
NULL
)
printf
(
"There is no CBA design present.
\n
"
);
vPtr
=
Cba_PtrDeriveFromCba
(
p
);
if
(
vPtr
==
NULL
)
printf
(
"Converting to Ptr has failed.
\n
"
);
return
vPtr
;
}
/**Function********************************************************************
Synopsis []
Synopsis []
Description []
Description []
...
@@ -181,6 +139,8 @@ int Cba_CommandRead( Abc_Frame_t * pAbc, int argc, char ** argv )
...
@@ -181,6 +139,8 @@ int Cba_CommandRead( Abc_Frame_t * pAbc, int argc, char ** argv )
return
0
;
return
0
;
}
}
fclose
(
pFile
);
fclose
(
pFile
);
#if 0
// perform reading
// perform reading
if ( fUseAbc || fUsePtr )
if ( fUseAbc || fUsePtr )
{
{
...
@@ -230,6 +190,8 @@ int Cba_CommandRead( Abc_Frame_t * pAbc, int argc, char ** argv )
...
@@ -230,6 +190,8 @@ int Cba_CommandRead( Abc_Frame_t * pAbc, int argc, char ** argv )
return 0;
return 0;
}
}
Cba_AbcUpdateMan( pAbc, p );
Cba_AbcUpdateMan( pAbc, p );
#endif
return
0
;
return
0
;
usage:
usage:
Abc_Print
(
-
2
,
"usage: @read [-apvh] <file_name>
\n
"
);
Abc_Print
(
-
2
,
"usage: @read [-apvh] <file_name>
\n
"
);
...
@@ -284,6 +246,8 @@ int Cba_CommandWrite( Abc_Frame_t * pAbc, int argc, char ** argv )
...
@@ -284,6 +246,8 @@ int Cba_CommandWrite( Abc_Frame_t * pAbc, int argc, char ** argv )
Abc_Print
(
1
,
"Cba_CommandWrite(): There is no current design.
\n
"
);
Abc_Print
(
1
,
"Cba_CommandWrite(): There is no current design.
\n
"
);
return
0
;
return
0
;
}
}
#if 0
if ( argc == globalUtilOptind + 1 )
if ( argc == globalUtilOptind + 1 )
pFileName = argv[globalUtilOptind];
pFileName = argv[globalUtilOptind];
else if ( argc == globalUtilOptind && p )
else if ( argc == globalUtilOptind && p )
...
@@ -319,6 +283,8 @@ int Cba_CommandWrite( Abc_Frame_t * pAbc, int argc, char ** argv )
...
@@ -319,6 +283,8 @@ int Cba_CommandWrite( Abc_Frame_t * pAbc, int argc, char ** argv )
printf( "Unrecognized output file extension.\n" );
printf( "Unrecognized output file extension.\n" );
return 0;
return 0;
}
}
#endif
return
0
;
return
0
;
usage:
usage:
Abc_Print
(
-
2
,
"usage: @write [-apvh]
\n
"
);
Abc_Print
(
-
2
,
"usage: @write [-apvh]
\n
"
);
...
@@ -376,7 +342,11 @@ int Cba_CommandPs( Abc_Frame_t * pAbc, int argc, char ** argv )
...
@@ -376,7 +342,11 @@ int Cba_CommandPs( Abc_Frame_t * pAbc, int argc, char ** argv )
Abc_Print
(
1
,
"Cba_CommandPs(): There is no current design.
\n
"
);
Abc_Print
(
1
,
"Cba_CommandPs(): There is no current design.
\n
"
);
return
0
;
return
0
;
}
}
#if 0
Cba_ManPrintStats( p, nModules, fVerbose );
Cba_ManPrintStats( p, nModules, fVerbose );
#endif
return
0
;
return
0
;
usage:
usage:
Abc_Print
(
-
2
,
"usage: @ps [-M num] [-vh]
\n
"
);
Abc_Print
(
-
2
,
"usage: @ps [-M num] [-vh]
\n
"
);
...
@@ -425,6 +395,8 @@ int Cba_CommandPut( Abc_Frame_t * pAbc, int argc, char ** argv )
...
@@ -425,6 +395,8 @@ int Cba_CommandPut( Abc_Frame_t * pAbc, int argc, char ** argv )
Abc_Print
(
1
,
"Cba_CommandPut(): There is no current design.
\n
"
);
Abc_Print
(
1
,
"Cba_CommandPut(): There is no current design.
\n
"
);
return
0
;
return
0
;
}
}
#if 0
pGia = Cba_ManExtract( p, fBarBufs, fVerbose );
pGia = Cba_ManExtract( p, fBarBufs, fVerbose );
if ( pGia == NULL )
if ( pGia == NULL )
{
{
...
@@ -432,6 +404,8 @@ int Cba_CommandPut( Abc_Frame_t * pAbc, int argc, char ** argv )
...
@@ -432,6 +404,8 @@ int Cba_CommandPut( Abc_Frame_t * pAbc, int argc, char ** argv )
return 0;
return 0;
}
}
Abc_FrameUpdateGia( pAbc, pGia );
Abc_FrameUpdateGia( pAbc, pGia );
#endif
return
0
;
return
0
;
usage:
usage:
Abc_Print
(
-
2
,
"usage: @put [-bvh]
\n
"
);
Abc_Print
(
-
2
,
"usage: @put [-bvh]
\n
"
);
...
@@ -479,6 +453,8 @@ int Cba_CommandGet( Abc_Frame_t * pAbc, int argc, char ** argv )
...
@@ -479,6 +453,8 @@ int Cba_CommandGet( Abc_Frame_t * pAbc, int argc, char ** argv )
Abc_Print
(
1
,
"Cba_CommandGet(): There is no current design.
\n
"
);
Abc_Print
(
1
,
"Cba_CommandGet(): There is no current design.
\n
"
);
return
0
;
return
0
;
}
}
#if 0
if ( fMapped )
if ( fMapped )
{
{
if ( pAbc->pNtkCur == NULL )
if ( pAbc->pNtkCur == NULL )
...
@@ -498,10 +474,12 @@ int Cba_CommandGet( Abc_Frame_t * pAbc, int argc, char ** argv )
...
@@ -498,10 +474,12 @@ int Cba_CommandGet( Abc_Frame_t * pAbc, int argc, char ** argv )
pNew = Cba_ManInsertGia( p, pAbc->pGia );
pNew = Cba_ManInsertGia( p, pAbc->pGia );
}
}
Cba_AbcUpdateMan( pAbc, pNew );
Cba_AbcUpdateMan( pAbc, pNew );
#endif
return
0
;
return
0
;
usage:
usage:
Abc_Print
(
-
2
,
"usage: @get [-mvh]
\n
"
);
Abc_Print
(
-
2
,
"usage: @get [-mvh]
\n
"
);
Abc_Print
(
-
2
,
"
\t
inser
ts AIG or mapped network into the hierarchical design
\n
"
);
Abc_Print
(
-
2
,
"
\t
extrac
ts AIG or mapped network into the hierarchical design
\n
"
);
Abc_Print
(
-
2
,
"
\t
-m : toggle using mapped network from main-space [default = %s]
\n
"
,
fMapped
?
"yes"
:
"no"
);
Abc_Print
(
-
2
,
"
\t
-m : toggle using mapped network from main-space [default = %s]
\n
"
,
fMapped
?
"yes"
:
"no"
);
Abc_Print
(
-
2
,
"
\t
-v : toggle printing verbose information [default = %s]
\n
"
,
fVerbose
?
"yes"
:
"no"
);
Abc_Print
(
-
2
,
"
\t
-v : toggle printing verbose information [default = %s]
\n
"
,
fVerbose
?
"yes"
:
"no"
);
Abc_Print
(
-
2
,
"
\t
-h : print the command usage
\n
"
);
Abc_Print
(
-
2
,
"
\t
-h : print the command usage
\n
"
);
...
@@ -542,8 +520,12 @@ int Cba_CommandClp( Abc_Frame_t * pAbc, int argc, char ** argv )
...
@@ -542,8 +520,12 @@ int Cba_CommandClp( Abc_Frame_t * pAbc, int argc, char ** argv )
Abc_Print
(
1
,
"Cba_CommandGet(): There is no current design.
\n
"
);
Abc_Print
(
1
,
"Cba_CommandGet(): There is no current design.
\n
"
);
return
0
;
return
0
;
}
}
#if 0
pNew = Cba_ManCollapse( p );
pNew = Cba_ManCollapse( p );
Cba_AbcUpdateMan( pAbc, pNew );
Cba_AbcUpdateMan( pAbc, pNew );
#endif
return
0
;
return
0
;
usage:
usage:
Abc_Print
(
-
2
,
"usage: @clp [-vh]
\n
"
);
Abc_Print
(
-
2
,
"usage: @clp [-vh]
\n
"
);
...
@@ -593,6 +575,8 @@ int Cba_CommandCec( Abc_Frame_t * pAbc, int argc, char ** argv )
...
@@ -593,6 +575,8 @@ int Cba_CommandCec( Abc_Frame_t * pAbc, int argc, char ** argv )
Abc_Print
(
1
,
"Cba_CommandCec(): There is no current design.
\n
"
);
Abc_Print
(
1
,
"Cba_CommandCec(): There is no current design.
\n
"
);
return
0
;
return
0
;
}
}
#if 0
pArgvNew = argv + globalUtilOptind;
pArgvNew = argv + globalUtilOptind;
nArgcNew = argc - globalUtilOptind;
nArgcNew = argc - globalUtilOptind;
if ( nArgcNew != 1 )
if ( nArgcNew != 1 )
...
@@ -658,6 +642,8 @@ int Cba_CommandCec( Abc_Frame_t * pAbc, int argc, char ** argv )
...
@@ -658,6 +642,8 @@ int Cba_CommandCec( Abc_Frame_t * pAbc, int argc, char ** argv )
}
}
Gia_ManStop( pFirst );
Gia_ManStop( pFirst );
Gia_ManStop( pSecond );
Gia_ManStop( pSecond );
#endif
return
0
;
return
0
;
usage:
usage:
Abc_Print
(
-
2
,
"usage: @cec [-vh]
\n
"
);
Abc_Print
(
-
2
,
"usage: @cec [-vh]
\n
"
);
...
@@ -680,10 +666,7 @@ usage:
...
@@ -680,10 +666,7 @@ usage:
******************************************************************************/
******************************************************************************/
int
Cba_CommandTest
(
Abc_Frame_t
*
pAbc
,
int
argc
,
char
**
argv
)
int
Cba_CommandTest
(
Abc_Frame_t
*
pAbc
,
int
argc
,
char
**
argv
)
{
{
extern
void
Prs_ManReadBlifTest
();
Cba_Man_t
*
p
=
Cba_AbcGetMan
(
pAbc
);
extern
void
Prs_ManReadVerilogTest
();
extern
void
Prs_SmtReadSmtTest
();
//Cba_Man_t * p = Cba_AbcGetMan(pAbc);
int
c
,
fVerbose
=
0
;
int
c
,
fVerbose
=
0
;
Extra_UtilGetoptReset
();
Extra_UtilGetoptReset
();
while
(
(
c
=
Extra_UtilGetopt
(
argc
,
argv
,
"vh"
)
)
!=
EOF
)
while
(
(
c
=
Extra_UtilGetopt
(
argc
,
argv
,
"vh"
)
)
!=
EOF
)
...
@@ -699,16 +682,11 @@ int Cba_CommandTest( Abc_Frame_t * pAbc, int argc, char ** argv )
...
@@ -699,16 +682,11 @@ int Cba_CommandTest( Abc_Frame_t * pAbc, int argc, char ** argv )
goto
usage
;
goto
usage
;
}
}
}
}
/*
if
(
p
==
NULL
)
if
(
p
==
NULL
)
{
{
Abc_Print
(
1
,
"Cba_CommandTest(): There is no current design.
\n
"
);
Abc_Print
(
1
,
"Cba_CommandTest(): There is no current design.
\n
"
);
return
0
;
return
0
;
}
}
*/
//Cba_PtrTransformTestTest();
//Prs_ManReadVerilogTest();
//Prs_SmtReadSmtTest();
return
0
;
return
0
;
usage:
usage:
Abc_Print
(
-
2
,
"usage: @test [-vh]
\n
"
);
Abc_Print
(
-
2
,
"usage: @test [-vh]
\n
"
);
...
...
src/base/cba/cbaNtk.c
View file @
477ecc17
This diff is collapsed.
Click to expand it.
src/base/cba/cbaPrs.h
View file @
477ecc17
...
@@ -288,6 +288,14 @@ static inline void Prs_NtkFree( Prs_Ntk_t * p )
...
@@ -288,6 +288,14 @@ static inline void Prs_NtkFree( Prs_Ntk_t * p )
ABC_FREE
(
p
);
ABC_FREE
(
p
);
}
}
static
inline
void
Prs_ManVecFree
(
Vec_Ptr_t
*
vPrs
)
{
Prs_Ntk_t
*
pNtk
;
int
i
;
Vec_PtrForEachEntry
(
Prs_Ntk_t
*
,
vPrs
,
pNtk
,
i
)
Prs_NtkFree
(
pNtk
);
Vec_PtrFree
(
vPrs
);
}
static
inline
void
Prs_ManFree
(
Prs_Man_t
*
p
)
static
inline
void
Prs_ManFree
(
Prs_Man_t
*
p
)
{
{
if
(
p
->
pStrs
)
if
(
p
->
pStrs
)
...
@@ -333,6 +341,100 @@ static inline int Prs_ManMemory( Vec_Ptr_t * vPrs )
...
@@ -333,6 +341,100 @@ static inline int Prs_ManMemory( Vec_Ptr_t * vPrs )
}
}
/**Function*************************************************************
Synopsis [Other APIs.]
Description []
SideEffects []
SeeAlso []
***********************************************************************/
static
inline
Cba_ObjType_t
Ptr_SopToType
(
char
*
pSop
)
{
if
(
!
strcmp
(
pSop
,
" 0
\n
"
)
)
return
CBA_BOX_CF
;
if
(
!
strcmp
(
pSop
,
" 1
\n
"
)
)
return
CBA_BOX_CT
;
if
(
!
strcmp
(
pSop
,
"1 1
\n
"
)
)
return
CBA_BOX_BUF
;
if
(
!
strcmp
(
pSop
,
"0 1
\n
"
)
)
return
CBA_BOX_INV
;
if
(
!
strcmp
(
pSop
,
"11 1
\n
"
)
)
return
CBA_BOX_AND
;
if
(
!
strcmp
(
pSop
,
"00 1
\n
"
)
)
return
CBA_BOX_NOR
;
if
(
!
strcmp
(
pSop
,
"00 0
\n
"
)
)
return
CBA_BOX_OR
;
if
(
!
strcmp
(
pSop
,
"-1 1
\n
1- 1
\n
"
)
)
return
CBA_BOX_OR
;
if
(
!
strcmp
(
pSop
,
"1- 1
\n
-1 1
\n
"
)
)
return
CBA_BOX_OR
;
if
(
!
strcmp
(
pSop
,
"01 1
\n
10 1
\n
"
)
)
return
CBA_BOX_XOR
;
if
(
!
strcmp
(
pSop
,
"10 1
\n
01 1
\n
"
)
)
return
CBA_BOX_XOR
;
if
(
!
strcmp
(
pSop
,
"11 1
\n
00 1
\n
"
)
)
return
CBA_BOX_XNOR
;
if
(
!
strcmp
(
pSop
,
"00 1
\n
11 1
\n
"
)
)
return
CBA_BOX_XNOR
;
if
(
!
strcmp
(
pSop
,
"10 1
\n
"
)
)
return
CBA_BOX_SHARP
;
if
(
!
strcmp
(
pSop
,
"01 1
\n
"
)
)
return
CBA_BOX_SHARPL
;
assert
(
0
);
return
CBA_OBJ_NONE
;
}
static
inline
char
*
Ptr_SopToTypeName
(
char
*
pSop
)
{
if
(
!
strcmp
(
pSop
,
" 0
\n
"
)
)
return
"CBA_BOX_C0"
;
if
(
!
strcmp
(
pSop
,
" 1
\n
"
)
)
return
"CBA_BOX_C1"
;
if
(
!
strcmp
(
pSop
,
"1 1
\n
"
)
)
return
"CBA_BOX_BUF"
;
if
(
!
strcmp
(
pSop
,
"0 1
\n
"
)
)
return
"CBA_BOX_INV"
;
if
(
!
strcmp
(
pSop
,
"11 1
\n
"
)
)
return
"CBA_BOX_AND"
;
if
(
!
strcmp
(
pSop
,
"00 1
\n
"
)
)
return
"CBA_BOX_NOR"
;
if
(
!
strcmp
(
pSop
,
"00 0
\n
"
)
)
return
"CBA_BOX_OR"
;
if
(
!
strcmp
(
pSop
,
"-1 1
\n
1- 1
\n
"
)
)
return
"CBA_BOX_OR"
;
if
(
!
strcmp
(
pSop
,
"1- 1
\n
-1 1
\n
"
)
)
return
"CBA_BOX_OR"
;
if
(
!
strcmp
(
pSop
,
"01 1
\n
10 1
\n
"
)
)
return
"CBA_BOX_XOR"
;
if
(
!
strcmp
(
pSop
,
"10 1
\n
01 1
\n
"
)
)
return
"CBA_BOX_XOR"
;
if
(
!
strcmp
(
pSop
,
"11 1
\n
00 1
\n
"
)
)
return
"CBA_BOX_XNOR"
;
if
(
!
strcmp
(
pSop
,
"00 1
\n
11 1
\n
"
)
)
return
"CBA_BOX_XNOR"
;
if
(
!
strcmp
(
pSop
,
"10 1
\n
"
)
)
return
"CBA_BOX_SHARP"
;
if
(
!
strcmp
(
pSop
,
"01 1
\n
"
)
)
return
"CBA_BOX_SHARPL"
;
assert
(
0
);
return
NULL
;
}
static
inline
char
*
Ptr_TypeToName
(
Cba_ObjType_t
Type
)
{
if
(
Type
==
CBA_BOX_CF
)
return
"const0"
;
if
(
Type
==
CBA_BOX_CT
)
return
"const1"
;
if
(
Type
==
CBA_BOX_CX
)
return
"constX"
;
if
(
Type
==
CBA_BOX_CZ
)
return
"constZ"
;
if
(
Type
==
CBA_BOX_BUF
)
return
"buf"
;
if
(
Type
==
CBA_BOX_INV
)
return
"not"
;
if
(
Type
==
CBA_BOX_AND
)
return
"and"
;
if
(
Type
==
CBA_BOX_NAND
)
return
"nand"
;
if
(
Type
==
CBA_BOX_OR
)
return
"or"
;
if
(
Type
==
CBA_BOX_NOR
)
return
"nor"
;
if
(
Type
==
CBA_BOX_XOR
)
return
"xor"
;
if
(
Type
==
CBA_BOX_XNOR
)
return
"xnor"
;
if
(
Type
==
CBA_BOX_MUX
)
return
"mux"
;
if
(
Type
==
CBA_BOX_MAJ
)
return
"maj"
;
if
(
Type
==
CBA_BOX_SHARP
)
return
"sharp"
;
if
(
Type
==
CBA_BOX_SHARPL
)
return
"sharpl"
;
assert
(
0
);
return
"???"
;
}
static
inline
char
*
Ptr_TypeToSop
(
Cba_ObjType_t
Type
)
{
if
(
Type
==
CBA_BOX_CF
)
return
" 0
\n
"
;
if
(
Type
==
CBA_BOX_CT
)
return
" 1
\n
"
;
if
(
Type
==
CBA_BOX_CX
)
return
" 0
\n
"
;
if
(
Type
==
CBA_BOX_CZ
)
return
" 0
\n
"
;
if
(
Type
==
CBA_BOX_BUF
)
return
"1 1
\n
"
;
if
(
Type
==
CBA_BOX_INV
)
return
"0 1
\n
"
;
if
(
Type
==
CBA_BOX_AND
)
return
"11 1
\n
"
;
if
(
Type
==
CBA_BOX_NAND
)
return
"11 0
\n
"
;
if
(
Type
==
CBA_BOX_OR
)
return
"00 0
\n
"
;
if
(
Type
==
CBA_BOX_NOR
)
return
"00 1
\n
"
;
if
(
Type
==
CBA_BOX_XOR
)
return
"01 1
\n
10 1
\n
"
;
if
(
Type
==
CBA_BOX_XNOR
)
return
"00 1
\n
11 1
\n
"
;
if
(
Type
==
CBA_BOX_SHARP
)
return
"10 1
\n
"
;
if
(
Type
==
CBA_BOX_SHARPL
)
return
"01 1
\n
"
;
if
(
Type
==
CBA_BOX_MUX
)
return
"11- 1
\n
0-1 1
\n
"
;
if
(
Type
==
CBA_BOX_MAJ
)
return
"11- 1
\n
1-1 1
\n
-11 1
\n
"
;
assert
(
0
);
return
"???"
;
}
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
/// ITERATORS ///
/// ITERATORS ///
...
...
src/base/cba/cbaReadBlif.c
View file @
477ecc17
...
@@ -43,7 +43,7 @@ typedef enum {
...
@@ -43,7 +43,7 @@ typedef enum {
PRS_BLIF_UNKNOWN
// 11: unknown
PRS_BLIF_UNKNOWN
// 11: unknown
}
Cba_BlifType_t
;
}
Cba_BlifType_t
;
const
char
*
s_BlifTypes
[
PRS_BLIF_UNKNOWN
+
1
]
=
{
static
const
char
*
s_BlifTypes
[
PRS_BLIF_UNKNOWN
+
1
]
=
{
NULL
,
// 0: unused
NULL
,
// 0: unused
".model"
,
// 1: .model
".model"
,
// 1: .model
".inouts"
,
// 2: .inputs
".inouts"
,
// 2: .inputs
...
...
src/base/cba/cbaReadVer.c
View file @
477ecc17
...
@@ -45,7 +45,7 @@ typedef enum {
...
@@ -45,7 +45,7 @@ typedef enum {
PRS_VER_UNKNOWN
// 13: unknown
PRS_VER_UNKNOWN
// 13: unknown
}
Cba_VerType_t
;
}
Cba_VerType_t
;
const
char
*
s_VerTypes
[
PRS_VER_UNKNOWN
+
1
]
=
{
static
const
char
*
s_VerTypes
[
PRS_VER_UNKNOWN
+
1
]
=
{
NULL
,
// 0: unused
NULL
,
// 0: unused
"input"
,
// 1: input
"input"
,
// 1: input
"output"
,
// 2: output
"output"
,
// 2: output
...
@@ -101,7 +101,7 @@ static inline int Prs_ManIsDigit( Prs_Man_t * p ) { return Prs_CharIsD
...
@@ -101,7 +101,7 @@ static inline int Prs_ManIsDigit( Prs_Man_t * p ) { return Prs_CharIsD
***********************************************************************/
***********************************************************************/
// collect predefined modules names
// collect predefined modules names
const
char
*
s_VerilogModules
[
100
]
=
static
const
char
*
s_VerilogModules
[
100
]
=
{
{
"const0"
,
// CBA_BOX_CF,
"const0"
,
// CBA_BOX_CF,
"const1"
,
// CBA_BOX_CT,
"const1"
,
// CBA_BOX_CT,
...
@@ -120,7 +120,7 @@ const char * s_VerilogModules[100] =
...
@@ -120,7 +120,7 @@ const char * s_VerilogModules[100] =
"maj"
,
// CBA_BOX_MAJ,
"maj"
,
// CBA_BOX_MAJ,
NULL
NULL
};
};
const
char
*
s_KnownModules
[
100
]
=
static
const
char
*
s_KnownModules
[
100
]
=
{
{
"VERIFIC_"
,
"VERIFIC_"
,
"add_"
,
"add_"
,
...
@@ -447,7 +447,7 @@ static inline int Prs_ManReadSignal( Prs_Man_t * p )
...
@@ -447,7 +447,7 @@ static inline int Prs_ManReadSignal( Prs_Man_t * p )
return
Abc_Var2Lit2
(
Item
,
CBA_PRS_NAME
);
return
Abc_Var2Lit2
(
Item
,
CBA_PRS_NAME
);
}
}
}
}
int
Prs_ManReadSignalList
(
Prs_Man_t
*
p
,
Vec_Int_t
*
vTemp
,
char
LastSymb
,
int
fAddForm
)
static
int
Prs_ManReadSignalList
(
Prs_Man_t
*
p
,
Vec_Int_t
*
vTemp
,
char
LastSymb
,
int
fAddForm
)
{
{
Vec_IntClear
(
vTemp
);
Vec_IntClear
(
vTemp
);
while
(
1
)
while
(
1
)
...
...
src/base/cba/cbaWriteBlif.c
View file @
477ecc17
...
@@ -44,14 +44,14 @@ ABC_NAMESPACE_IMPL_START
...
@@ -44,14 +44,14 @@ ABC_NAMESPACE_IMPL_START
SeeAlso []
SeeAlso []
***********************************************************************/
***********************************************************************/
void
Prs_ManWriteBlifArray
(
FILE
*
pFile
,
Prs_Ntk_t
*
p
,
Vec_Int_t
*
vFanins
)
static
void
Prs_ManWriteBlifArray
(
FILE
*
pFile
,
Prs_Ntk_t
*
p
,
Vec_Int_t
*
vFanins
)
{
{
int
i
,
NameId
;
int
i
,
NameId
;
Vec_IntForEachEntry
(
vFanins
,
NameId
,
i
)
Vec_IntForEachEntry
(
vFanins
,
NameId
,
i
)
fprintf
(
pFile
,
" %s"
,
Prs_NtkStr
(
p
,
NameId
)
);
fprintf
(
pFile
,
" %s"
,
Prs_NtkStr
(
p
,
NameId
)
);
fprintf
(
pFile
,
"
\n
"
);
fprintf
(
pFile
,
"
\n
"
);
}
}
void
Prs_ManWriteBlifLines
(
FILE
*
pFile
,
Prs_Ntk_t
*
p
)
static
void
Prs_ManWriteBlifLines
(
FILE
*
pFile
,
Prs_Ntk_t
*
p
)
{
{
Vec_Int_t
*
vBox
;
Vec_Int_t
*
vBox
;
int
i
,
k
,
FormId
,
ActId
;
int
i
,
k
,
FormId
,
ActId
;
...
@@ -84,7 +84,7 @@ void Prs_ManWriteBlifLines( FILE * pFile, Prs_Ntk_t * p )
...
@@ -84,7 +84,7 @@ void Prs_ManWriteBlifLines( FILE * pFile, Prs_Ntk_t * p )
}
}
}
}
}
}
void
Prs_ManWriteBlifNtk
(
FILE
*
pFile
,
Prs_Ntk_t
*
p
)
static
void
Prs_ManWriteBlifNtk
(
FILE
*
pFile
,
Prs_Ntk_t
*
p
)
{
{
// write header
// write header
fprintf
(
pFile
,
".model %s
\n
"
,
Prs_NtkStr
(
p
,
p
->
iModuleName
)
);
fprintf
(
pFile
,
".model %s
\n
"
,
Prs_NtkStr
(
p
,
p
->
iModuleName
)
);
...
@@ -116,6 +116,7 @@ void Prs_ManWriteBlif( char * pFileName, Vec_Ptr_t * vPrs )
...
@@ -116,6 +116,7 @@ void Prs_ManWriteBlif( char * pFileName, Vec_Ptr_t * vPrs )
}
}
#if 0
/**Function*************************************************************
/**Function*************************************************************
...
@@ -226,6 +227,7 @@ void Cba_ManWriteBlif( char * pFileName, Cba_Man_t * p )
...
@@ -226,6 +227,7 @@ void Cba_ManWriteBlif( char * pFileName, Cba_Man_t * p )
fclose( pFile );
fclose( pFile );
}
}
#endif
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
/// END OF FILE ///
/// END OF FILE ///
...
...
src/base/cba/cbaWriteVer.c
View file @
477ecc17
...
@@ -44,7 +44,7 @@ ABC_NAMESPACE_IMPL_START
...
@@ -44,7 +44,7 @@ ABC_NAMESPACE_IMPL_START
SeeAlso []
SeeAlso []
***********************************************************************/
***********************************************************************/
void
Prs_ManWriteVerilogConcat
(
FILE
*
pFile
,
Prs_Ntk_t
*
p
,
int
Con
)
static
void
Prs_ManWriteVerilogConcat
(
FILE
*
pFile
,
Prs_Ntk_t
*
p
,
int
Con
)
{
{
extern
void
Prs_ManWriteVerilogArray
(
FILE
*
pFile
,
Prs_Ntk_t
*
p
,
Vec_Int_t
*
vSigs
,
int
Start
,
int
Stop
,
int
fOdd
);
extern
void
Prs_ManWriteVerilogArray
(
FILE
*
pFile
,
Prs_Ntk_t
*
p
,
Vec_Int_t
*
vSigs
,
int
Start
,
int
Stop
,
int
fOdd
);
Vec_Int_t
*
vSigs
=
Prs_CatSignals
(
p
,
Con
);
Vec_Int_t
*
vSigs
=
Prs_CatSignals
(
p
,
Con
);
...
@@ -52,7 +52,7 @@ void Prs_ManWriteVerilogConcat( FILE * pFile, Prs_Ntk_t * p, int Con )
...
@@ -52,7 +52,7 @@ void Prs_ManWriteVerilogConcat( FILE * pFile, Prs_Ntk_t * p, int Con )
Prs_ManWriteVerilogArray
(
pFile
,
p
,
vSigs
,
0
,
Vec_IntSize
(
vSigs
),
0
);
Prs_ManWriteVerilogArray
(
pFile
,
p
,
vSigs
,
0
,
Vec_IntSize
(
vSigs
),
0
);
fprintf
(
pFile
,
"}"
);
fprintf
(
pFile
,
"}"
);
}
}
void
Prs_ManWriteVerilogSignal
(
FILE
*
pFile
,
Prs_Ntk_t
*
p
,
int
Sig
)
static
void
Prs_ManWriteVerilogSignal
(
FILE
*
pFile
,
Prs_Ntk_t
*
p
,
int
Sig
)
{
{
int
Value
=
Abc_Lit2Var2
(
Sig
);
int
Value
=
Abc_Lit2Var2
(
Sig
);
Prs_ManType_t
Type
=
(
Prs_ManType_t
)
Abc_Lit2Att2
(
Sig
);
Prs_ManType_t
Type
=
(
Prs_ManType_t
)
Abc_Lit2Att2
(
Sig
);
...
@@ -64,7 +64,7 @@ void Prs_ManWriteVerilogSignal( FILE * pFile, Prs_Ntk_t * p, int Sig )
...
@@ -64,7 +64,7 @@ void Prs_ManWriteVerilogSignal( FILE * pFile, Prs_Ntk_t * p, int Sig )
Prs_ManWriteVerilogConcat
(
pFile
,
p
,
Value
);
Prs_ManWriteVerilogConcat
(
pFile
,
p
,
Value
);
else
assert
(
0
);
else
assert
(
0
);
}
}
void
Prs_ManWriteVerilogArray
(
FILE
*
pFile
,
Prs_Ntk_t
*
p
,
Vec_Int_t
*
vSigs
,
int
Start
,
int
Stop
,
int
fOdd
)
static
void
Prs_ManWriteVerilogArray
(
FILE
*
pFile
,
Prs_Ntk_t
*
p
,
Vec_Int_t
*
vSigs
,
int
Start
,
int
Stop
,
int
fOdd
)
{
{
int
i
,
Sig
;
int
i
,
Sig
;
assert
(
Vec_IntSize
(
vSigs
)
>
0
);
assert
(
Vec_IntSize
(
vSigs
)
>
0
);
...
@@ -76,7 +76,7 @@ void Prs_ManWriteVerilogArray( FILE * pFile, Prs_Ntk_t * p, Vec_Int_t * vSigs, i
...
@@ -76,7 +76,7 @@ void Prs_ManWriteVerilogArray( FILE * pFile, Prs_Ntk_t * p, Vec_Int_t * vSigs, i
fprintf
(
pFile
,
"%s"
,
i
==
Stop
-
1
?
""
:
", "
);
fprintf
(
pFile
,
"%s"
,
i
==
Stop
-
1
?
""
:
", "
);
}
}
}
}
void
Prs_ManWriteVerilogArray2
(
FILE
*
pFile
,
Prs_Ntk_t
*
p
,
Vec_Int_t
*
vSigs
)
static
void
Prs_ManWriteVerilogArray2
(
FILE
*
pFile
,
Prs_Ntk_t
*
p
,
Vec_Int_t
*
vSigs
)
{
{
int
i
,
FormId
,
ActSig
;
int
i
,
FormId
,
ActSig
;
assert
(
Vec_IntSize
(
vSigs
)
%
2
==
0
);
assert
(
Vec_IntSize
(
vSigs
)
%
2
==
0
);
...
@@ -89,7 +89,7 @@ void Prs_ManWriteVerilogArray2( FILE * pFile, Prs_Ntk_t * p, Vec_Int_t * vSigs )
...
@@ -89,7 +89,7 @@ void Prs_ManWriteVerilogArray2( FILE * pFile, Prs_Ntk_t * p, Vec_Int_t * vSigs )
fprintf
(
pFile
,
")%s"
,
(
i
==
Vec_IntSize
(
vSigs
)
-
2
)
?
""
:
", "
);
fprintf
(
pFile
,
")%s"
,
(
i
==
Vec_IntSize
(
vSigs
)
-
2
)
?
""
:
", "
);
}
}
}
}
void
Prs_ManWriteVerilogMux
(
FILE
*
pFile
,
Prs_Ntk_t
*
p
,
Vec_Int_t
*
vSigs
)
static
void
Prs_ManWriteVerilogMux
(
FILE
*
pFile
,
Prs_Ntk_t
*
p
,
Vec_Int_t
*
vSigs
)
{
{
int
i
,
FormId
,
ActSig
;
int
i
,
FormId
,
ActSig
;
char
*
pStrs
[
4
]
=
{
" = "
,
" ? "
,
" : "
,
";
\n
"
};
char
*
pStrs
[
4
]
=
{
" = "
,
" ? "
,
" : "
,
";
\n
"
};
...
@@ -105,7 +105,7 @@ void Prs_ManWriteVerilogMux( FILE * pFile, Prs_Ntk_t * p, Vec_Int_t * vSigs )
...
@@ -105,7 +105,7 @@ void Prs_ManWriteVerilogMux( FILE * pFile, Prs_Ntk_t * p, Vec_Int_t * vSigs )
break
;
break
;
}
}
}
}
void
Prs_ManWriteVerilogBoxes
(
FILE
*
pFile
,
Prs_Ntk_t
*
p
)
static
void
Prs_ManWriteVerilogBoxes
(
FILE
*
pFile
,
Prs_Ntk_t
*
p
)
{
{
Vec_Int_t
*
vBox
;
int
i
;
Vec_Int_t
*
vBox
;
int
i
;
Prs_NtkForEachBox
(
p
,
vBox
,
i
)
Prs_NtkForEachBox
(
p
,
vBox
,
i
)
...
@@ -131,7 +131,7 @@ void Prs_ManWriteVerilogBoxes( FILE * pFile, Prs_Ntk_t * p )
...
@@ -131,7 +131,7 @@ void Prs_ManWriteVerilogBoxes( FILE * pFile, Prs_Ntk_t * p )
}
}
}
}
}
}
void
Prs_ManWriteVerilogIos
(
FILE
*
pFile
,
Prs_Ntk_t
*
p
,
int
SigType
)
static
void
Prs_ManWriteVerilogIos
(
FILE
*
pFile
,
Prs_Ntk_t
*
p
,
int
SigType
)
{
{
int
NameId
,
RangeId
,
i
;
int
NameId
,
RangeId
,
i
;
char
*
pSigNames
[
4
]
=
{
"inout"
,
"input"
,
"output"
,
"wire"
};
char
*
pSigNames
[
4
]
=
{
"inout"
,
"input"
,
"output"
,
"wire"
};
...
@@ -142,13 +142,13 @@ void Prs_ManWriteVerilogIos( FILE * pFile, Prs_Ntk_t * p, int SigType )
...
@@ -142,13 +142,13 @@ void Prs_ManWriteVerilogIos( FILE * pFile, Prs_Ntk_t * p, int SigType )
Vec_IntForEachEntryTwo
(
vSigs
[
SigType
],
vSigsR
[
SigType
],
NameId
,
RangeId
,
i
)
Vec_IntForEachEntryTwo
(
vSigs
[
SigType
],
vSigsR
[
SigType
],
NameId
,
RangeId
,
i
)
fprintf
(
pFile
,
" %s %s%s;
\n
"
,
pSigNames
[
SigType
],
RangeId
?
Prs_NtkStr
(
p
,
RangeId
)
:
""
,
Prs_NtkStr
(
p
,
NameId
)
);
fprintf
(
pFile
,
" %s %s%s;
\n
"
,
pSigNames
[
SigType
],
RangeId
?
Prs_NtkStr
(
p
,
RangeId
)
:
""
,
Prs_NtkStr
(
p
,
NameId
)
);
}
}
void
Prs_ManWriteVerilogIoOrder
(
FILE
*
pFile
,
Prs_Ntk_t
*
p
,
Vec_Int_t
*
vOrder
)
static
void
Prs_ManWriteVerilogIoOrder
(
FILE
*
pFile
,
Prs_Ntk_t
*
p
,
Vec_Int_t
*
vOrder
)
{
{
int
i
,
NameId
;
int
i
,
NameId
;
Vec_IntForEachEntry
(
vOrder
,
NameId
,
i
)
Vec_IntForEachEntry
(
vOrder
,
NameId
,
i
)
fprintf
(
pFile
,
"%s%s"
,
Prs_NtkStr
(
p
,
NameId
),
i
==
Vec_IntSize
(
vOrder
)
-
1
?
""
:
", "
);
fprintf
(
pFile
,
"%s%s"
,
Prs_NtkStr
(
p
,
NameId
),
i
==
Vec_IntSize
(
vOrder
)
-
1
?
""
:
", "
);
}
}
void
Prs_ManWriteVerilogNtk
(
FILE
*
pFile
,
Prs_Ntk_t
*
p
)
static
void
Prs_ManWriteVerilogNtk
(
FILE
*
pFile
,
Prs_Ntk_t
*
p
)
{
{
int
s
;
int
s
;
// write header
// write header
...
@@ -179,6 +179,7 @@ void Prs_ManWriteVerilog( char * pFileName, Vec_Ptr_t * vPrs )
...
@@ -179,6 +179,7 @@ void Prs_ManWriteVerilog( char * pFileName, Vec_Ptr_t * vPrs )
}
}
#if 0
/**Function*************************************************************
/**Function*************************************************************
...
@@ -693,6 +694,7 @@ void Cba_ManWriteVerilog( char * pFileName, Cba_Man_t * p, int fUseAssign )
...
@@ -693,6 +694,7 @@ void Cba_ManWriteVerilog( char * pFileName, Cba_Man_t * p, int fUseAssign )
Vec_StrFreeP( &p->vOut2 );
Vec_StrFreeP( &p->vOut2 );
}
}
#endif
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
/// END OF FILE ///
/// END OF FILE ///
...
...
src/base/cba/module.make
View file @
477ecc17
SRC
+=
src/base/cba/cbaBlast.c
\
SRC
+=
src/base/cba/cbaBlast.c
\
src/base/cba/cbaCba.c
\
src/base/cba/cbaCba.c
\
src/base/cba/cbaCom.c
\
src/base/cba/cbaCom.c
\
src/base/cba/cbaLib.c
\
src/base/cba/cbaNtk.c
\
src/base/cba/cbaNtk.c
\
src/base/cba/cbaPrsBuild.c
\
src/base/cba/cbaPrsTrans.c
\
src/base/cba/cbaPtr.c
\
src/base/cba/cbaPtrAbc.c
\
src/base/cba/cbaReadBlif.c
\
src/base/cba/cbaReadBlif.c
\
src/base/cba/cbaReadSmt.c
\
src/base/cba/cbaReadVer.c
\
src/base/cba/cbaReadVer.c
\
src/base/cba/cbaWriteBlif.c
\
src/base/cba/cbaWriteBlif.c
\
src/base/cba/cbaWriteSmt.c
\
src/base/cba/cbaWriteVer.c
src/base/cba/cbaWriteVer.c
src/base/main/mainInit.c
View file @
477ecc17
...
@@ -49,6 +49,8 @@ extern void Scl_Init( Abc_Frame_t * pAbc );
...
@@ -49,6 +49,8 @@ extern void Scl_Init( Abc_Frame_t * pAbc );
extern
void
Scl_End
(
Abc_Frame_t
*
pAbc
);
extern
void
Scl_End
(
Abc_Frame_t
*
pAbc
);
extern
void
Wlc_Init
(
Abc_Frame_t
*
pAbc
);
extern
void
Wlc_Init
(
Abc_Frame_t
*
pAbc
);
extern
void
Wlc_End
(
Abc_Frame_t
*
pAbc
);
extern
void
Wlc_End
(
Abc_Frame_t
*
pAbc
);
extern
void
Bac_Init
(
Abc_Frame_t
*
pAbc
);
extern
void
Bac_End
(
Abc_Frame_t
*
pAbc
);
extern
void
Cba_Init
(
Abc_Frame_t
*
pAbc
);
extern
void
Cba_Init
(
Abc_Frame_t
*
pAbc
);
extern
void
Cba_End
(
Abc_Frame_t
*
pAbc
);
extern
void
Cba_End
(
Abc_Frame_t
*
pAbc
);
extern
void
Pla_Init
(
Abc_Frame_t
*
pAbc
);
extern
void
Pla_Init
(
Abc_Frame_t
*
pAbc
);
...
@@ -108,6 +110,7 @@ void Abc_FrameInit( Abc_Frame_t * pAbc )
...
@@ -108,6 +110,7 @@ void Abc_FrameInit( Abc_Frame_t * pAbc )
Load_Init
(
pAbc
);
Load_Init
(
pAbc
);
Scl_Init
(
pAbc
);
Scl_Init
(
pAbc
);
Wlc_Init
(
pAbc
);
Wlc_Init
(
pAbc
);
Bac_Init
(
pAbc
);
Cba_Init
(
pAbc
);
Cba_Init
(
pAbc
);
Pla_Init
(
pAbc
);
Pla_Init
(
pAbc
);
Test_Init
(
pAbc
);
Test_Init
(
pAbc
);
...
@@ -145,6 +148,7 @@ void Abc_FrameEnd( Abc_Frame_t * pAbc )
...
@@ -145,6 +148,7 @@ void Abc_FrameEnd( Abc_Frame_t * pAbc )
Load_End
(
pAbc
);
Load_End
(
pAbc
);
Scl_End
(
pAbc
);
Scl_End
(
pAbc
);
Wlc_End
(
pAbc
);
Wlc_End
(
pAbc
);
Bac_End
(
pAbc
);
Cba_End
(
pAbc
);
Cba_End
(
pAbc
);
Pla_End
(
pAbc
);
Pla_End
(
pAbc
);
Test_End
(
pAbc
);
Test_End
(
pAbc
);
...
...
src/misc/vec/vecInt.h
View file @
477ecc17
...
@@ -1939,6 +1939,27 @@ static inline void Vec_IntAppendSkip( Vec_Int_t * vVec1, Vec_Int_t * vVec2, int
...
@@ -1939,6 +1939,27 @@ static inline void Vec_IntAppendSkip( Vec_Int_t * vVec1, Vec_Int_t * vVec2, int
Vec_IntPush
(
vVec1
,
Entry
);
Vec_IntPush
(
vVec1
,
Entry
);
}
}
/**Function*************************************************************
Synopsis [Remapping attributes after objects were duplicated.]
Description []
SideEffects []
SeeAlso []
***********************************************************************/
static
inline
void
Vec_IntRemapArray
(
Vec_Int_t
*
vOld2New
,
Vec_Int_t
*
vOld
,
Vec_Int_t
*
vNew
,
int
nNew
)
{
int
iOld
,
iNew
;
if
(
Vec_IntSize
(
vOld
)
==
0
)
return
;
Vec_IntFill
(
vNew
,
nNew
,
0
);
Vec_IntForEachEntry
(
vOld2New
,
iNew
,
iOld
)
if
(
iNew
>
0
&&
iNew
<
nNew
&&
Vec_IntEntry
(
vOld
,
iOld
)
!=
0
)
Vec_IntWriteEntry
(
vNew
,
iNew
,
Vec_IntEntry
(
vOld
,
iOld
)
);
}
ABC_NAMESPACE_HEADER_END
ABC_NAMESPACE_HEADER_END
...
...
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