看板 EE_DSnP 關於我們 聯絡資訊
原本測試AND OR NAND NOR XOR NXOR都是沒有問題的 可是在放了cache以後 變得很奇怪 AND OR NAND NOR 都正常 可是 如果我連續兩次XOR 就會變成 bdd> bxor d a b bdd> bxor e a b bdd> brep c [2](-) [1](+) [0](+) [0](-) (*) [1](-) (*) ==> Total #BddNodes : 3 bdd> brep d [2](+) [1](+) [0](+) [0](-) (*) [1](-) (*) 非常奇怪的最上面的[2]的bubble居然反了過來@@" 同樣的狀況 bdd> bxor g b a bdd> brep g -addr -ref [2](-) 0x808c0a0 (1) [1](+) 0x80891e8 (5) [0](+) 0x80890d0 (133) [0](-) 0x80890d0 (133) (*) [1](-) 0x80891e8 (5) (*) ==> Total #BddNodes : 3 bdd> bxnor h b a bdd> brep h -addr -ref [2](-) 0x808c0a0 (1) [1](+) 0x80891e8 (5) [0](+) 0x80890d0 (133) [0](-) 0x80890d0 (133) (*) [1](-) 0x80891e8 (5) (*) ==> Total #BddNodes : 3 這次是XOR和XNOR變成一樣了 囧 問題是同樣的狀況 AND OR NAND NOR都不會發生 且加cache之前也是對的 我在讀computed table時是這樣寫的: BddCacheKey key(f(),g(),h()); size_t r=_computedTable.read(key); if(r){ ret=BddNode(r); return ret; } 請問是哪裡有錯嗎? 已經de了一個多小時找不出問題 麻煩大家了!! 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.4.234
yongling:沒有檢查 isNegEdge 06/20 20:04
trancewu:請問ITE中究竟有哪些地方需要檢查,我算到是四個... 06/20 20:38
yongling:只要回傳時有檢查應該就 ok 了,但你上面的 code 沒檢查 06/20 21:04
yongling:所以我猜測你的問題是出在這裡.. 06/20 21:04
yongling:當然 isNegEdge 要有作用,必須先寫好 standardize() 06/20 21:10
BattleRoyale:已經有檢查過了還是一樣的結果>< 06/20 21:43
ric2k1:請確認你塞到 cache 去的是正確結果 06/20 22:06
BattleRoyale:教授一語驚醒夢中人啊 DE出來了 謝謝! 06/20 22:24