推 ric2k1:Corrected. Please see post 424. 01/11 22:05
"If the BDD of the gate or the circuit has been built, do nothing."
所以對電路建BDD的過程應該是這樣:
先用BSETVar -PI對每個PI指定一個support (此時BddMap裡只有各PI的名稱)
從PO開始buildBDD()
每次看到一個circuit node, 就去檢查BddMap裡是否已經有這個name
如果有就直接拿來用,沒有就對每個fanin buildBdd()再整合
嗎?
如果bsetvar level時有設定到和電路裡的node相同名稱 這個方法就爛掉了
這種狀況要處理嗎?
(reference program好像就放給他爛,EX:
cread bdd_test/testcases/C17.cir
bsetv -pi -f
bsetv 5 22GAT // 22GAT is a PO in C17
bbuild 22GAT
brep 22GAT
[5](+)
[0](+)
[0](-) (*)
==> Total #BddNodes : 2
BUT, 如果沒有bsetv 5 22GAT那行,就會得到
[4](+)
[3](+)
[1](+)
[0](+)
[0](-) (*)
[2](+)
[0](+) (*)
[0](-) (*)
[3](+)
[2](+)
[0](+) (*)
[1](+) (*)
[2](+) (*)
==> Total #BddNodes : 7
)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.33.200
※ 編輯: timrau 來自: 140.112.33.200 (01/11 21:13)
※ 編輯: timrau 來自: 140.112.33.200 (01/11 21:13)
※ 編輯: timrau 來自: 140.112.33.200 (01/11 21:16)