首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在CUDD中操作从BLIF文件导入的BDD

在CUDD中操作从BLIF文件导入的BDD
EN

Stack Overflow用户
提问于 2016-09-15 12:20:39
回答 1查看 317关注 0票数 3

我正在尝试将一个BLIF文件导入到CUDD包中,从中创建一个BDD,然后执行一些操作。我已经设法使用ntr包导入了BLIF文件。但是,我不知道如何访问结果BDD中的任何变量或节点。

如果我为一个函数创建了自己的BDD,我就会创建变量,并且能够调用它们来执行不同的操作/操作。但是,对于BLIF导入,我得到的只是结果ddManager (dd)和布尔网络(net1)。有人知道如何调用各个变量/节点吗?请参阅下面的BLIF生成代码。谢谢!

代码语言:javascript
复制
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);
EN

回答 1

Stack Overflow用户

发布于 2016-10-25 06:06:21

事实证明并没有那么糟糕。见下文。只需循环遍历布尔网络结构(net1)并使用BNET_OUTPUT_NODE标志查找输出。

代码语言:javascript
复制
  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;
        }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39503058

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档