我在io.out(i) := Cat(io.in1(0) ,io.in2)
行中遇到以下凿子错误。这是什么意思?以及我该如何纠正?请帮忙。
type mismatch;
[error] found : chisel3.core.UInt
[error] required: T
[error] io.out(i) := Cat(io.in1(0) ,io.in2)
type mismatch;
[error] found : chisel3.core.Vec[chisel3.core.UInt]
[error] required: T
[error] io.out(i) := Cat(io.in1(0) ,io.in2)
答案 0 :(得分:1)
正如Chick所说,我们确实需要查看更多上下文,但是我认为我有足够的能力来了解正在发生的事情。我怀疑您遗漏的错误消息的一部分是:
[error] inferred type arguments [chisel3.core.Data] do not conform to method apply's type parameter bounds [T <: chisel3.Bits]
[error] io.out(i) := Cat(io.in1(0), io.in2)
[error]
这说明Cat
的参数类型必须是chisel3.Bits
的子类型。 Vec
不是Bits
的子类型,因此您不能将Vec
传递给Cat
。
了解更多有关您试图做的事情以提供更好的建议的信息将很有帮助,但是如果您要构造的UInt
是UInt
和Vec
,您可以通过调用Vec
将.asUInt
转换为UInt,例如。 Cat(io.in1(0), io.in2.asUInt)
。如果您想通过在其前面加上Vec
来构造较大的UInt
,则可以尝试io.in1(0) +: io.in2
。