o

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.

Source
Lookup.scala
Example:
  1. 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)
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.

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ListLookup
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Value Members

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