我有一个声明的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)
答案 0 :(得分:2)
您可以动态移位并按位提取结果:
io.dibit := (counterReg >> indexReg)(1, 0)