我已经定义了这样的矢量寄存器
val my_reg = Reg(Vec(n, Bits(32.W)))
我使用my_reg(i)
在for循环中访问该寄存器的元素。
现在,我想将此寄存器初始化为零,因此我将变量定义更改为此
val my_reg = Reg(Vec(n, Bits(32.W)), init = UInt(0))
但是,当我想访问该寄存器的元素时,我得到以下编译错误
chisel3.core.Data does not take parameters
my_reg(i) := io.a(i)
如何定义向量寄存器并同步正确初始化它们?
答案 0 :(得分:5)
请改用RegInit。我相信以下声明会做你想做的事情
val my_reg = RegInit(Vec(Seq.fill(n)(0.U(32.W))))
Vector由32位宽的UInt零的Seq初始化
答案 1 :(得分:0)
在凿子3中看起来应该是VecInit
而不是Vec
:
val initRegOfVec = RegInit(VecInit(Seq.fill(4)(0.U(32.W))))
来源:https://github.com/freechipsproject/chisel3/wiki/Cookbook#how-do-i-create-a-reg-of-type-vec