作者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