summaryrefslogtreecommitdiffstats
path: root/src/base/abci
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2012-03-23 22:52:30 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2012-03-23 22:52:30 -0700
commit3abd9773a4bf21bb6b7edda15be17de1f8b3ecc8 (patch)
treec8e58310baf015b7c7d452ee9caf99ffbada88f3 /src/base/abci
parent1c31dbe7861e1b5313dd6de8c34951aeb5e4b35c (diff)
downloadabc-3abd9773a4bf21bb6b7edda15be17de1f8b3ecc8.tar.gz
abc-3abd9773a4bf21bb6b7edda15be17de1f8b3ecc8.tar.bz2
abc-3abd9773a4bf21bb6b7edda15be17de1f8b3ecc8.zip
Enabled demitering dual-output miters.
Diffstat (limited to 'src/base/abci')
-rw-r--r--src/base/abci/abc.c72
-rw-r--r--src/base/abci/abcDar.c2
-rw-r--r--src/base/abci/abcDress2.c2
3 files changed, 29 insertions, 47 deletions
diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c
index 1fdceb32..92d0d168 100644
--- a/src/base/abci/abc.c
+++ b/src/base/abci/abc.c
@@ -5666,30 +5666,21 @@ usage:
***********************************************************************/
int Abc_CommandDemiter( Abc_Frame_t * pAbc, int argc, char ** argv )
{
- Abc_Ntk_t * pNtk = Abc_FrameReadNtk(pAbc);//, * pNtkRes;
- int fDual, fSeq, fVerbose;
- int c;
- extern int Abc_NtkDemiter( Abc_Ntk_t * pNtk );
+ Abc_Ntk_t * pNtk = Abc_FrameReadNtk(pAbc);
+ int c, fDual, fVerbose;
extern int Abc_NtkDarDemiter( Abc_Ntk_t * pNtk );
extern int Abc_NtkDarDemiterDual( Abc_Ntk_t * pNtk, int fVerbose );
-
- extern int Abc_NtkDarDemiterNew( Abc_Ntk_t * pNtk );
-
// set defaults
fDual = 0;
- fSeq = 1;
fVerbose = 1;
Extra_UtilGetoptReset();
- while ( ( c = Extra_UtilGetopt( argc, argv, "dsvh" ) ) != EOF )
+ while ( ( c = Extra_UtilGetopt( argc, argv, "dvh" ) ) != EOF )
{
switch ( c )
{
case 'd':
fDual ^= 1;
break;
- case 's':
- fSeq ^= 1;
- break;
case 'v':
fVerbose ^= 1;
break;
@@ -5710,9 +5701,6 @@ int Abc_CommandDemiter( Abc_Frame_t * pAbc, int argc, char ** argv )
return 1;
}
-// Abc_NtkDarDemiterNew( pNtk );
-// return 0;
-
if ( fDual )
{
if ( (Abc_NtkPoNum(pNtk) & 1) )
@@ -5727,43 +5715,37 @@ int Abc_CommandDemiter( Abc_Frame_t * pAbc, int argc, char ** argv )
}
return 0;
}
-
- // get the new network
- if ( fSeq )
+/*
+ if ( Abc_NtkPoNum(pNtk) != 1 )
{
- if ( !Abc_NtkDarDemiter( pNtk ) )
- {
- Abc_Print( -1, "Demitering has failed.\n" );
- return 1;
- }
+ Abc_Print( -1, "The network is not a single-output miter.\n" );
+ return 1;
}
- else
+ if ( !Abc_NodeIsExorType(Abc_ObjFanin0(Abc_NtkPo(pNtk,0))) )
{
- if ( Abc_NtkPoNum(pNtk) != 1 )
- {
- Abc_Print( -1, "The network is not a single-output miter.\n" );
- return 1;
- }
- if ( !Abc_NodeIsExorType(Abc_ObjFanin0(Abc_NtkPo(pNtk,0))) )
- {
- Abc_Print( -1, "The miter's PO is not an EXOR.\n" );
- return 1;
- }
- if ( !Abc_NtkDemiter( pNtk ) )
- {
- Abc_Print( -1, "Demitering has failed.\n" );
- return 1;
- }
+ Abc_Print( -1, "The miter's PO is not an EXOR.\n" );
+ return 1;
+ }
+ if ( !Abc_NtkDemiter( pNtk ) )
+ {
+ Abc_Print( -1, "Demitering has failed.\n" );
+ return 1;
+ }
+*/
+ // get the new network
+ if ( !Abc_NtkDarDemiter( pNtk ) )
+ {
+ Abc_Print( -1, "Demitering has failed.\n" );
+ return 1;
}
// replace the current network
// Abc_FrameReplaceCurrentNetwork( pAbc, pNtkRes );
return 0;
usage:
- Abc_Print( -2, "usage: demiter [-dsvh]\n" );
- Abc_Print( -2, "\t removes topmost XOR from the miter to create two POs\n" );
- Abc_Print( -2, "\t-d : demiters a dual-output miter (without XORs) [default = %s]\n", fSeq? "yes": "no" );
- Abc_Print( -2, "\t-s : applies a multi-output algorithm [default = %s]\n", fSeq? "yes": "no" );
+ Abc_Print( -2, "usage: demiter [-dvh]\n" );
+ Abc_Print( -2, "\t splits sequential miter into two circuits\n" );
+ Abc_Print( -2, "\t-d : expects a dual-output miter (without XORs) [default = %s]\n", fDual? "yes": "no" );
Abc_Print( -2, "\t-v : toggles outputting verbose information [default = %s]\n", fVerbose? "yes": "no" );
Abc_Print( -2, "\t-h : print the command usage\n");
return 1;
@@ -24370,7 +24352,7 @@ int Abc_CommandAbc9Miter( Abc_Frame_t * pAbc, int argc, char ** argv )
usage:
Abc_Print( -2, "usage: &miter [-dstvh] <file>\n" );
Abc_Print( -2, "\t creates miter of two designs (current AIG vs. <file>)\n" );
- Abc_Print( -2, "\t-d : toggle creating dual output miter [default = %s]\n", fDualOut? "yes": "no" );
+ Abc_Print( -2, "\t-d : toggle creating dual-output miter [default = %s]\n", fDualOut? "yes": "no" );
Abc_Print( -2, "\t-s : toggle creating sequential miter [default = %s]\n", fSeq? "yes": "no" );
Abc_Print( -2, "\t-t : toggle XORing pair-wise POs of the miter [default = %s]\n", fTrans? "yes": "no" );
Abc_Print( -2, "\t-v : toggle printing verbose information [default = %s]\n", fVerbose? "yes": "no" );
@@ -25034,7 +25016,7 @@ int Abc_CommandAbc9Srm( Abc_Frame_t * pAbc, int argc, char ** argv )
usage:
Abc_Print( -2, "usage: &srm [-drsfvh]\n" );
Abc_Print( -2, "\t writes speculatively reduced model into file \"%s\"\n", pFileName );
- Abc_Print( -2, "\t-d : toggle creating dual output miter [default = %s]\n", fDualOut? "yes": "no" );
+ Abc_Print( -2, "\t-d : toggle creating dual-output miter [default = %s]\n", fDualOut? "yes": "no" );
Abc_Print( -2, "\t-r : toggle writing reduced network for synthesis [default = %s]\n", fSynthesis? "yes": "no" );
Abc_Print( -2, "\t-s : toggle using speculation at the internal nodes [default = %s]\n", fSpeculate? "yes": "no" );
Abc_Print( -2, "\t-f : toggle filtering to remove redundant equivalences [default = %s]\n", fSkipSome? "yes": "no" );
diff --git a/src/base/abci/abcDar.c b/src/base/abci/abcDar.c
index 466af072..58a9ba19 100644
--- a/src/base/abci/abcDar.c
+++ b/src/base/abci/abcDar.c
@@ -2186,7 +2186,7 @@ int Abc_NtkDarDemiter( Abc_Ntk_t * pNtk )
return 0;
}
// create file names
- pFileNameGeneric = Extra_FileNameGeneric( pNtk->pSpec );
+ pFileNameGeneric = Extra_FileNameGeneric( pNtk->pSpec ? pNtk->pSpec : pNtk->pName );
sprintf( pFileName0, "%s%s", pFileNameGeneric, "_part0.aig" );
sprintf( pFileName1, "%s%s", pFileNameGeneric, "_part1.aig" );
ABC_FREE( pFileNameGeneric );
diff --git a/src/base/abci/abcDress2.c b/src/base/abci/abcDress2.c
index b50a660b..efd7db3b 100644
--- a/src/base/abci/abcDress2.c
+++ b/src/base/abci/abcDress2.c
@@ -70,7 +70,7 @@ extern void Dch_ComputeEquivalences( Aig_Man_t * pAig, Dch_Pars_t * pPar
/**Function*************************************************************
- Synopsis [Creates the dual output miter.]
+ Synopsis [Creates the dual-output miter.]
Description []