如何将 UInt() 拆分为 UInt 的 Vec 来进行子词提取和赋值?
How to split an UInt() into a Vec of UInt to do subword extraction and assignment?
我有一个这样声明的 16 位寄存器:
val counterReg = RegInit(0.U(16.W))
我想像这样对模块输出进行索引双位赋值:
//..
val io = IO(new Bundle {
val dibit = Output(UInt(2.W))
})
//..
var indexReg = RegInit(0.U(4.W))
//..
io.dibit = vectorizedCounter(indexReg)
但是我不知道如何申报vectorizedCounter()
。
我找到了一些使用 Bundles 的示例,但对于 Vector 我不知道。我无法用 UInt():
做到这一点
val counterReg = RegInit(UInt(16.W))
//...
io.dibit := counterReg(indexReg*2.U + 1.U, indexReg*2.U)
您可以动态移位并提取结果:
io.dibit := (counterReg >> indexReg)(1, 0)
我有一个这样声明的 16 位寄存器:
val counterReg = RegInit(0.U(16.W))
我想像这样对模块输出进行索引双位赋值:
//..
val io = IO(new Bundle {
val dibit = Output(UInt(2.W))
})
//..
var indexReg = RegInit(0.U(4.W))
//..
io.dibit = vectorizedCounter(indexReg)
但是我不知道如何申报vectorizedCounter()
。
我找到了一些使用 Bundles 的示例,但对于 Vector 我不知道。我无法用 UInt():
做到这一点val counterReg = RegInit(UInt(16.W))
//...
io.dibit := counterReg(indexReg*2.U + 1.U, indexReg*2.U)
您可以动态移位并提取结果:
io.dibit := (counterReg >> indexReg)(1, 0)