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
dc843b03
Commit
dc843b03
authored
Dec 10, 2012
by
Alan Mishchenko
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Renaming If_Lut_t into If_LibLut_t.
parent
5eedc74a
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
76 additions
and
77 deletions
+76
-77
src/aig/gia/giaSpeedup.c
+6
-6
src/base/abci/abc.c
+3
-3
src/base/abci/abcPrint.c
+2
-2
src/base/abci/abcSpeedup.c
+6
-6
src/base/main/mainInt.h
+0
-1
src/map/if/if.h
+15
-15
src/map/if/ifCom.c
+7
-7
src/map/if/ifLibLut.c
+24
-24
src/opt/lpk/lpkCore.c
+1
-1
src/opt/nwk/ntlnwk.h
+1
-1
src/opt/nwk/nwk.h
+2
-2
src/opt/nwk/nwkMan.c
+2
-2
src/opt/nwk/nwkSpeedup.c
+2
-2
src/opt/nwk/nwkTiming.c
+5
-5
No files found.
src/aig/gia/giaSpeedup.c
View file @
dc843b03
...
...
@@ -109,7 +109,7 @@ int Gia_LutWhereIsPin( Gia_Man_t * p, int iFanout, int iFanin, int * pPinPerm )
***********************************************************************/
float
Gia_ObjComputeArrival
(
Gia_Man_t
*
p
,
int
iObj
,
int
fUseSorting
)
{
If_Lib
_t
*
pLutLib
=
(
If_Lib
_t
*
)
p
->
pLutLib
;
If_Lib
Lut_t
*
pLutLib
=
(
If_LibLut
_t
*
)
p
->
pLutLib
;
Gia_Obj_t
*
pObj
=
Gia_ManObj
(
p
,
iObj
);
int
k
,
iFanin
,
pPinPerm
[
32
];
float
pPinDelays
[
32
];
...
...
@@ -169,7 +169,7 @@ float Gia_ObjComputeArrival( Gia_Man_t * p, int iObj, int fUseSorting )
***********************************************************************/
float
Gia_ObjPropagateRequired
(
Gia_Man_t
*
p
,
int
iObj
,
int
fUseSorting
)
{
If_Lib
_t
*
pLutLib
=
(
If_Lib
_t
*
)
p
->
pLutLib
;
If_Lib
Lut_t
*
pLutLib
=
(
If_LibLut
_t
*
)
p
->
pLutLib
;
int
k
,
iFanin
,
pPinPerm
[
32
];
float
pPinDelays
[
32
];
float
tRequired
=
0
.
0
;
// Suppress "might be used uninitialized"
...
...
@@ -230,7 +230,7 @@ float Gia_ObjPropagateRequired( Gia_Man_t * p, int iObj, int fUseSorting )
float
Gia_ManDelayTraceLut
(
Gia_Man_t
*
p
)
{
int
fUseSorting
=
1
;
If_Lib
_t
*
pLutLib
=
(
If_Lib
_t
*
)
p
->
pLutLib
;
If_Lib
Lut_t
*
pLutLib
=
(
If_LibLut
_t
*
)
p
->
pLutLib
;
Vec_Int_t
*
vObjs
;
Gia_Obj_t
*
pObj
;
float
tArrival
,
tArrivalCur
,
tRequired
,
tSlack
;
...
...
@@ -336,7 +336,7 @@ float Gia_ManDelayTraceLut( Gia_Man_t * p )
***********************************************************************/
float Gia_ObjComputeRequired( Gia_Man_t * p, int iObj, int fUseSorting )
{
If_Lib_t * pLutLib = p->pLutLib;
If_Lib
Lut
_t * pLutLib = p->pLutLib;
int pPinPerm[32];
float pPinDelays[32];
Gia_Obj_t * pFanout;
...
...
@@ -442,7 +442,7 @@ int Gia_LutVerifyTiming( Gia_Man_t * p )
***********************************************************************/
float
Gia_ManDelayTraceLutPrint
(
Gia_Man_t
*
p
,
int
fVerbose
)
{
If_Lib
_t
*
pLutLib
=
(
If_Lib
_t
*
)
p
->
pLutLib
;
If_Lib
Lut_t
*
pLutLib
=
(
If_LibLut
_t
*
)
p
->
pLutLib
;
int
i
,
Nodes
,
*
pCounters
;
float
tArrival
,
tDelta
,
nSteps
,
Num
;
// get the library
...
...
@@ -500,7 +500,7 @@ float Gia_ManDelayTraceLutPrint( Gia_Man_t * p, int fVerbose )
***********************************************************************/
unsigned
Gia_LutDelayTraceTCEdges
(
Gia_Man_t
*
p
,
int
iObj
,
float
tDelta
)
{
If_Lib
_t
*
pLutLib
=
(
If_Lib
_t
*
)
p
->
pLutLib
;
If_Lib
Lut_t
*
pLutLib
=
(
If_LibLut
_t
*
)
p
->
pLutLib
;
int
pPinPerm
[
32
];
float
pPinDelays
[
32
];
float
tRequired
,
*
pDelays
;
...
...
src/base/abci/abc.c
View file @
dc843b03
...
...
@@ -14568,7 +14568,7 @@ int Abc_CommandIf( Abc_Frame_t * pAbc, int argc, char ** argv )
pPars
->
nLatchesCi
=
pNtk
?
Abc_NtkLatchNum
(
pNtk
)
:
0
;
pPars
->
nLatchesCo
=
pNtk
?
Abc_NtkLatchNum
(
pNtk
)
:
0
;
pPars
->
fLiftLeaves
=
0
;
pPars
->
pLutLib
=
(
If_Lib_t
*
)
Abc_FrameReadLibLut
();
pPars
->
pLutLib
=
(
If_Lib
Lut
_t
*
)
Abc_FrameReadLibLut
();
pPars
->
pTimesArr
=
NULL
;
pPars
->
pTimesArr
=
NULL
;
pPars
->
pFuncCost
=
NULL
;
...
...
@@ -15070,7 +15070,7 @@ int Abc_CommandIfif( Abc_Frame_t * pAbc, int argc, char ** argv )
int
c
,
fError
;
pPars
->
nLutSize
=
-
1
;
// the LUT size
pPars
->
pLutLib
=
(
If_Lib_t
*
)
Abc_FrameReadLibLut
();
// the LUT library
pPars
->
pLutLib
=
(
If_Lib
Lut
_t
*
)
Abc_FrameReadLibLut
();
// the LUT library
pPars
->
DelayWire
=
(
float
)
0
.
5
;
// wire delay
pPars
->
nDegree
=
0
;
// structure degree
pPars
->
fCascade
=
0
;
// cascade
...
...
@@ -27337,7 +27337,7 @@ int Abc_CommandAbc9If( Abc_Frame_t * pAbc, int argc, char ** argv )
if
(
pAbc
->
pLibLut
==
NULL
)
{
Abc_Print
(
-
1
,
"LUT library is not given. Using default LUT library.
\n
"
);
pAbc
->
pLibLut
=
If_L
utLib
SetSimple
(
6
);
pAbc
->
pLibLut
=
If_L
ibLut
SetSimple
(
6
);
}
Extra_UtilGetoptReset
();
while
(
(
c
=
Extra_UtilGetopt
(
argc
,
argv
,
"KCFAGDEWSqaflepmrsdbgyojikcvh"
)
)
!=
EOF
)
...
...
src/base/abci/abcPrint.c
View file @
dc843b03
...
...
@@ -165,13 +165,13 @@ float Abc_NtkMfsTotalSwitching( Abc_Ntk_t * pNtk )
***********************************************************************/
float
Abc_NtkGetArea
(
Abc_Ntk_t
*
pNtk
)
{
If_Lib_t
*
pLutLib
;
If_Lib
Lut
_t
*
pLutLib
;
Abc_Obj_t
*
pObj
;
float
Counter
=
0
.
0
;
int
i
;
assert
(
Abc_NtkIsLogic
(
pNtk
)
);
// get the library
pLutLib
=
(
If_Lib_t
*
)
Abc_FrameReadLibLut
();
pLutLib
=
(
If_Lib
Lut
_t
*
)
Abc_FrameReadLibLut
();
if
(
pLutLib
&&
pLutLib
->
LutMax
>=
Abc_NtkGetFaninMax
(
pNtk
)
)
{
Abc_NtkForEachNode
(
pNtk
,
pObj
,
i
)
...
...
src/base/abci/abcSpeedup.c
View file @
dc843b03
...
...
@@ -102,7 +102,7 @@ float Abc_NtkDelayTraceLut( Abc_Ntk_t * pNtk, int fUseLutLib )
int
fUseSorting
=
1
;
int
pPinPerm
[
32
];
float
pPinDelays
[
32
];
If_Lib_t
*
pLutLib
;
If_Lib
Lut
_t
*
pLutLib
;
Abc_Obj_t
*
pNode
,
*
pFanin
;
Vec_Ptr_t
*
vNodes
;
float
tArrival
,
tRequired
,
tSlack
,
*
pDelays
;
...
...
@@ -110,7 +110,7 @@ float Abc_NtkDelayTraceLut( Abc_Ntk_t * pNtk, int fUseLutLib )
assert
(
Abc_NtkIsLogic
(
pNtk
)
);
// get the library
pLutLib
=
fUseLutLib
?
(
If_Lib_t
*
)
Abc_FrameReadLibLut
()
:
NULL
;
pLutLib
=
fUseLutLib
?
(
If_Lib
Lut
_t
*
)
Abc_FrameReadLibLut
()
:
NULL
;
if
(
pLutLib
&&
pLutLib
->
LutMax
<
Abc_NtkGetFaninMax
(
pNtk
)
)
{
printf
(
"The max LUT size (%d) is less than the max fanin count (%d).
\n
"
,
...
...
@@ -244,11 +244,11 @@ float Abc_NtkDelayTraceLut( Abc_Ntk_t * pNtk, int fUseLutLib )
void
Abc_NtkDelayTracePrint
(
Abc_Ntk_t
*
pNtk
,
int
fUseLutLib
,
int
fVerbose
)
{
Abc_Obj_t
*
pNode
;
If_Lib_t
*
pLutLib
;
If_Lib
Lut
_t
*
pLutLib
;
int
i
,
Nodes
,
*
pCounters
;
float
tArrival
,
tDelta
,
nSteps
,
Num
;
// get the library
pLutLib
=
fUseLutLib
?
(
If_Lib_t
*
)
Abc_FrameReadLibLut
()
:
NULL
;
pLutLib
=
fUseLutLib
?
(
If_Lib
Lut
_t
*
)
Abc_FrameReadLibLut
()
:
NULL
;
if
(
pLutLib
&&
pLutLib
->
LutMax
<
Abc_NtkGetFaninMax
(
pNtk
)
)
{
printf
(
"The max LUT size (%d) is less than the max fanin count (%d).
\n
"
,
...
...
@@ -467,12 +467,12 @@ unsigned Abc_NtkDelayTraceTCEdges( Abc_Ntk_t * pNtk, Abc_Obj_t * pNode, float tD
{
int
pPinPerm
[
32
];
float
pPinDelays
[
32
];
If_Lib_t
*
pLutLib
;
If_Lib
Lut
_t
*
pLutLib
;
Abc_Obj_t
*
pFanin
;
unsigned
uResult
=
0
;
float
tRequired
,
*
pDelays
;
int
k
;
pLutLib
=
fUseLutLib
?
(
If_Lib_t
*
)
Abc_FrameReadLibLut
()
:
NULL
;
pLutLib
=
fUseLutLib
?
(
If_Lib
Lut
_t
*
)
Abc_FrameReadLibLut
()
:
NULL
;
tRequired
=
Abc_ObjRequired
(
pNode
);
if
(
pLutLib
==
NULL
)
{
...
...
src/base/main/mainInt.h
View file @
dc843b03
...
...
@@ -113,7 +113,6 @@ struct Abc_Frame_t_
void
*
pAbc85Ntl2
;
void
*
pAbc85Best
;
void
*
pAbc85Delay
;
// If_Lib_t * pAbc85Lib;
EXT_ABC_FRAME
// plugin for external functionality
};
...
...
src/map/if/if.h
View file @
dc843b03
...
...
@@ -71,16 +71,17 @@ typedef enum {
typedef
struct
If_Man_t_
If_Man_t
;
typedef
struct
If_Par_t_
If_Par_t
;
typedef
struct
If_Lib_t_
If_Lib_t
;
typedef
struct
If_Obj_t_
If_Obj_t
;
typedef
struct
If_Cut_t_
If_Cut_t
;
typedef
struct
If_Set_t_
If_Set_t
;
typedef
struct
If_LibLut_t_
If_LibLut_t
;
typedef
struct
If_LibBox_t_
If_LibBox_t
;
typedef
struct
Ifif_Par_t_
Ifif_Par_t
;
struct
Ifif_Par_t_
{
int
nLutSize
;
// the LUT size
If_Lib
_t
*
pLutLib
;
// the LUT library
If_Lib
Lut_t
*
pLutLib
;
// the LUT library
float
pLutDelays
[
IF_MAX_LUTSIZE
];
// pin-to-pin delays of the max LUT
float
DelayWire
;
// wire delay
int
nDegree
;
// structure degree
...
...
@@ -138,7 +139,7 @@ struct If_Par_t_
int
nLatchesCoBox
;
// the number of white box inputs among the COs
int
fLiftLeaves
;
// shift the leaves for seq mapping
int
fUseCoAttrs
;
// use CO attributes
If_Lib
_t
*
pLutLib
;
// the LUT library
If_Lib
Lut_t
*
pLutLib
;
// the LUT library
float
*
pTimesArr
;
// arrival times
float
*
pTimesReq
;
// required times
int
(
*
pFuncCost
)
(
If_Cut_t
*
);
// procedure to compute the user's cost of a cut
...
...
@@ -148,7 +149,7 @@ struct If_Par_t_
};
// the LUT library
struct
If_Lib_t_
struct
If_Lib
Lut
_t_
{
char
*
pName
;
// the name of the LUT library
int
LutMax
;
// the maximum LUT size
...
...
@@ -323,7 +324,6 @@ struct If_Box_t_
int
*
pDelays
;
};
typedef
struct
If_LibBox_t_
If_LibBox_t
;
struct
If_LibBox_t_
{
Vec_Ptr_t
*
vBoxes
;
...
...
@@ -388,7 +388,7 @@ static inline int If_CutTruthWords( int nVarsMax ) { r
static
inline
int
If_CutPermWords
(
int
nVarsMax
)
{
return
nVarsMax
/
sizeof
(
int
)
+
((
nVarsMax
%
sizeof
(
int
))
>
0
);
}
static
inline
float
If_CutLutArea
(
If_Man_t
*
p
,
If_Cut_t
*
pCut
)
{
return
pCut
->
fUser
?
(
float
)
pCut
->
Cost
:
(
p
->
pPars
->
pLutLib
?
p
->
pPars
->
pLutLib
->
pLutAreas
[
pCut
->
nLeaves
]
:
(
float
)
1
.
0
);
}
static
inline
float
If_CutLutDelay
(
If_Lib_t
*
p
,
int
Size
,
int
iPin
)
{
return
p
?
(
p
->
fVarPinDelays
?
p
->
pLutDelays
[
Size
][
iPin
]
:
p
->
pLutDelays
[
Size
][
0
])
:
1
.
0
;
}
static
inline
float
If_CutLutDelay
(
If_Lib
Lut
_t
*
p
,
int
Size
,
int
iPin
)
{
return
p
?
(
p
->
fVarPinDelays
?
p
->
pLutDelays
[
Size
][
iPin
]
:
p
->
pLutDelays
[
Size
][
0
])
:
1
.
0
;
}
static
inline
word
If_AndToWrd
(
If_And_t
m
)
{
union
{
If_And_t
x
;
word
y
;
}
v
;
v
.
x
=
m
;
return
v
.
y
;
}
static
inline
If_And_t
If_WrdToAnd
(
word
m
)
{
union
{
If_And_t
x
;
word
y
;
}
v
;
v
.
y
=
m
;
return
v
.
x
;
}
...
...
@@ -492,15 +492,15 @@ extern int If_CluCheckExt( void * p, word * pTruth, int nVars, int n
extern
int
If_CluCheckExt3
(
void
*
p
,
word
*
pTruth
,
int
nVars
,
int
nLutLeaf
,
int
nLutLeaf2
,
int
nLutRoot
,
char
*
pLut0
,
char
*
pLut1
,
char
*
pLut2
,
word
*
pFunc0
,
word
*
pFunc1
,
word
*
pFunc2
);
/*=== ifLib.c =============================================================*/
extern
If_Lib
_t
*
If_LutLib
Read
(
char
*
FileName
);
extern
If_Lib
_t
*
If_LutLibDup
(
If_Lib
_t
*
p
);
extern
void
If_L
utLibFree
(
If_Lib
_t
*
pLutLib
);
extern
void
If_L
utLibPrint
(
If_Lib
_t
*
pLutLib
);
extern
int
If_L
utLibDelaysAreDiscrete
(
If_Lib
_t
*
pLutLib
);
extern
int
If_L
utLibDelaysAreDifferent
(
If_Lib
_t
*
pLutLib
);
extern
If_Lib
_t
*
If_LutLib
SetSimple
(
int
nLutSize
);
extern
float
If_L
utLibFastestPinDelay
(
If_Lib
_t
*
p
);
extern
float
If_L
utLibSlowestPinDelay
(
If_Lib
_t
*
p
);
extern
If_Lib
Lut_t
*
If_LibLut
Read
(
char
*
FileName
);
extern
If_Lib
Lut_t
*
If_LibLutDup
(
If_LibLut
_t
*
p
);
extern
void
If_L
ibLutFree
(
If_LibLut
_t
*
pLutLib
);
extern
void
If_L
ibLutPrint
(
If_LibLut
_t
*
pLutLib
);
extern
int
If_L
ibLutDelaysAreDiscrete
(
If_LibLut
_t
*
pLutLib
);
extern
int
If_L
ibLutDelaysAreDifferent
(
If_LibLut
_t
*
pLutLib
);
extern
If_Lib
Lut_t
*
If_LibLut
SetSimple
(
int
nLutSize
);
extern
float
If_L
ibLutFastestPinDelay
(
If_LibLut
_t
*
p
);
extern
float
If_L
ibLutSlowestPinDelay
(
If_LibLut
_t
*
p
);
/*=== ifLibBox.c =============================================================*/
extern
If_LibBox_t
*
If_LibBoxStart
();
extern
void
If_LibBoxFree
(
If_LibBox_t
*
p
);
...
...
src/map/if/ifCom.c
View file @
dc843b03
...
...
@@ -51,8 +51,8 @@ static int If_CommandPrintBox( Abc_Frame_t * pAbc, int argc, char **argv );
void
If_Init
(
Abc_Frame_t
*
pAbc
)
{
// set the default library
If_Lib_t
s_LutLib
=
{
"lutlib"
,
4
,
0
,
{
0
,
1
,
1
,
1
,
1
},
{{
0
},{
1
},{
1
},{
1
},{
1
}}
};
Abc_FrameSetLibLut
(
If_L
utLib
Dup
(
&
s_LutLib
)
);
If_Lib
Lut
_t
s_LutLib
=
{
"lutlib"
,
4
,
0
,
{
0
,
1
,
1
,
1
,
1
},
{{
0
},{
1
},{
1
},{
1
},{
1
}}
};
Abc_FrameSetLibLut
(
If_L
ibLut
Dup
(
&
s_LutLib
)
);
Cmd_CommandAdd
(
pAbc
,
"FPGA mapping"
,
"read_lut"
,
If_CommandReadLut
,
0
);
Cmd_CommandAdd
(
pAbc
,
"FPGA mapping"
,
"print_lut"
,
If_CommandPrintLut
,
0
);
...
...
@@ -74,7 +74,7 @@ void If_Init( Abc_Frame_t * pAbc )
***********************************************************************/
void
If_End
(
Abc_Frame_t
*
pAbc
)
{
If_L
utLibFree
(
(
If_Lib
_t
*
)
Abc_FrameReadLibLut
()
);
If_L
ibLutFree
(
(
If_LibLut
_t
*
)
Abc_FrameReadLibLut
()
);
If_LibBoxFree
(
(
If_LibBox_t
*
)
Abc_FrameReadLibBox
()
);
}
...
...
@@ -93,7 +93,7 @@ int If_CommandReadLut( Abc_Frame_t * pAbc, int argc, char **argv )
{
FILE
*
pFile
;
FILE
*
pOut
,
*
pErr
;
If_Lib_t
*
pLib
;
If_Lib
Lut
_t
*
pLib
;
Abc_Ntk_t
*
pNet
;
char
*
FileName
;
int
fVerbose
;
...
...
@@ -137,14 +137,14 @@ int If_CommandReadLut( Abc_Frame_t * pAbc, int argc, char **argv )
fclose
(
pFile
);
// set the new network
pLib
=
If_L
utLib
Read
(
FileName
);
pLib
=
If_L
ibLut
Read
(
FileName
);
if
(
pLib
==
NULL
)
{
fprintf
(
pErr
,
"Reading LUT library has failed.
\n
"
);
goto
usage
;
}
// replace the current library
If_L
utLibFree
(
(
If_Lib
_t
*
)
Abc_FrameReadLibLut
()
);
If_L
ibLutFree
(
(
If_LibLut
_t
*
)
Abc_FrameReadLibLut
()
);
Abc_FrameSetLibLut
(
pLib
);
return
0
;
...
...
@@ -212,7 +212,7 @@ int If_CommandPrintLut( Abc_Frame_t * pAbc, int argc, char **argv )
goto
usage
;
// set the new network
If_L
utLibPrint
(
(
If_Lib
_t
*
)
Abc_FrameReadLibLut
()
);
If_L
ibLutPrint
(
(
If_LibLut
_t
*
)
Abc_FrameReadLibLut
()
);
return
0
;
usage:
...
...
src/map/if/ifLibLut.c
View file @
dc843b03
...
...
@@ -44,10 +44,10 @@ static inline char * If_UtilStrsav( char *s ) { return !s ? s : strcpy(ABC_ALLO
SeeAlso []
***********************************************************************/
If_Lib
_t
*
If_LutLib
Read
(
char
*
FileName
)
If_Lib
Lut_t
*
If_LibLut
Read
(
char
*
FileName
)
{
char
pBuffer
[
1000
],
*
pToken
;
If_Lib_t
*
p
;
If_Lib
Lut
_t
*
p
;
FILE
*
pFile
;
int
i
,
k
;
...
...
@@ -58,8 +58,8 @@ If_Lib_t * If_LutLibRead( char * FileName )
return
NULL
;
}
p
=
ABC_ALLOC
(
If_Lib_t
,
1
);
memset
(
p
,
0
,
sizeof
(
If_Lib_t
)
);
p
=
ABC_ALLOC
(
If_Lib
Lut
_t
,
1
);
memset
(
p
,
0
,
sizeof
(
If_Lib
Lut
_t
)
);
p
->
pName
=
If_UtilStrsav
(
FileName
);
i
=
1
;
...
...
@@ -150,10 +150,10 @@ If_Lib_t * If_LutLibRead( char * FileName )
SeeAlso []
***********************************************************************/
If_Lib
_t
*
If_LutLibDup
(
If_Lib
_t
*
p
)
If_Lib
Lut_t
*
If_LibLutDup
(
If_LibLut
_t
*
p
)
{
If_Lib_t
*
pNew
;
pNew
=
ABC_ALLOC
(
If_Lib_t
,
1
);
If_Lib
Lut
_t
*
pNew
;
pNew
=
ABC_ALLOC
(
If_Lib
Lut
_t
,
1
);
*
pNew
=
*
p
;
pNew
->
pName
=
If_UtilStrsav
(
pNew
->
pName
);
return
pNew
;
...
...
@@ -170,7 +170,7 @@ If_Lib_t * If_LutLibDup( If_Lib_t * p )
SeeAlso []
***********************************************************************/
void
If_L
utLibFree
(
If_Lib
_t
*
pLutLib
)
void
If_L
ibLutFree
(
If_LibLut
_t
*
pLutLib
)
{
if
(
pLutLib
==
NULL
)
return
;
...
...
@@ -190,7 +190,7 @@ void If_LutLibFree( If_Lib_t * pLutLib )
SeeAlso []
***********************************************************************/
void
If_L
utLibPrint
(
If_Lib
_t
*
pLutLib
)
void
If_L
ibLutPrint
(
If_LibLut
_t
*
pLutLib
)
{
int
i
,
k
;
Abc_Print
(
1
,
"# The area/delay of k-variable LUTs:
\n
"
);
...
...
@@ -221,7 +221,7 @@ void If_LutLibPrint( If_Lib_t * pLutLib )
SeeAlso []
***********************************************************************/
int
If_L
utLibDelaysAreDiscrete
(
If_Lib
_t
*
pLutLib
)
int
If_L
ibLutDelaysAreDiscrete
(
If_LibLut
_t
*
pLutLib
)
{
float
Delay
;
int
i
;
...
...
@@ -245,7 +245,7 @@ int If_LutLibDelaysAreDiscrete( If_Lib_t * pLutLib )
SeeAlso []
***********************************************************************/
int
If_L
utLibDelaysAreDifferent
(
If_Lib
_t
*
pLutLib
)
int
If_L
ibLutDelaysAreDifferent
(
If_LibLut
_t
*
pLutLib
)
{
int
i
,
k
;
float
Delay
=
pLutLib
->
pLutDelays
[
1
][
0
];
...
...
@@ -276,17 +276,17 @@ int If_LutLibDelaysAreDifferent( If_Lib_t * pLutLib )
SeeAlso []
***********************************************************************/
If_Lib
_t
*
If_LutLib
SetSimple
(
int
nLutSize
)
If_Lib
Lut_t
*
If_LibLut
SetSimple
(
int
nLutSize
)
{
If_Lib_t
s_LutLib10
=
{
"lutlib"
,
10
,
0
,
{
0
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{{
0
},{
1
},{
1
},{
1
},{
1
},{
1
},{
1
},{
1
},{
1
},{
1
},{
1
}}
};
If_Lib_t
s_LutLib9
=
{
"lutlib"
,
9
,
0
,
{
0
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{{
0
},{
1
},{
1
},{
1
},{
1
},{
1
},{
1
},{
1
},{
1
},{
1
}}
};
If_Lib_t
s_LutLib8
=
{
"lutlib"
,
8
,
0
,
{
0
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{{
0
},{
1
},{
1
},{
1
},{
1
},{
1
},{
1
},{
1
},{
1
}}
};
If_Lib_t
s_LutLib7
=
{
"lutlib"
,
7
,
0
,
{
0
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{{
0
},{
1
},{
1
},{
1
},{
1
},{
1
},{
1
},{
1
}}
};
If_Lib_t
s_LutLib6
=
{
"lutlib"
,
6
,
0
,
{
0
,
1
,
1
,
1
,
1
,
1
,
1
},
{{
0
},{
1
},{
1
},{
1
},{
1
},{
1
},{
1
}}
};
If_Lib_t
s_LutLib5
=
{
"lutlib"
,
5
,
0
,
{
0
,
1
,
1
,
1
,
1
,
1
},
{{
0
},{
1
},{
1
},{
1
},{
1
},{
1
}}
};
If_Lib_t
s_LutLib4
=
{
"lutlib"
,
4
,
0
,
{
0
,
1
,
1
,
1
,
1
},
{{
0
},{
1
},{
1
},{
1
},{
1
}}
};
If_Lib_t
s_LutLib3
=
{
"lutlib"
,
3
,
0
,
{
0
,
1
,
1
,
1
},
{{
0
},{
1
},{
1
},{
1
}}
};
If_Lib_t
*
pLutLib
;
If_Lib
Lut
_t
s_LutLib10
=
{
"lutlib"
,
10
,
0
,
{
0
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{{
0
},{
1
},{
1
},{
1
},{
1
},{
1
},{
1
},{
1
},{
1
},{
1
},{
1
}}
};
If_Lib
Lut
_t
s_LutLib9
=
{
"lutlib"
,
9
,
0
,
{
0
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{{
0
},{
1
},{
1
},{
1
},{
1
},{
1
},{
1
},{
1
},{
1
},{
1
}}
};
If_Lib
Lut
_t
s_LutLib8
=
{
"lutlib"
,
8
,
0
,
{
0
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{{
0
},{
1
},{
1
},{
1
},{
1
},{
1
},{
1
},{
1
},{
1
}}
};
If_Lib
Lut
_t
s_LutLib7
=
{
"lutlib"
,
7
,
0
,
{
0
,
1
,
1
,
1
,
1
,
1
,
1
,
1
},
{{
0
},{
1
},{
1
},{
1
},{
1
},{
1
},{
1
},{
1
}}
};
If_Lib
Lut
_t
s_LutLib6
=
{
"lutlib"
,
6
,
0
,
{
0
,
1
,
1
,
1
,
1
,
1
,
1
},
{{
0
},{
1
},{
1
},{
1
},{
1
},{
1
},{
1
}}
};
If_Lib
Lut
_t
s_LutLib5
=
{
"lutlib"
,
5
,
0
,
{
0
,
1
,
1
,
1
,
1
,
1
},
{{
0
},{
1
},{
1
},{
1
},{
1
},{
1
}}
};
If_Lib
Lut
_t
s_LutLib4
=
{
"lutlib"
,
4
,
0
,
{
0
,
1
,
1
,
1
,
1
},
{{
0
},{
1
},{
1
},{
1
},{
1
}}
};
If_Lib
Lut
_t
s_LutLib3
=
{
"lutlib"
,
3
,
0
,
{
0
,
1
,
1
,
1
},
{{
0
},{
1
},{
1
},{
1
}}
};
If_Lib
Lut
_t
*
pLutLib
;
assert
(
nLutSize
>=
3
&&
nLutSize
<=
10
);
switch
(
nLutSize
)
{
...
...
@@ -302,7 +302,7 @@ If_Lib_t * If_LutLibSetSimple( int nLutSize )
}
if
(
pLutLib
==
NULL
)
return
NULL
;
return
If_L
utLib
Dup
(
pLutLib
);
return
If_L
ibLut
Dup
(
pLutLib
);
}
/**Function*************************************************************
...
...
@@ -316,7 +316,7 @@ If_Lib_t * If_LutLibSetSimple( int nLutSize )
SeeAlso []
***********************************************************************/
float
If_L
utLibFastestPinDelay
(
If_Lib
_t
*
p
)
float
If_L
ibLutFastestPinDelay
(
If_LibLut
_t
*
p
)
{
return
!
p
?
1
.
0
:
p
->
pLutDelays
[
p
->
LutMax
][
0
];
}
...
...
@@ -332,7 +332,7 @@ float If_LutLibFastestPinDelay( If_Lib_t * p )
SeeAlso []
***********************************************************************/
float
If_L
utLibSlowestPinDelay
(
If_Lib
_t
*
p
)
float
If_L
ibLutSlowestPinDelay
(
If_LibLut
_t
*
p
)
{
return
!
p
?
1
.
0
:
(
p
->
fVarPinDelays
?
p
->
pLutDelays
[
p
->
LutMax
][
p
->
LutMax
-
1
]
:
p
->
pLutDelays
[
p
->
LutMax
][
0
]);
}
...
...
src/opt/lpk/lpkCore.c
View file @
dc843b03
...
...
@@ -519,7 +519,7 @@ int Lpk_Resynthesize( Abc_Ntk_t * pNtk, Lpk_Par_t * pPars )
// get the number of inputs
if
(
Abc_FrameReadLibLut
()
)
pPars
->
nLutSize
=
((
If_Lib_t
*
)
Abc_FrameReadLibLut
())
->
LutMax
;
pPars
->
nLutSize
=
((
If_Lib
Lut
_t
*
)
Abc_FrameReadLibLut
())
->
LutMax
;
else
pPars
->
nLutSize
=
Abc_NtkGetFaninMax
(
pNtk
);
if
(
pPars
->
nLutSize
>
6
)
...
...
src/opt/nwk/ntlnwk.h
View file @
dc843b03
...
...
@@ -86,7 +86,7 @@ extern ABC_DLL Aig_Man_t * Ntl_ManPrepareSec( char * pFileName1, char * pFileNam
extern
ABC_DLL
Nwk_Man_t
*
Ntl_ManExtractNwk
(
Ntl_Man_t
*
p
,
Aig_Man_t
*
pAig
,
Tim_Man_t
*
pManTime
);
extern
ABC_DLL
Nwk_Man_t
*
Ntl_ManReadNwk
(
char
*
pFileName
,
Aig_Man_t
*
pAig
,
Tim_Man_t
*
pManTime
);
extern
ABC_DLL
void
Nwk_ManPrintStats
(
Nwk_Man_t
*
p
,
If_Lib_t
*
pLutLib
,
int
fSaveBest
,
int
fDumpResult
,
int
fPower
,
Ntl_Man_t
*
pNtl
);
extern
ABC_DLL
void
Nwk_ManPrintStats
(
Nwk_Man_t
*
p
,
If_Lib
Lut
_t
*
pLutLib
,
int
fSaveBest
,
int
fDumpResult
,
int
fPower
,
Ntl_Man_t
*
pNtl
);
extern
ABC_DLL
void
Nwk_ManPrintStatsShort
(
Ntl_Man_t
*
p
,
Aig_Man_t
*
pAig
,
Nwk_Man_t
*
pNtk
);
extern
ABC_DLL
void
Nwk_ManPrintFanioNew
(
Nwk_Man_t
*
p
);
extern
ABC_DLL
Nwk_Man_t
*
Nwk_MappingIf
(
Aig_Man_t
*
p
,
Tim_Man_t
*
pManTime
,
If_Par_t
*
pPars
);
...
...
src/opt/nwk/nwk.h
View file @
dc843b03
...
...
@@ -72,7 +72,7 @@ struct Nwk_Man_t_
// functionality, timing, memory, etc
Hop_Man_t
*
pManHop
;
// the functionality representation
Tim_Man_t
*
pManTime
;
// the timing manager
If_Lib_t
*
pLutLib
;
// the LUT library
If_Lib
Lut
_t
*
pLutLib
;
// the LUT library
Aig_MmFlex_t
*
pMemObjs
;
// memory for objects
Vec_Ptr_t
*
vTemp
;
// array used for incremental updates
int
nTravIds
;
// the counter of traversal IDs
...
...
@@ -255,7 +255,7 @@ extern ABC_DLL Vec_Ptr_t * Nwk_ManRetimeCutBackward( Nwk_Man_t * pMan, int n
extern
ABC_DLL
Nwk_Man_t
*
Nwk_ManAlloc
();
extern
ABC_DLL
void
Nwk_ManFree
(
Nwk_Man_t
*
p
);
extern
ABC_DLL
float
Nwl_ManComputeTotalSwitching
(
Nwk_Man_t
*
pNtk
);
extern
ABC_DLL
void
Nwk_ManPrintStats
(
Nwk_Man_t
*
p
,
If_Lib_t
*
pLutLib
,
int
fSaveBest
,
int
fDumpResult
,
int
fPower
,
Ntl_Man_t
*
pNtl
);
extern
ABC_DLL
void
Nwk_ManPrintStats
(
Nwk_Man_t
*
p
,
If_Lib
Lut
_t
*
pLutLib
,
int
fSaveBest
,
int
fDumpResult
,
int
fPower
,
Ntl_Man_t
*
pNtl
);
/*=== nwkMap.c ============================================================*/
extern
ABC_DLL
Nwk_Man_t
*
Nwk_MappingIf
(
Aig_Man_t
*
p
,
Tim_Man_t
*
pManTime
,
If_Par_t
*
pPars
);
/*=== nwkObj.c ============================================================*/
...
...
src/opt/nwk/nwkMan.c
View file @
dc843b03
...
...
@@ -94,7 +94,7 @@ void Nwk_ManFree( Nwk_Man_t * p )
SeeAlso []
***********************************************************************/
void
Nwk_ManPrintLutSizes
(
Nwk_Man_t
*
p
,
If_Lib_t
*
pLutLib
)
void
Nwk_ManPrintLutSizes
(
Nwk_Man_t
*
p
,
If_Lib
Lut
_t
*
pLutLib
)
{
Nwk_Obj_t
*
pObj
;
int
i
,
Counters
[
256
]
=
{
0
};
...
...
@@ -231,7 +231,7 @@ float Nwl_ManComputeTotalSwitching( Nwk_Man_t * pNtk )
SeeAlso []
***********************************************************************/
void
Nwk_ManPrintStats
(
Nwk_Man_t
*
pNtk
,
If_Lib_t
*
pLutLib
,
int
fSaveBest
,
int
fDumpResult
,
int
fPower
,
Ntl_Man_t
*
pNtl
)
void
Nwk_ManPrintStats
(
Nwk_Man_t
*
pNtk
,
If_Lib
Lut
_t
*
pLutLib
,
int
fSaveBest
,
int
fDumpResult
,
int
fPower
,
Ntl_Man_t
*
pNtl
)
{
// extern int Ntl_ManLatchNum( Ntl_Man_t * p );
// extern void Ntl_ManWriteBlifLogic( Nwk_Man_t * pNtk, void * pNtl, char * pFileName );
...
...
src/opt/nwk/nwkSpeedup.c
View file @
dc843b03
...
...
@@ -159,7 +159,7 @@ unsigned Nwk_ManDelayTraceTCEdges( Nwk_Man_t * pNtk, Nwk_Obj_t * pNode, float tD
{
int
pPinPerm
[
32
];
float
pPinDelays
[
32
];
If_Lib_t
*
pLutLib
=
fUseLutLib
?
pNtk
->
pLutLib
:
NULL
;
If_Lib
Lut
_t
*
pLutLib
=
fUseLutLib
?
pNtk
->
pLutLib
:
NULL
;
Nwk_Obj_t
*
pFanin
;
unsigned
uResult
=
0
;
float
tRequired
,
*
pDelays
;
...
...
@@ -206,7 +206,7 @@ Aig_Man_t * Nwk_ManSpeedup( Nwk_Man_t * pNtk, int fUseLutLib, int Percentage, in
Vec_Ptr_t
*
vTimeCries
,
*
vTimeFanins
;
Nwk_Obj_t
*
pNode
,
*
pFanin
,
*
pFanin2
;
Aig_Obj_t
*
pAnd
;
If_Lib_t
*
pTempLib
=
pNtk
->
pLutLib
;
If_Lib
Lut
_t
*
pTempLib
=
pNtk
->
pLutLib
;
Tim_Man_t
*
pTempTim
=
NULL
;
float
tDelta
,
tArrival
;
int
i
,
k
,
k2
,
Counter
,
CounterRes
,
nTimeCris
;
...
...
src/opt/nwk/nwkTiming.c
View file @
dc843b03
...
...
@@ -130,7 +130,7 @@ int Nwk_ManWhereIsPin( Nwk_Obj_t * pFanout, Nwk_Obj_t * pFanin, int * pPinPerm )
***********************************************************************/
float
Nwk_NodeComputeArrival
(
Nwk_Obj_t
*
pObj
,
int
fUseSorting
)
{
If_Lib_t
*
pLutLib
=
pObj
->
pMan
->
pLutLib
;
If_Lib
Lut
_t
*
pLutLib
=
pObj
->
pMan
->
pLutLib
;
int
pPinPerm
[
32
];
float
pPinDelays
[
32
];
Nwk_Obj_t
*
pFanin
;
...
...
@@ -190,7 +190,7 @@ float Nwk_NodeComputeArrival( Nwk_Obj_t * pObj, int fUseSorting )
***********************************************************************/
float
Nwk_NodeComputeRequired
(
Nwk_Obj_t
*
pObj
,
int
fUseSorting
)
{
If_Lib_t
*
pLutLib
=
pObj
->
pMan
->
pLutLib
;
If_Lib
Lut
_t
*
pLutLib
=
pObj
->
pMan
->
pLutLib
;
int
pPinPerm
[
32
];
float
pPinDelays
[
32
];
Nwk_Obj_t
*
pFanout
;
...
...
@@ -263,7 +263,7 @@ float Nwk_NodeComputeRequired( Nwk_Obj_t * pObj, int fUseSorting )
***********************************************************************/
float
Nwk_NodePropagateRequired
(
Nwk_Obj_t
*
pObj
,
int
fUseSorting
)
{
If_Lib_t
*
pLutLib
=
pObj
->
pMan
->
pLutLib
;
If_Lib
Lut
_t
*
pLutLib
=
pObj
->
pMan
->
pLutLib
;
int
pPinPerm
[
32
];
float
pPinDelays
[
32
];
Nwk_Obj_t
*
pFanin
;
...
...
@@ -327,7 +327,7 @@ float Nwk_ManDelayTraceLut( Nwk_Man_t * pNtk )
{
Vec_Ptr_t
*
vObjs
;
int
fUseSorting
=
1
;
If_Lib_t
*
pLutLib
=
pNtk
->
pLutLib
;
If_Lib
Lut
_t
*
pLutLib
=
pNtk
->
pLutLib
;
Vec_Ptr_t
*
vNodes
;
Nwk_Obj_t
*
pObj
;
float
tArrival
,
tRequired
,
tSlack
;
...
...
@@ -458,7 +458,7 @@ int Nwk_ManVerifyTiming( Nwk_Man_t * pNtk )
***********************************************************************/
void
Nwk_ManDelayTracePrint
(
Nwk_Man_t
*
pNtk
)
{
If_Lib_t
*
pLutLib
=
pNtk
->
pLutLib
;
If_Lib
Lut
_t
*
pLutLib
=
pNtk
->
pLutLib
;
Nwk_Obj_t
*
pNode
;
int
i
,
Nodes
,
*
pCounters
;
float
tArrival
,
tDelta
,
nSteps
,
Num
;
...
...
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