2016-09-15 22 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; 
     } 
    } 
関連する問題