Exemple #1
0
void BddBuilder::dotDumpCZdd(DdNode ** ddNodes){
	char filename[128];
	DdNode * dumpdd[1];
	char * dumpname[1];
	int res;
	for(int i=0 ; i<__outputWireCnt ; ++i){
		if(ddNodes[i] != NULL){
			sprintf(filename, "./dotdump/dumpC_zdd_%s.dot", __ppOutputNodesNames[i]);
			FILE * fp = fopen(filename, "w");
			dumpdd[0] = Cudd_zddPortFromBdd(__pddManager, ddNodes[i]);
			dumpname[0] = __ppOutputNodesNames[i];
			res = Cudd_zddDumpDot(__pddManager, 1, dumpdd, __ppInputNodesNames, dumpname, fp);
			fclose(fp);

			if(res == 1)
				printf("ZDD DOT dump for C's %s completed.\n", __ppOutputNodesNames[i]);
			else
				printf("ZDD DOT dump for C's %s failed.\n", __ppOutputNodesNames[i]);
		}
		else
			printf("ZDD DOT dump for C's %s not executed: A = B\n", __ppOutputNodesNames[i]);
	}
	

}
Exemple #2
0
/* Convert function to ZDD.  This should only be done after all BDD variables have been declared */
static DdNode *zconvert(shadow_mgr mgr, DdNode *n) {
    if (mgr->nzvars < mgr->nvars) {
	Cudd_zddVarsFromBddVars(mgr->bdd_manager, 1);
	mgr->nzvars = mgr->nvars;
    }
    DdNode *zn = Cudd_zddPortFromBdd(mgr->bdd_manager, n);
    reference_dd(mgr, zn);
    return zn;
}