2016-09-15 11 views
3

BLU 파일을 CUDD 패키지로 가져오고 BDD를 생성 한 다음 몇 가지 조작을 수행하려고합니다. 나는 ntr 패키지를 사용하여 BLIF 파일을 가져올 수 있었다. 그러나 결과 BDD의 변수 나 노드에 어떻게 접근해야하는지 알 수 없습니다.CUDD에서 BLIF 파일에서 가져온 BDD 조작하기

함수에 대한 내 자체 BDD를 만든 경우 변수를 만들어서 다른 조작/연산을 수행하도록 호출 할 수 있습니다. 그러나 BLIF 가져 오기를 사용하면 결과 ddManager (dd)와 부울 네트워크 (net1) 만 있으면됩니다. 누구든지 개별 변수/노드를 호출하는 방법을 알고 있습니까? 아래의 BLIF 생성 코드를 참조하십시오. 감사!

NtrOptions *option; 
option = mainInit(); 
FILE *fp1; 
BnetNetwork *net1 = NULL; 
fp1 = fopen("C17.blif","r"); 
net1 = Bnet_ReadNetwork(fp1,1); 
fclose(fp1); 

DdManager *dd; 
dd = Cudd_Init(0,0,CUDD_UNIQUE_SLOTS,CUDD_CACHE_SLOTS,0); 
Cudd_AutodynEnable(dd,CUDD_REORDER_SIFT); 
int result;  
result = Ntr_buildDDs(net1,dd,option,NULL); 

답변

0

글쎄요. 아래를 참조하십시오. 부울 네트워크 구조 (net1)를 반복하고 BNET_OUTPUT_NODE 플래그를 사용하여 출력을 찾으십시오.

BnetNode *node; 
    DdNode **outputArray; /* output array to store BDD for each output */ 
    outputArray = (DdNode**)malloc(numOutputs * sizeof(DdNode*)); 
    int outCount = 0; 
    for (node = net1->nodes; outCount < numOutputs; node = node->next) { 
    if (node->type == BNET_OUTPUT_NODE){ 
      outputArray[outCount] = node->dd; 
      outCount = outCount + 1; 
     } 
    }