我想知道如何将Bundle寄存器初始化为全1。假设我有捆绑包:
class MyBundle(val w: Int) extends Bundle {
val a = UInt(w.W)
val b = UInt(w.W)
val x = Bool()
val y = Bool()
}
我正在尝试类似:
val myReg = RegInit(-1.S.asTypeOf(new MyBundle(32)))
但是,这假定带符号文字的宽度仅为1,并且仅将bundle的LSB初始化为1。想到的是:
val myReg = RegInit(-1.S(new MyBundle(32).asSInt().getWidth).asTypeOf(new MyBundle(32)))
但这似乎根本不起作用。
我该怎么做?
您可以基于的宽度显式设置宽度Bundle
。您走在正确的轨道上。尝试:
val myReg = RegInit(-1.S(new MyBundle(32).getWidth.W).asTypeOf(new MyBundle(32)))
还要注意,如果您已经构造了MyBundle
,则可以直接引用它,而不是构造新的对象,例如:
val foo = Wire(new MyBundle(32))
val myReg = RegInit(-1.S(foo.getWidth.W).asTypeOf(foo))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句