diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2015-09-22 19:51:24 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2015-09-22 19:51:24 -0700 |
commit | bfebc0751c37d8353b2b2b9e61fe37f2a3f6f6f4 (patch) | |
tree | 3051cd28c2dc4e425302f640911ee6d3a75f4079 | |
parent | edf6c1372113ceedd833d312214fc677b996cc5b (diff) | |
download | abc-bfebc0751c37d8353b2b2b9e61fe37f2a3f6f6f4.tar.gz abc-bfebc0751c37d8353b2b2b9e61fe37f2a3f6f6f4.tar.bz2 abc-bfebc0751c37d8353b2b2b9e61fe37f2a3f6f6f4.zip |
Fixing corner-cases in 'tempor' and in 'unfold'.
-rw-r--r-- | src/aig/gia/giaDup.c | 5 | ||||
-rw-r--r-- | src/base/abci/abc.c | 7 |
2 files changed, 11 insertions, 1 deletions
diff --git a/src/aig/gia/giaDup.c b/src/aig/gia/giaDup.c index 1cdf12a3..38adfb41 100644 --- a/src/aig/gia/giaDup.c +++ b/src/aig/gia/giaDup.c @@ -3068,6 +3068,11 @@ Gia_Man_t * Gia_ManDupWithConstr( Gia_Man_t * p ) printf( "The miter's output is not AND-decomposable.\n" ); return NULL; } + if ( Gia_ObjFaninId0p(p, pObj) == 0 ) + { + printf( "The miter's output is a constant.\n" ); + return NULL; + } vSuper = Vec_IntAlloc( 100 ); Gia_ManDupWithConstrCollectAnd_rec( p, Gia_ObjChild0(pObj), vSuper, 1 ); assert( Vec_IntSize(vSuper) > 1 ); diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index 26d28543..e1dd7bb4 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -23548,6 +23548,11 @@ int Abc_CommandTempor( Abc_Frame_t * pAbc, int argc, char ** argv ) Abc_Print( 0, "The current network is combinational.\n"); return 0; } + if ( Abc_NtkPiNum(pNtk) == 0 ) + { + Abc_Print( 0, "The current network does not have primary inputs. Use \"addpi\".\n"); + return 0; + } if ( fUpdateCex ) { Abc_Cex_t * pCexNew; @@ -24020,12 +24025,12 @@ int Abc_CommandUnfold( Abc_Frame_t * pAbc, int argc, char ** argv ) Gia_Man_t * pGia = Gia_ManFromAigSimple( pAig ); Aig_ManStop( pAig ); pNew = Gia_ManDupWithConstr( pGia ); + Gia_ManStop( pGia ); if ( pNew == NULL ) { Abc_Print( -1, "Cannot extract constrains from the miter.\n" ); return 0; } - Gia_ManStop( pGia ); pAig = Gia_ManToAigSimple( pNew ); Gia_ManStop( pNew ); pNtkRes = Abc_NtkFromAigPhase( pAig ); |