ListLookup

chisel3.util.ListLookup
object ListLookup

For each element in a list, muxes (looks up) between cases (one per list element) based on a common address.

Value parameters

addr

common select for cases, shared (same) across all list elements

default

default value for each list element, should the address not match any case

mapping

list of cases, where each entry consists of a BitPath (compared against addr) and a list of elements (same length as default) that is the output value for that element (will have the same index in the output).

Attributes

Note

This appears to be an odd, specialized operator that we haven't seen used much, and seems to be a holdover from chisel2. This may be deprecated and removed, usage is not recommended.

Example
ListLookup(2.U,  // address for comparison
                        List(10.U, 11.U, 12.U),   // default "row" if none of the following cases match
   Array(BitPat(2.U) -> List(20.U, 21.U, 22.U),  // this "row" hardware-selected based off address 2.U
         BitPat(3.U) -> List(30.U, 31.U, 32.U))
) // hardware-evaluates to List(20.U, 21.U, 22.U)
// Note: if given address 0.U, the above would hardware evaluate to List(10.U, 11.U, 12.U)
Source
Lookup.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
ListLookup.type

Members list

Value members

Concrete methods

def apply[T <: Data](addr: UInt, default: List[T], mapping: Array[(BitPat, List[T])]): List[T]

Attributes

Source
Lookup.scala