作者ric2k1 (Ric)
看板EE_DSnP
標題[消息] 關於 BddNode 的名字
時間Tue Jan 5 00:30:21 2010
首先請見 project website 說明的第 (i) 點:
(i) [bddName = varName | gateID] Many commands require the lookup from
name (string varName) or gate ID (int gateID) to BddNode. Please use “
BddManager::_bddMap” to record the connections from “varName” to “BddNode
”, and use “BddManager::_bddArray” to record the connections from “gateID
” to “BddNode”. The “string varName” must be a valid variable name (i.e.
start with [a-zA-Z_]), while the “int gateID” must be a legal non-negative
integer. (Note: each gate will be assigned with a distinct gateID as its DFS
search order, from PI to PO)
並且注意一下 command usage 裏頭到底是 specify "BddName", "varName", 還是
"gateID"? 比方說:
bdd> BAND <(string varName)> <(string bddName)>...
就表示 AND 之後的 BddNode 一定要存成 string 的 varName,但是 inputs 可以是
string name or int gateID. 所以 "band c a b", "band c 1 2" or "band c a 8"
都是合法的。
bdd> BREPort <(string bddName)>
表示可以 "brep 3" or "brep c"。
: 想問一下教授
: 在看不到的 cir package 中,是怎麼把 bddNode 加進 _bddMap 的?
(gateID, BddNode) 只會加到 _bddArr, 不會加到 _bddMap, 因為 gateID is an int
: 因為我用 ref 進行測試 brep 的測試
: cirr testcases/C17.cir
: cirsetv -d
: cirb -a
: brep ....?
: brep 1GAT???
: 怎麼測都是用 ID 來進行呼叫,
嗯, 不用將 (gateName, BddNode) 存到 _bddMap 裏頭。
: 而且這個 ID 應該是根據 netlist 的行號來定義的
: 那麼一個 bdd 的名字呢?
: 還是讀 .cir 檔的 bdd 不會有名字?
: 只有用 BADD 等指令的 bdd node 才會有名字?
可以這麼說
: 那麼這些用BADD 產生的 bdd 需不需要加進 uniqueTable 呢?(目前是沒有)
BAND 吧?
這邊觀念要澄清一下,
uniqueTable 是用來存 Hash(level, left, right) --> BddNodeInt* 用的哦!
跟 Map(string, BddNode) 或是 vector(gateId, BddNode) 是不一樣的!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.224.46.86
1F:推 herbert570:@@手誤...是BAND。不過如果新創出來的 BddNode 他的 01/05 23:10
2F:→ herbert570:BddNodeInt 如果是第一次出現的,那要不要加到 unique- 01/05 23:11
3F:→ herbert570:Table 裡呢? 01/05 23:11
4F:→ ric2k1:當然要囉! 不過這個 BddNodeInt* 應該是在 ite() 裏面被 01/05 23:48
5F:→ ric2k1:產生的吧! 01/05 23:48
6F:→ ric2k1:I mean BAND --> BddNode::operator &() --> BddMgr::ite() 01/05 23:49
7F:推 herbert570:SEE~~~~ 謝謝ric! 01/06 10:52