diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2016-12-04 21:59:10 -0800 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2016-12-04 21:59:10 -0800 |
commit | 8ba6071a76b2f25995c4048567eb0b3780130ece (patch) | |
tree | fa1f393d3689ea9f365f3a1ac065eafd7e665158 /src/opt/dau/dauGia.c | |
parent | 91aab10757add03dc29e5b7d0d966f5784625949 (diff) | |
download | abc-8ba6071a76b2f25995c4048567eb0b3780130ece.tar.gz abc-8ba6071a76b2f25995c4048567eb0b3780130ece.tar.bz2 abc-8ba6071a76b2f25995c4048567eb0b3780130ece.zip |
New SAT-based optimization package.
Diffstat (limited to 'src/opt/dau/dauGia.c')
-rw-r--r-- | src/opt/dau/dauGia.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/opt/dau/dauGia.c b/src/opt/dau/dauGia.c index c7f5c11f..6489cd86 100644 --- a/src/opt/dau/dauGia.c +++ b/src/opt/dau/dauGia.c @@ -243,7 +243,11 @@ int Dau_DsdBalance( Gia_Man_t * pGia, int * pFans, int nFans, int fAnd ) if ( fAnd ) iFan = Gia_ManAppendAnd( pGia, iFan0, iFan1 ); else if ( pGia->pMuxes ) - iFan = Gia_ManAppendXorReal( pGia, iFan0, iFan1 ); + { + int fCompl = Abc_LitIsCompl(iFan0) ^ Abc_LitIsCompl(iFan1); + iFan = Gia_ManAppendXorReal( pGia, Abc_LitRegular(iFan0), Abc_LitRegular(iFan1) ); + iFan = Abc_LitNotCond( iFan, fCompl ); + } else iFan = Gia_ManAppendXor( pGia, iFan0, iFan1 ); } @@ -369,7 +373,7 @@ int Dau_DsdToGia_rec( Gia_Man_t * pGia, char * pStr, char ** p, int * pMatches, pObj = Gia_ManObj(pGia, Abc_Lit2Var(Res)); if ( Gia_ObjIsAnd(pObj) ) { - if ( pGia->pMuxes ) + if ( pGia->pMuxes && pGia->pHTable != NULL ) Gia_ObjSetMuxLevel( pGia, pObj ); else { |