1
我想比較鑿子中的兩個位類型值。首先,我使用===運算符嘗試了這一點。比較鑿子3中的兩個位類型值
val byte = (typ === MT_B)
這給出了錯誤「值===不是chisel3.Bits的成員」。所以我嘗試瞭如下的equals方法。
val byte = (typ.equals(MT_B))
並且在代碼的後面部分給出了以下錯誤,其中該字節值用於Mux中的條件。
found : Boolean
[error] required: chisel3.core.Bool
[error] val dout = Mux(byte, Fill(4, din(7,0)),
我找不到將equals方法的Boolean返回值轉換爲Mool的Bool typer的方法。我無法從鑿子3 API ethier中找到替代===操作符的東西。
謝謝。這解決了這個問題。但是,爲什麼他們從鑿子3的位類型中刪除===運算符?據我所知,它在鑿子2中。而且,現在沒有辦法直接從Bits比較中直接獲得Bool類型嗎?類似的東西會減少代碼混亂。 – isuru
我只是在一個簡單的設計中對位類型的兩個值進行了===運算符測試。這個對我有用。是的,你可以通過追加一個「.toBool()」來比較操作中的Bool值。如果您想要更詳細的解釋,可能會發佈一個新問題。 – mtosch
在鑿子3中位仍然有===另外,鑿子中的所有比較操作符都返回一個Bool。我很好奇,看看你是如何得到這個錯誤,「值===不是chisel3.Bits的成員」,因爲我不能重現它。 – jkoenig