summaryrefslogtreecommitdiffstats
path: root/src/base/wlc/wlcNtk.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2016-03-10 23:03:53 +0900
committerAlan Mishchenko <alanmi@berkeley.edu>2016-03-10 23:03:53 +0900
commit74328f52da31d827840c972d7c55a257831b22fe (patch)
tree2ae797d424d5fbcbc4ce248d38ae14d154691c15 /src/base/wlc/wlcNtk.c
parent847d661beec552914ff25004f40a14f4fbd10302 (diff)
downloadabc-74328f52da31d827840c972d7c55a257831b22fe.tar.gz
abc-74328f52da31d827840c972d7c55a257831b22fe.tar.bz2
abc-74328f52da31d827840c972d7c55a257831b22fe.zip
Supporting complemented reduction operators.
Diffstat (limited to 'src/base/wlc/wlcNtk.c')
-rw-r--r--src/base/wlc/wlcNtk.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/base/wlc/wlcNtk.c b/src/base/wlc/wlcNtk.c
index 6e9be0bc..0e4f24a2 100644
--- a/src/base/wlc/wlcNtk.c
+++ b/src/base/wlc/wlcNtk.c
@@ -67,6 +67,9 @@ static char * Wlc_Names[WLC_OBJ_NUMBER+1] = {
"&", // 34: reduction AND
"|", // 35: reduction OR
"^", // 36: reduction XOR
+ "~&", // 34: reduction NAND
+ "~|", // 35: reduction NOR
+ "~^", // 36: reduction NXOR
"+", // 37: arithmetic addition
"-", // 38: arithmetic subtraction
"*", // 39: arithmetic multiplier
@@ -391,6 +394,12 @@ void Wlc_NtkPrintDistrib( Wlc_Ntk_t * p, int fVerbose )
Vec_IntAddToEntry( vAnds, WLC_OBJ_REDUCT_OR, Wlc_ObjRange(Wlc_ObjFanin0(p, pObj)) - 1 );
else if ( pObj->Type == WLC_OBJ_REDUCT_XOR )
Vec_IntAddToEntry( vAnds, WLC_OBJ_REDUCT_XOR, 3 * Wlc_ObjRange(Wlc_ObjFanin0(p, pObj)) - 3 );
+ else if ( pObj->Type == WLC_OBJ_REDUCT_NAND )
+ Vec_IntAddToEntry( vAnds, WLC_OBJ_REDUCT_NAND, Wlc_ObjRange(Wlc_ObjFanin0(p, pObj)) - 1 );
+ else if ( pObj->Type == WLC_OBJ_REDUCT_NOR )
+ Vec_IntAddToEntry( vAnds, WLC_OBJ_REDUCT_NOR, Wlc_ObjRange(Wlc_ObjFanin0(p, pObj)) - 1 );
+ else if ( pObj->Type == WLC_OBJ_REDUCT_NXOR )
+ Vec_IntAddToEntry( vAnds, WLC_OBJ_REDUCT_NXOR, 3 * Wlc_ObjRange(Wlc_ObjFanin0(p, pObj)) - 3 );
else if ( pObj->Type == WLC_OBJ_ARI_ADD )
Vec_IntAddToEntry( vAnds, WLC_OBJ_ARI_ADD, 9 * Wlc_ObjRange(Wlc_ObjFanin0(p, pObj)) );
else if ( pObj->Type == WLC_OBJ_ARI_SUB )