※ 引述《hschiang (hschiang)》之銘言:
: 問2個很笨的問題
: 1.
: PA2一開始應該是要從電路建BDD吧
: 那要怎麼得到電路呢
: buildBdd裡面好像是先對想要建的線做DFS
: 之後就是TODO了
: 還是搞不太懂要怎麼樣把電路弄出來
再看一次好像知道你的問題了XD.先前的回答還是留著供其他人參考
關於你的問題.也許先看看V3Ntk有什麼member function?
或是看一下在v3其他地方.相關的function是怎麼被呼叫的
e.g. bddCmd.cpp_,
alg/v3AlgSimulate.cpp(如果你想看得很詳細的話)
這部份應該很容易理解
DFS後電路中每個net等於是照topological order排好
接下來自然而然是依序建好每個net對應的BDD
(當然這種做法不是唯一解)
除非你不知道怎麼call BDD的function.不然問題應該不大
(除了要注意在v3裡做BDD已假設是在aig上進行.先了解aig的特性?)
: 2.
: 在使用ref的程式的時候
: 建BDD前一定要先壓成aig
: 可是這樣brep怎麼知道要call哪個bddName
: 有方法可以直接看output某個bit的Bdd嗎
這部份可能說明文件沒特別說清楚
用print ntk -p可以看到電路的port及其對應的net id
而在ref裡.電路中的net對應的bdd name就是其net id
所以可以用brep <net id>來看想要看的net
延伸: 另外ref應該有提供net -n <net id> <level>這個指令來簡單查看電路的fanin結構
可以用這個指令來找某些net fanin的net id
再持續report其fanin的相關資訊
如果有需要可以試試 (雖然大多應該能看到output就足夠了)
不知道這樣回答有沒有解決你的疑惑?