如何初始化向量寄存器?
How to Initialize a Register of Vectors?
我定义了一个这样的向量寄存器
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)
如何定义向量寄存器并同步正确地初始化它们?
改为使用 RegInit。我相信下面的语句会做你想做的事
val my_reg = RegInit(Vec(Seq.fill(n)(0.U(32.W))))
Vector 由 32 位宽的 UInt 零序列初始化
看起来在 Chisel 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
我定义了一个这样的向量寄存器
val my_reg = Reg(Vec(n, Bits(32.W)))
然后我使用 my_reg(i)
.
现在,我想把这个寄存器初始化为零,所以我把变量定义改成这个
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)
如何定义向量寄存器并同步正确地初始化它们?
改为使用 RegInit。我相信下面的语句会做你想做的事
val my_reg = RegInit(Vec(Seq.fill(n)(0.U(32.W))))
Vector 由 32 位宽的 UInt 零序列初始化
看起来在 Chisel 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