作者slinh (有)(闪)(光)
看板EE_DSnP
标题Re: [问题] cirsetv 的问题
时间Wed Jan 6 17:03:04 2010
※ 引述《Ruger (一直处於忙碌中...)》之铭言:
: ※ 引述《dragonegg (egg)》之铭言:
: : 如题,我在试C432.aag时出现一个很奇怪的情况…
: : 就是我直接使用dofile时不会有error message,但是直接一行一行打的时候,
: : 会在cirsetv -f 时出现以下的error message
: : Warning: circuit BDD variable order has been set!!
: : Warning: resetting BDDs...
: : Error: support size is smaller than the circuit input size!!
: : 看了老半天也不知道错在哪里Orz...可以请大家帮忙出个意见吗?
: : 谢谢。
: 我也有类似问题耶
: bdd> breset 256 65521 65521
: bdd> cirr ../testcases/C432.aag
: bdd> cirsetv -file
: Warning: circuit BDD variable order has been set!!
: Warning: resetting BDDs...
: Error: support size is smaller than the circuit input size!!
: 用ddd trace的结果是 在cirCmd里面
: 很奇怪他会过不了if(cirMgr->isBddVarOrderSet())
: 於是他就跑到判断式里印出warning
: 然後对..BddMgr reset!!!
: 这样之前的reset就会被洗掉
: 可是我明明是直接用dofile来执行 所以不是重复执行
: 为甚麽cirMgr 的 _BddVarOrder 会不知道在哪里被set了
: 这算是跟自己写的地方有关吗
: 可是bddMgr reset 应该没有关系阿
: 还是跟老师给的CirMgr.o有关系????
: (我的是link到最新下载的CirMgr-64.o to64的link内容也更新过)
: 麻烦谁可以解救我一下 只剩4小时了QQ
: 因为我除了C17之外其他全部都有一样问题 这样什麽都测不了@@
: (目前我暂时把判断是里面的对memMgr reset的指令拿掉 这样就可以跑)
不知道问题会不会太蠢
现在也卡在cirsetv -f这个问题
我的程式执行後就打cirr C17.cir
接着cirsetv -f
然後就跑出Error: support size is smaller than the circuit input size!!
看来看去那些初始的函式应该都不是TODO阿 (除了reset)
後来试着用breset 999 999 999之类的也一样...
没有什麽建议 感谢大家
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.4.192
1F:推 ric2k1:cout 一下bddMgr->getNumSupports() 跟 cirMgr->getNumPi() 01/06 17:09
2F:推 ric2k1:搰搦e者是否 >= 後者 01/06 17:10
3F:推 ric2k1:(what the hack...) 看看前者 是否 >= 後者 01/06 17:10
如果是我资质驽钝 先跟老师说抱歉 因为我还是卡在这无关紧要的地方XD
我测过
bddMgr->getNumSupports()
是对的 结果就是breset n x x 里面的n再加1
而cirMgr->getNumPi()我就不知道该放哪了
最後我找到cirMgr.h里面的void addPi(CirGate* g) 把它改成
void addPi(CirGate* g) { _piList.push_back(g); cout<<getNumPi()<<endl;}
之後make clean, make 64, make
打入 bdd> cirr C17.cir 以後
毫无反应...
addPi(CirGate* g)应该要有被用到不是吗...
※ 编辑: slinh 来自: 140.112.248.174 (01/07 18:33)
4F:推 ric2k1:No problem. 就在任何一个会执行到的 cpp 里加上 01/07 19:48
5F:→ ric2k1:bddMgr->getNumSupports() and cirMgr->getNumPi() 01/07 19:49
6F:→ ric2k1:就好了... 比方说 bddCmd.cpp or bddMgr.cpp 01/07 19:50
7F:→ slinh:cirMgr was not declared? 还有addPi应该会在cirr时被呼叫吧 01/07 20:18
8F:推 ric2k1:extern CirMgr* cirMgr; 01/07 21:48
9F:→ slinh:getNumSupports大於getNumPi 还是会出现support size smal.. 01/07 22:09
10F:→ slinh:support设10, C17 Pi 有5个 01/07 22:11