2016-09-27 4 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) 

где imme и rs1 имеют тип SInt.

ответ

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