2016-09-27 45 views
1

代碼編譯正確,但我得到一個警告:該代碼給出警告鑿子:當Mux的輸出是SInt類型時,爲什麼會發出警告?

[warn] PC_RVI.scala:22: Mux of Bits instantiated, emits SInt in class TOP_pack.PC_RVI 

部分看起來是這樣的:

PC_input1 := Mux(io.branch, io.imme, UInt(4)) 
PC_input2 := Mux(io.PC_or_rs1, io.rs1, PC_reg) 

其中immers1SInt類型。

回答

3

所有的信號必須是SInt相同的類型。正如我們在給出的代碼上看到的不一樣:

PC_input1 := Mux(io.branch, io.imme, UInt(4)) 

io.imme是一個SInt()和UInt(4)沒有。你的PC_input1是一個SInt()嗎?

如果您想避免警告,請爲所有變量使用相同的類型。

+0

我已經使用.toUInt轉換爲整數,因爲PC_input應該是UInt類型,現在警告消失了。謝謝。 – akurd

相關問題