看板 EE_DSnP 關於我們 聯絡資訊
每發現一個SAT equivalence 進行化減以後 就要更新一次存FEC pair的資料結構 例如現在有 A B C D是FEC pair, 而C在B的fanin裡面 A和B已證明相等 把B和A merge以後 保留A 那麼C也會被刪掉 如果沒有更新FEC pair 的話 iterator會指到已經被刪除的gate 還有 如果是B和C merge的話 一定要保留C 否則就會形成loop 不過 在做SAT之前 需要找出B和C各別的子電路 所以應該是可以發現C是在B的fanin裡面 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.4.170
BBSealion:第一個情況 刪B時 可以不要把C刪掉吧 merge只刪掉自己 01/14 15:23
BBSealion:他的fin是沒用了沒錯 但要刪你就要沿路砍回去到pi為止 01/14 15:23
BBSealion:我是沒有做這個麻煩事啦XD 至於不砍的話SAT確實會浪費 01/14 15:23
BBSealion:時間做他 但起碼不會Crash或loop 01/14 15:23
BBSealion:我是盡量把找和砍分開做 找到先通通回報出來 最後一起砍 01/14 15:30
BBSealion:不過現在變成跑很慢 我還在想這樣的overhead多大... 01/14 15:31
ckmarkoh:因為我的gate都有存fanout 所以該砍的就要砍乾淨 01/14 15:36
ckmarkoh:即使沒有存fanout, 如果這個gate的fanout被砍了 01/14 15:40
ckmarkoh:就成了floating gate了吧? 是否會有memory leak的問題? 01/14 15:41
ckmarkoh:更正 如果還有pointer指到這個gate是不會有memory leak的 01/14 15:44
BBSealion:喔 我也有存fanout 所以以這例子 我會把C中的fanout拿掉 01/14 16:37
BBSealion:一個 也就是到B的這個 如果C還有其他fanout才會維持正常 01/14 16:37
BBSealion:等C都確定沒有fanout才該拿掉他 不過我沒做最後這步 01/14 16:38
BBSealion:變floating會出問題嗎? 本來就會有floating吧 不然為何 01/14 16:39
BBSealion:要 report floating呢 都砍完了XD 01/14 16:39
BBSealion:剛想到比較麻煩的是大家的一致性 我下篇題了一下這問題 01/14 16:43
ric2k1:我是覺得先 check B or C 應該都不至於會發生問題, 01/15 00:43
ric2k1:我也有存 fanouts, 我也是先找到一定數目的 UNSAT 之後再 01/15 00:44
ric2k1:做 merge. 只是 merge 之後要重新 collect 一些 circuit 01/15 00:45
ric2k1:information, 像是 DFS, FEC pairs, floating cells, 等等 01/15 00:46
ric2k1:後面這些 info 重新收集應該會比隨時去 maintain 來得容易 01/15 00:47
ric2k1:且有效率。 01/15 00:48