为什么在chisel3.util.Lookup.scala

时间:2018-01-12 00:00:28

标签: chisel

这种方法有什么优势吗?

object Lookup {
  def apply[T <: Bits](addr: UInt, default: T, mapping: Seq[(BitPat, T)]): T =
    ListLookup(addr, List(default), mapping.map(m => (m._1, List(m._2))).toArray).head
}

1 个答案:

答案 0 :(得分:0)

它允许您构造一个可以匹配addr中任意位的查找表。 BitPat允许用户定义不关心位。没有很多示例用法,但请在/ucb-bar/riscv-mini in /src/main/scala/CSR.scala中查看此用法。该代码使用BitPat来选择csr_addr中的相关位。