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
f402d09c
Commit
f402d09c
authored
Mar 06, 2020
by
Alan Mishchenko
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Updating and extending simulation data structures.
parent
ed90ce20
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
21 additions
and
107 deletions
+21
-107
src/aig/gia/giaGen.c
+19
-14
src/base/abci/abc.c
+2
-93
No files found.
src/aig/gia/giaGen.c
View file @
f402d09c
...
...
@@ -236,28 +236,29 @@ void Gia_ManDumpFiles( Gia_Man_t * p, int nCexesT, int nCexesV, int Seed, char *
***********************************************************************/
void
Gia_ManDumpPlaFiles
(
Gia_Man_t
*
p
,
int
nCexesT
,
int
nCexesV
,
int
Seed
,
char
*
pFileName
)
{
int
n
,
nSize
[
2
]
=
{
nCexesT
*
64
,
nCexesV
*
64
};
int
n
,
nSize
[
3
]
=
{
nCexesT
,
nCexesV
,
nCexesV
};
char
pFileNameOutT
[
100
];
char
pFileNameOutV
[
100
];
char
pFileNameOut
[
3
][
100
];
sprintf
(
pFileNameOutT
,
"train_%s_%d.pla"
,
pFileName
?
pFileName
:
Gia_ManName
(
p
),
nSize
[
0
]
);
sprintf
(
pFileNameOutV
,
"test_%s_%d.pla"
,
pFileName
?
pFileName
:
Gia_ManName
(
p
),
nSize
[
1
]
);
sprintf
(
pFileNameOut
[
0
],
"%s.train.pla"
,
pFileName
?
pFileName
:
Gia_ManName
(
p
)
);
sprintf
(
pFileNameOut
[
1
],
"%s.valid.pla"
,
pFileName
?
pFileName
:
Gia_ManName
(
p
)
);
sprintf
(
pFileNameOut
[
2
],
"%s.test.pla"
,
pFileName
?
pFileName
:
Gia_ManName
(
p
)
);
Gia_ManRandomW
(
1
);
for
(
n
=
0
;
n
<
Seed
;
n
++
)
Gia_ManRandomW
(
0
);
for
(
n
=
0
;
n
<
2
;
n
++
)
for
(
n
=
0
;
n
<
3
;
n
++
)
{
int
Res
=
Gia_ManSimulateWords
(
p
,
nSize
[
n
]
);
int
i
,
k
,
Id
;
FILE
*
pFileOut
=
fopen
(
n
?
pFileNameOutV
:
pFileNameOutT
,
"wb"
);
FILE
*
pFileOut
=
fopen
(
pFileNameOut
[
n
]
,
"wb"
);
fprintf
(
pFileOut
,
".i %d
\n
"
,
Gia_ManCiNum
(
p
)
);
fprintf
(
pFileOut
,
".o %d
\n
"
,
Gia_ManCoNum
(
p
)
);
fprintf
(
pFileOut
,
".p %d
\n
"
,
nSize
[
n
]
);
for
(
k
=
0
;
k
<
nSize
[
n
];
k
++
)
fprintf
(
pFileOut
,
".p %d
\n
"
,
nSize
[
n
]
*
64
);
fprintf
(
pFileOut
,
".type fr
\n
"
);
for
(
k
=
0
;
k
<
nSize
[
n
]
*
64
;
k
++
)
{
Gia_ManForEachCiId
(
p
,
Id
,
i
)
{
...
...
@@ -278,7 +279,7 @@ void Gia_ManDumpPlaFiles( Gia_Man_t * p, int nCexesT, int nCexesV, int Seed, cha
Res
=
0
;
}
printf
(
"Finished dumping files
\"
%s
\"
and
\"
%s
\"
.
\n
"
,
pFileNameOutT
,
pFileNameOutV
);
printf
(
"Finished dumping files
:
\"
%s.{train, valid, test}.pla
\"
.
\n
"
,
pFileName
?
pFileName
:
Gia_ManName
(
p
)
);
}
/**Function*************************************************************
...
...
@@ -337,6 +338,7 @@ int Gia_ManSimParamRead( char * pFileName, int * pnIns, int * pnWords )
*
pnIns
=
nIns
-
1
;
*
pnWords
=
nLines
/
64
;
//printf( "Expecting %d inputs and %d words of simulation data.\n", *pnIns, *pnWords );
fclose
(
pFile
);
return
1
;
}
void
Gia_ManSimFileRead
(
char
*
pFileName
,
int
nIns
,
int
nWords
,
Vec_Wrd_t
*
vSimsIn
,
Vec_Int_t
*
vValues
)
...
...
@@ -374,11 +376,11 @@ void Gia_ManSimFileRead( char * pFileName, int nIns, int nWords, Vec_Wrd_t * vSi
}
assert
(
nPats
==
64
*
nWords
);
fclose
(
pFile
);
printf
(
"Read %d simulation patterns for %d inputs.
\n
"
,
64
*
nWords
,
nIn
s
);
printf
(
"Read %d simulation patterns for %d inputs.
Probability of 1 at the output is %6.2f %%.
\n
"
,
64
*
nWords
,
nIns
,
100
.
0
*
Vec_IntSum
(
vValues
)
/
nPat
s
);
}
void
Gia_ManCompareValues
(
Gia_Man_t
*
p
,
Vec_Wrd_t
*
vSimsIn
,
Vec_Int_t
*
vValues
)
{
int
i
,
Value
,
Count
=
0
,
nWords
=
Vec_WrdSize
(
vSimsIn
)
/
Gia_ManCiNum
(
p
);
int
i
,
Value
,
Guess
,
Count
=
0
,
nWords
=
Vec_WrdSize
(
vSimsIn
)
/
Gia_ManCiNum
(
p
);
word
*
pSims
;
assert
(
Vec_IntSize
(
vValues
)
==
nWords
*
64
);
Gia_ManSimulateWordsInit
(
p
,
vSimsIn
);
...
...
@@ -387,8 +389,11 @@ void Gia_ManCompareValues( Gia_Man_t * p, Vec_Wrd_t * vSimsIn, Vec_Int_t * vValu
Vec_IntForEachEntry
(
vValues
,
Value
,
i
)
if
(
Abc_TtGetBit
(
pSims
,
i
)
==
Value
)
Count
++
;
printf
(
"Total = %6d. Errors = %6d. Correct = %6d. (%6.2f %%)
\n
"
,
Vec_IntSize
(
vValues
),
Vec_IntSize
(
vValues
)
-
Count
,
Count
,
100
.
0
*
Count
/
Vec_IntSize
(
vValues
)
);
Guess
=
(
Vec_IntSum
(
vValues
)
>
nWords
*
32
)
?
Vec_IntSum
(
vValues
)
:
nWords
*
64
-
Vec_IntSum
(
vValues
);
printf
(
"Total = %6d. Errors = %6d. Correct = %6d. (%6.2f %%) Naive guess = %6d. (%6.2f %%)
\n
"
,
Vec_IntSize
(
vValues
),
Vec_IntSize
(
vValues
)
-
Count
,
Count
,
100
.
0
*
Count
/
Vec_IntSize
(
vValues
),
Guess
,
100
.
0
*
Guess
/
Vec_IntSize
(
vValues
));
}
/**Function*************************************************************
...
...
src/base/abci/abc.c
View file @
f402d09c
...
...
@@ -23433,7 +23433,7 @@ int Abc_CommandSymFun( Abc_Frame_t * pAbc, int argc, char ** argv )
else
printf
(
"Generated truth table of the %d-variable function (%s) and set it as the current network
\n
"
,
nVars
,
pTruth
);
}
else
else
if
(
nVars
<=
8
)
printf
(
"%s
\n
"
,
pTruth
);
// read the truth table to be the current network in ABC
pCommand
=
ABC_CALLOC
(
char
,
strlen
(
pTruth
)
+
100
);
...
...
@@ -47436,39 +47436,11 @@ usage:
***********************************************************************/
int
Abc_CommandAbc9Test
(
Abc_Frame_t
*
pAbc
,
int
argc
,
char
**
argv
)
{
Gia_Man_t
*
pTemp
=
NULL
;
int
c
,
fVerbose
=
0
;
int
nFrames
=
5
;
int
fSwitch
=
0
;
int
nWords
=
1000
;
int
nProcs
=
2
;
// extern Gia_Man_t * Gia_VtaTest( Gia_Man_t * p );
// extern int Gia_ManSuppSizeTest( Gia_Man_t * p );
// extern void Gia_VtaTest( Gia_Man_t * p, int nFramesStart, int nFramesMax, int nConfMax, int nTimeMax, int fVerbose );
// extern void Gia_IsoTest( Gia_Man_t * p, int fVerbose );
// extern void Ga2_ManComputeTest( Gia_Man_t * p );
// extern void Bmc_CexTest( Gia_Man_t * p, Abc_Cex_t * pCex, int fVerbose );
// extern void Gia_IsoTest( Gia_Man_t * p, Abc_Cex_t * pCex, int fVerbose );
// extern void Unr_ManTest( Gia_Man_t * pGia, int nFrames );
// extern int Gia_ManVerify( Gia_Man_t * pGia );
// extern Gia_Man_t * Gia_ManOptimizeRing( Gia_Man_t * p );
// extern void Gia_ManCollectSeqTest( Gia_Man_t * p );
// extern Gia_Man_t * Gia_SweeperFraigTest( Gia_Man_t * p, int nWords, int nConfs, int fVerbose );
// extern Gia_Man_t * Bmc_CexDepthTest( Gia_Man_t * p, Abc_Cex_t * pCex, int nFrames, int fVerbose );
// extern Gia_Man_t * Bmc_CexTarget( Gia_Man_t * p, int nFrames );
// extern void Gia_ManMuxProfiling( Gia_Man_t * p );
// extern Gia_Man_t * Mig_ManTest( Gia_Man_t * pGia );
// extern Gia_Man_t * Gia_ManInterTest( Gia_Man_t * p );
// extern Gia_Man_t * Llb_ReachableStatesGia( Gia_Man_t * p );
// extern Gia_Man_t * Unm_ManTest( Gia_Man_t * pGia );
// extern void Agi_ManTest( Gia_Man_t * pGia );
// extern void Gia_ManCheckFalseTest( Gia_Man_t * p, int nSlackMax );
// extern void Gia_ParTest( Gia_Man_t * p, int nWords, int nProcs );
// extern void Gia_ManTisTest( Gia_Man_t * pInit );
// extern void Gia_StoComputeCuts( Gia_Man_t * p );
// extern void Abc_BddGiaTest( Gia_Man_t * pGia, int fVerbose );
extern
Gia_Man_t
*
Dau_ConstructAigFromFile
(
char
*
pFileName
);
Extra_UtilGetoptReset
();
while
(
(
c
=
Extra_UtilGetopt
(
argc
,
argv
,
"WPFsvh"
)
)
!=
EOF
)
{
...
...
@@ -47524,70 +47496,7 @@ int Abc_CommandAbc9Test( Abc_Frame_t * pAbc, int argc, char ** argv )
// Abc_Print( -1, "Abc_CommandAbc9Test(): There is no AIG.\n" );
// return 1;
// }
/*
if ( pAbc->pCex == NULL )
{
Abc_Print( -1, "Abc_CommandAbc9Test(): There is no CEX.\n" );
return 1;
}
*/
// Gia_ManFrontTest( pAbc->pGia );
// Gia_ManReduceConst( pAbc->pGia, 1 );
// Sat_ManTest( pAbc->pGia, Gia_ManCo(pAbc->pGia, 0), 0 );
// Gia_ManTestDistance( pAbc->pGia );
// Gia_SatSolveTest( pAbc->pGia );
// For_ManExperiment( pAbc->pGia, 20, 1, 1 );
// Gia_ManUnrollSpecial( pAbc->pGia, 5, 100, 1 );
// pAbc->pGia = Gia_ManDupSelf( pTemp = pAbc->pGia );
// pAbc->pGia = Gia_ManRemoveEnables( pTemp = pAbc->pGia );
// Cbs_ManSolveTest( pAbc->pGia );
// pAbc->pGia = Gia_VtaTest( pTemp = pAbc->pGia );
// Gia_ManStopP( &pTemp );
// Gia_ManSuppSizeTest( pAbc->pGia );
// Gia_VtaTest( pAbc->pGia, 10, 100000, 0, 0, 1 );
// Gia_IsoTest( pAbc->pGia, fVerbose );
// Ga2_ManComputeTest( pAbc->pGia );
// Bmc_CexTest( pAbc->pGia, pAbc->pCex, fVerbose );
// Gia_IsoTest( pAbc->pGia, pAbc->pCex, 0 );
// Unr_ManTest( pAbc->pGia, nFrames );
// Gia_ManVerifyWithBoxes( pAbc->pGia );
// Gia_ManCollectSeqTest( pAbc->pGia );
// pTemp = Gia_ManOptimizeRing( pAbc->pGia );
// pTemp = Gia_SweeperFraigTest( pAbc->pGia, 4, 1000, 0 );
// Abc_FrameUpdateGia( pAbc, pTemp );
// pTemp = Bmc_CexDepthTest( pAbc->pGia, pAbc->pCex, nFrames, fVerbose );
// pTemp = Bmc_CexTarget( pAbc->pGia, nFrames );
// Abc_FrameUpdateGia( pAbc, pTemp );
// Gia_ManMuxProfiling( pAbc->pGia );
// pTemp = Mig_ManTest( pAbc->pGia );
// Abc_FrameUpdateGia( pAbc, pTemp );
// pTemp = Gia_ManInterTest( pAbc->pGia );
// Abc_FrameUpdateGia( pAbc, pTemp );
// pTemp = Llb_ReachableStatesGia( pAbc->pGia );
// Abc_FrameUpdateGia( pAbc, pTemp );
// Unm_ManTest( pAbc->pGia );
// Agi_ManTest( pAbc->pGia );
// Gia_ManResubTest( pAbc->pGia );
// Jf_ManTestCnf( pAbc->pGia );
// Gia_ManCheckFalseTest( pAbc->pGia, nFrames );
// Gia_ParTest( pAbc->pGia, nWords, nProcs );
// Gia_StoComputeCuts( pAbc->pGia );
// printf( "\nThis command is currently disabled.\n\n" );
/*
{
char Buffer[10];
extern void Gia_DumpLutSizeDistrib( Gia_Man_t * p, char * pFileName );
sprintf( Buffer, "stats%d.txt", nFrames );
if ( pAbc->pGia )
Gia_DumpLutSizeDistrib( pAbc->pGia, Buffer );
}
*/
// pTemp = Slv_ManToAig( pAbc->pGia );
// Abc_FrameUpdateGia( pAbc, pTemp );
// Extra_TestGia2( pAbc->pGia );
//pTemp = Dau_ConstructAigFromFile( "lib4var2.txt" );
//Abc_FrameUpdateGia( pAbc, pTemp );
//Gia_Sim5TestPolarities( pAbc->pGia );
// Abc_FrameUpdateGia( pAbc, Abc_Procedure(pAbc->pGia) );
return
0
;
usage:
Abc_Print
(
-
2
,
"usage: &test [-FW num] [-svh]
\n
"
);
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