必需:T凿误差

时间:2018-07-24 05:43:59

标签: chisel

我在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)

1 个答案:

答案 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

了解更多有关您试图做的事情以提供更好的建议的信息将很有帮助,但是如果您要构造的UIntUIntVec,您可以通过调用Vec.asUInt转换为UInt,例如。 Cat(io.in1(0), io.in2.asUInt)。如果您想通过在其前面加上Vec来构造较大的UInt,则可以尝试io.in1(0) +: io.in2