如何将UInt()拆分为UInt Vec以进行子词提取和分配?

时间:2019-11-22 13:34:51

标签: chisel

我有一个声明的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)

1 个答案:

答案 0 :(得分:2)

您可以动态移位并按位提取结果:

io.dibit := (counterReg >> indexReg)(1, 0)