diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2012-03-23 22:52:30 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2012-03-23 22:52:30 -0700 |
commit | 3abd9773a4bf21bb6b7edda15be17de1f8b3ecc8 (patch) | |
tree | c8e58310baf015b7c7d452ee9caf99ffbada88f3 /src/base | |
parent | 1c31dbe7861e1b5313dd6de8c34951aeb5e4b35c (diff) | |
download | abc-3abd9773a4bf21bb6b7edda15be17de1f8b3ecc8.tar.gz abc-3abd9773a4bf21bb6b7edda15be17de1f8b3ecc8.tar.bz2 abc-3abd9773a4bf21bb6b7edda15be17de1f8b3ecc8.zip |
Enabled demitering dual-output miters.
Diffstat (limited to 'src/base')
-rw-r--r-- | src/base/abci/abc.c | 72 | ||||
-rw-r--r-- | src/base/abci/abcDar.c | 2 | ||||
-rw-r--r-- | src/base/abci/abcDress2.c | 2 |
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 [] |