From d9e68f60c84e187cb3759a931e416b9f791269fe Mon Sep 17 00:00:00 2001 From: Alan Mishchenko Date: Fri, 18 May 2018 09:54:06 +0900 Subject: Bug fix in supporting signed multiplication in NDR. --- src/base/wlc/wlcNdr.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'src/base') diff --git a/src/base/wlc/wlcNdr.c b/src/base/wlc/wlcNdr.c index 0822cbb5..8e89ae2c 100644 --- a/src/base/wlc/wlcNdr.c +++ b/src/base/wlc/wlcNdr.c @@ -402,6 +402,13 @@ Wlc_Ntk_t * Wlc_NtkFromNdr( void * pData ) ABC_SWAP( int, Vec_IntEntryP(vFanins, 1)[0], Vec_IntEntryP(vFanins, 2)[0] ); Wlc_ObjAddFanins( pNtk, Wlc_NtkObj(pNtk, iObj), vFanins ); Wlc_ObjSetNameId( pNtk, iObj, NameId ); + if ( Type == ABC_OPER_ARI_SMUL ) + { + pObj = Wlc_NtkObj(pNtk, iObj); + assert( Wlc_ObjFaninNum(pObj) == 2 ); + Wlc_ObjFanin0(pNtk, pObj)->Signed = 1; + Wlc_ObjFanin1(pNtk, pObj)->Signed = 1; + } } // mark primary outputs Ndr_ModForEachPo( p, Mod, Obj ) @@ -424,12 +431,6 @@ Wlc_Ntk_t * Wlc_NtkFromNdr( void * pData ) int * pFanins = Wlc_ObjFanins(pObj); for ( k = 0; k < Wlc_ObjFaninNum(pObj); k++ ) pFanins[k] = Vec_IntEntry(vName2Obj, pFanins[k]); - if ( Wlc_ObjType(pObj) == WLC_OBJ_ARI_MULTI ) - { - assert( Wlc_ObjFaninNum(pObj) == 2 ); - Wlc_ObjFanin0(pNtk, pObj)->Signed = 1; - Wlc_ObjFanin1(pNtk, pObj)->Signed = 1; - } } if ( pNtk->vInits ) { -- cgit v1.2.3