Re: [問題] verilog有關輸入值未定時,assign輸出值

看板Electronics作者 (sam)時間12年前 (2012/03/29 13:39), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《lueichun (no anonymous)》之銘言: : 如果今天在輸入值尚未決定時,輸出值就用預設值q輸出,否則就將輸入值直接輸出, : 那寫成以下這樣: : always@(input or q) : begin : if(input==4'bxxxx) : output=q; : else : output=input; : end : 會出現bug,if條件會進不去,那這樣的話該如何修改if( )內的判斷式呢?? 以RTL-level的角度 ==(兩個等於)是logical equality operator ==| 0 1 X Z --+--------- 0 | 1 0 X X 1 | 0 1 X X X | X X X X Z | X X X X 所以就算你input為X 條件判斷式運算結果為X 自然就不會執行 而===(三個等於) 是case equality operator ===| 0 1 X Z ---+--------- 0 | 1 0 0 0 1 | 0 1 0 0 X | 0 0 1 0 Z | 0 0 0 1 我想這個看起來好像比較接近你要的意思 不過這個通常只是用來跑模擬或是debug用的 有可能無法合成出電路 若是實際設計電路時 就算有其他非理想的情況發生 通常都會歸到最後那個else去處理 個人淺見 以上 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.117.211.109 ※ 編輯: lovepy 來自: 140.117.211.109 (03/29 13:40)
文章代碼(AID): #1FS_MaEn (Electronics)
文章代碼(AID): #1FS_MaEn (Electronics)