Index: vis_dev/vis-2.3/src/debug/debugNewBdd.c
===================================================================
--- vis_dev/vis-2.3/src/debug/debugNewBdd.c	(revision 97)
+++ vis_dev/vis-2.3/src/debug/debugNewBdd.c	(revision 97)
@@ -0,0 +1,126 @@
+#include "debugInt.h"
+
+Ntk_Node_t * createNewLatchNode(Ntk_Network_t * ntk,char * name)
+{
+  Var_Variable_t * var = Var_VariableAlloc(NIL(Hrc_Node_t),name);
+  char * initName =  util_strcat3(name,"$INIT","");
+  char * nextName =  util_strcat3(name,"$NS","");
+  char * dataName =  util_strcat3(name,"DATA","");
+  Var_Variable_t * initVar = Var_VariableAlloc(NIL(Hrc_Node_t),initName);
+  Var_Variable_t * nextVar = Var_VariableAlloc(NIL(Hrc_Node_t),nextName);
+  Var_Variable_t * dataVar = Var_VariableAlloc(NIL(Hrc_Node_t),dataName);
+  Ntk_Node_t * newLatch = Ntk_NodeCreateInNetwork(ntk, name,var);
+  Ntk_Node_t * newLatchInit = Ntk_NodeCreateInNetwork(ntk, initName,initVar);
+  Ntk_Node_t * newLatchNS = Ntk_NodeCreateInNetwork(ntk, nextName,nextVar);
+  Ntk_Node_t * newLatchData = Ntk_NodeCreateInNetwork(ntk, dataName,dataVar);
+  
+  Ntk_NodeDeclareAsLatch(newLatch, dataName,initName);
+  Ntk_NodeDeclareAsShadow(newLatchNS,newLatch);
+
+  return newLatch;
+
+}
+void addRowValueToTable(Tbl_Table_t * table,int val_i, int val_o)
+{
+  int r = Tbl_TableAddRow(table);
+  int c = 0;
+  int val;
+  Tbl_Entry_t *entry = Tbl_EntryAlloc(Tbl_EntryNormal_c);
+  val = (val_i&1);
+  printf("val %d : %d \n",c,val);
+  Tbl_EntrySetValue(entry,val,val);
+  Tbl_TableSetEntry(table, entry, r, c++, 0);
+  entry = Tbl_EntryAlloc(Tbl_EntryNormal_c);
+  val = ((val_i&2)>>1);
+  printf("val %d : %d \n",c,val);
+  Tbl_EntrySetValue(entry,val,val);
+  Tbl_TableSetEntry(table, entry, r, c++, 0);
+  entry = Tbl_EntryAlloc(Tbl_EntryNormal_c);
+  val = ((val_i&4)>>2);
+  printf("val %d : %d \n",c,val);
+  Tbl_EntrySetValue(entry,val,val);
+  Tbl_TableSetEntry(table, entry, r, c++, 0);
+  val = ((val_i&8)>>3);
+  printf("val %d : %d \n",c,val);
+  Tbl_EntrySetValue(entry,val,val);
+  Tbl_TableSetEntry(table, entry, r, c++, 0);
+  c = 0;
+  entry = Tbl_EntryAlloc(Tbl_EntryNormal_c);
+  //val = (val_0&1);
+  printf("val O %d : %d \n",c,val);
+  Tbl_EntrySetValue(entry,val,val);
+  Tbl_TableSetEntry(table, entry, r, c++, 1);
+  entry = Tbl_EntryAlloc(Tbl_EntryNormal_c);
+  val = ((val_o&2)>>1);
+  printf("val %d : %d \n",c,val);
+  Tbl_EntrySetValue(entry,val,val);
+  Tbl_TableSetEntry(table, entry, r, c++, 1);
+  val = ((val_i&4)>>2);
+  printf("val %d : %d \n",c,val);
+  entry = Tbl_EntryAlloc(Tbl_EntryNormal_c);
+  Tbl_EntrySetValue(entry,val,val);
+  Tbl_TableSetEntry(table, entry, r, c++, 1);
+  
+}
+Tbl_Table_t * createNewTable(char * name)
+{
+  Tbl_Table_t * table =  Tbl_TableAlloc();
+  char * name1 =  util_strcat3(name,"1","");
+  Var_Variable_t * var1 = Var_VariableAlloc(NIL(Hrc_Node_t),name1);
+  char * initName1 =  util_strcat3(name,"$INIT","");
+  char * nextName1 =  util_strcat3(name,"$NS","");
+  char * dataName1 =  util_strcat3(name,"DATA","");
+  Var_Variable_t * initVar1 = Var_VariableAlloc(NIL(Hrc_Node_t),initName1);
+  Var_Variable_t * nextVar1 = Var_VariableAlloc(NIL(Hrc_Node_t),nextName1);
+  Var_Variable_t * dataVar1 = Var_VariableAlloc(NIL(Hrc_Node_t),dataName1);
+  char * name2 =  util_strcat3(name,"2","");
+  Var_Variable_t * var2 = Var_VariableAlloc(NIL(Hrc_Node_t),name2);
+  char * initName2 =  util_strcat3(name,"$INIT","");
+  char * nextName2 =  util_strcat3(name,"$NS","");
+  char * dataName2 =  util_strcat3(name,"DATA","");
+  Var_Variable_t * initVar2 = Var_VariableAlloc(NIL(Hrc_Node_t),initName2);
+  Var_Variable_t * nextVar2 = Var_VariableAlloc(NIL(Hrc_Node_t),nextName2);
+  Var_Variable_t * dataVar2 = Var_VariableAlloc(NIL(Hrc_Node_t),dataName2);
+  char * name3 =  util_strcat3(name,"3","");
+  Var_Variable_t * var3 = Var_VariableAlloc(NIL(Hrc_Node_t),name3);
+  char * initName3 =  util_strcat3(name,"$INIT","");
+  char * nextName3 =  util_strcat3(name,"$NS","");
+  char * dataName3 =  util_strcat3(name,"DATA","");
+  Var_Variable_t * initVar3 = Var_VariableAlloc(NIL(Hrc_Node_t),initName3);
+  Var_Variable_t * nextVar3 = Var_VariableAlloc(NIL(Hrc_Node_t),nextName3);
+  Var_Variable_t * dataVar3 = Var_VariableAlloc(NIL(Hrc_Node_t),dataName3);
+  
+  Var_Variable_t * nd = Var_VariableAlloc(NIL(Hrc_Node_t),"ND");
+  Var_VariableSetPI(nd);
+
+  Var_VariableSetPS(var1);
+  Var_VariableSetPS(var2);
+  Var_VariableSetPS(var3);
+  Var_VariableSetNS(nextVar1);
+  Var_VariableSetNS(nextVar2);
+  Var_VariableSetNS(nextVar3);
+
+  Tbl_TableAddColumn(table,var1,0);
+  Tbl_TableAddColumn(table,var2,0);
+  Tbl_TableAddColumn(table,var3,0);
+  Tbl_TableAddColumn(table,nd,0);
+  Tbl_TableAddColumn(table,dataVar1,1);
+  Tbl_TableAddColumn(table,dataVar2,1);
+  Tbl_TableAddColumn(table,dataVar3,1);
+
+  addRowValueToTable(table,0, 1);
+  addRowValueToTable(table,1, 2);
+  addRowValueToTable(table,2, 4);
+  addRowValueToTable(table,4, 3);
+  addRowValueToTable(table,6, 4);
+  addRowValueToTable(table,8, 4);
+  Tbl_TableWriteBlifMvToFile(table,0,vis_stdout);
+
+}
+mdd_t * buildDummy3(mdd_manager * mddManager,Ntk_Network_t * ntk)
+{
+    //Ntk_Node_t * node = createNewLatchNode(ntk,"E2");
+    createNewTable("E");
+    return NIL(mdd_t);
+}
+
