以上是有人發現的文章,然後和我討論,建議應該把” default: y=1’bx” 換成是” default: y=1’b0” 或是default: y=1’b1”。反正就是不應該是1’bx,不然會造成系統不穩,或是合成時,會有問題。
” default: y=1’bx” 真的會有問題嗎?
做為一個數位工程師,邏輯推理能力應該是我們自豪的。原英文描述是說在模擬(simulation)時,會有pre-synthesis simulation和post-synthesis simulation的結果不相同(mismatch),所以如果你是想要它相同的話,你應該是把1’bx換成是固定的值,這樣子,每次模擬時,就都會是一樣的。對於這樣子的建議,我同意的它的說法。但是,它的前面有個前提,你的1’bx是會被當成是”don’t care”來處理。我們都知道,don’t care就是不在乎它的結果,甚至每次都是不一樣也沒有關係。所以這樣子的”don’t care”當然會在不同的模擬過程,造成不同的結果。
我們都學過真值表(truth table)。
A fun B |
0 |