作者ric2k1 (Ric)
看板EE_DSnP
標題Re: [更正] Final project...
時間Wed Jun 10 23:54:23 2009
[06/10/2009] (11:30pm) 請在 "bddMgr.cpp" 的 "BddMgr::init()" 加上一行
void
BddMgr::init(size_t nin, size_t h, size_t c)
{
_uniqueTable.init(h);
_computedTable.init(c);
// This must be called first
BddNode::setBddMgr(this);
BddNodeInt::_terminal = uniquify(0, 0, 0);
BddNode::_one = BddNode(BddNodeInt::_terminal, BDD_POS_EDGE);
BddNode::_zero = BddNode(BddNodeInt::_terminal, BDD_NEG_EDGE);
_supports.resize(0); // Fixed: 06/10/2009
_supports.reserve(nin+1);
_supports.push_back(BddNode::_one);
for (size_t i = 1; i <= nin; ++i)
_supports.push_back(BddNode(BddNode::_one(), BddNode::_zero(), i));
}
黃色那行.
不加的話, 照攻略寫到第 (vi) 步你的 testBdd 應該會當掉!
除非你的 BddMgr::reset() (攻略第 (viii)) 已經寫完.
(不過其他 BDD command 可能是 OK 的).
> Affected file: bddMgr.cpp
> Updated: bdd.tgz
[06/06/2009] (4:50pm) CIRSETVar 忘記reset CirMgr::_bddVarOrder
> 更正: CirMgr constructor ==> 必須initialize _bddVarOrder to PI_NONE
> In "CirSetVarCmd::exec()", need to call "cirMgr->resetBddVarOrder()"
when "Error: support size is smaller than the circuit input size!!"
> Affected files: lib/libcirref-*.a, ref/bdd-*, src/cir/cirMgr.h
> Updated: bdd.tgz, ref/bdd-32, ref/bdd-64, BDD project.htm
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.224.42.52
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.224.46.125
※ 編輯: ric2k1 來自: 61.224.46.125 (06/11 00:02)
1F:推 chwt2788:bdd> cirg 0 -fani 0 好像不能印編號0的gate? 06/11 13:27
2F:→ chwt2788:試其他編號都可以 06/11 13:27