我已经定义了这样的向量寄存器
val my_reg = Reg(Vec(n, Bits(32.W)))
Run Code Online (Sandbox Code Playgroud)
我使用来在for循环中访问该寄存器的元素my_reg(i)。
现在,我想将此寄存器初始化为零,所以我将变量定义更改为此
val my_reg = Reg(Vec(n, Bits(32.W)), init = UInt(0))
Run Code Online (Sandbox Code Playgroud)
但是,当我要访问该寄存器的元素时,出现以下编译错误
chisel3.core.Data does not take parameters
my_reg(i) := io.a(i)
Run Code Online (Sandbox Code Playgroud)
如何定义向量寄存器并正确地对其进行同步初始化?
请改用RegInit。我相信以下声明将满足您的要求
val my_reg = RegInit(Vec(Seq.fill(n)(0.U(32.W))))
Run Code Online (Sandbox Code Playgroud)
向量由32位宽的UInt零的Seq初始化
小智 5
看起来在 Chisel 3 中这应该VecInit是Vec:
val initRegOfVec = RegInit(VecInit(Seq.fill(4)(0.U(32.W))))
Run Code Online (Sandbox Code Playgroud)
来源: https: //github.com/freechipsproject/chisel3/wiki/Cookbook#how-do-i-create-a-reg-of-type-vec