chisel6.4.0 < Back


# Packages

-  package root
  Definition Classes
    root
-  package chisel3

  This package contains the main chisel3 API.

  This package contains the main chisel3 API.

  Definition Classes
    root
-  package util

  The util package provides extensions to core chisel for common hardware components and utility functions

  The util package provides extensions to core chisel for common hardware components and utility functions

  Definition Classes
    chisel3
-  package circt
  Definition Classes
    util
-  package experimental
  Definition Classes
    util
-  package random
  Definition Classes
    util
- Arbiter
- ArbiterIO
- BinaryMemoryFile
- BinaryToGray
- BitPat
- Cat
- Counter
- Decoupled
- DecoupledIO
- DeqIO
- EnqIO
- Enum
- Fill
- FillInterleaved
- GrayToBinary
- HasBlackBoxInline
- HasBlackBoxPath
- HasBlackBoxResource
- HasExtModuleInline
- HasExtModulePath
- HasExtModuleResource
- HexMemoryFile
- ImplicitConversions
- Irrevocable
- IrrevocableIO
- ListLookup
- LockingArbiter
- LockingArbiterLike
- LockingRRArbiter
- Log2
- Lookup
- MemoryFile
- MemoryReadPort
- MemoryReadWritePort
- MemoryWritePort
- MixedVec
- MixedVecInit
- Mux1H
- MuxCase
- MuxLookup
- OHToUInt
- Pipe
- PopCount
- PriorityEncoder
- PriorityEncoderOH
- PriorityMux
- Queue
- QueueIO
- RRArbiter
- ReadyValidIO
- RegEnable
- Reverse
- SRAM
- SRAMInterface
- ShiftRegister
- ShiftRegisters
- SparseVec
- SwitchContext
- UIntToOH
- Valid
- is
- isPow2
- log2Ceil
- log2Down
- log2Floor
- log2Up
- pla
- scanLeftOr
- scanRightOr
- signedBitLength
- simpleClassName
- switch
- unsignedBitLength

o

chisel3.util

# MuxLookup

###

#### object MuxLookup extends SourceInfoDoc

Creates a cascade of n Muxs to search for a key value. The Selector may be a UInt or an EnumType.

Source
  Mux.scala
Example:

1.     MuxLookup(idx, default)(Seq(0.U -> a, 1.U -> b))
       MuxLookup(myEnum, default)(Seq(MyEnum.a -> 1.U, MyEnum.b -> 2.U, MyEnum.c -> 3.U))

Linear Supertypes
SourceInfoDoc, AnyRef, Any

Ordering

1. Grouped
2. Alphabetic
3. By Inheritance

Inherited

1. MuxLookup
2. SourceInfoDoc
3. AnyRef
4. Any

1. Hide All
2. Show All

Visibility

1. Public
2. Protected

### Value Members

1.  final def !=(arg0: Any): Boolean
   Definition Classes
     AnyRef → Any
2.  final def ##: Int
   Definition Classes
     AnyRef → Any
3.  final def ==(arg0: Any): Boolean
   Definition Classes
     AnyRef → Any
4.  macro def apply[S <: EnumType, T <: Data](key: S, default: T)(mapping: Seq[(S, T)]): T

   key

     a key to search for

   default

     a default value if nothing is found

   mapping

     a sequence to search of keys and values

   returns

     the value found or the default if not

5.  macro def apply[T <: Data](key: UInt, default: T)(mapping: Seq[(UInt, T)]): T

   key

     a key to search for

   default

     a default value if nothing is found

   mapping

     a sequence to search of keys and values

   returns

     the value found or the default if not

6.  final def asInstanceOf[T0]: T0
   Definition Classes
     Any
7.  def clone(): AnyRef
   Attributes
     protected[lang]
   Definition Classes
     AnyRef
   Annotations
     @throws(classOf[java.lang.CloneNotSupportedException]) @native()
8.  def do_apply[S <: UInt, T <: Data](key: S, default: T, mapping: Seq[(S, T)])(implicit sourceinfo: SourceInfo): T

9.  def do_applyEnum[S <: EnumType, T <: Data](key: S, default: T, mapping: Seq[(S, T)])(implicit sourceinfo: SourceInfo): T

10.  final def eq(arg0: AnyRef): Boolean
    Definition Classes
      AnyRef
11.  def equals(arg0: AnyRef): Boolean
    Definition Classes
      AnyRef → Any
12.  def finalize(): Unit
    Attributes
      protected[lang]
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.Throwable])
13.  final def getClass(): Class[_ <: AnyRef]
    Definition Classes
      AnyRef → Any
    Annotations
      @native()
14.  def hashCode(): Int
    Definition Classes
      AnyRef → Any
    Annotations
      @native()
15.  final def isInstanceOf[T0]: Boolean
    Definition Classes
      Any
16.  final def ne(arg0: AnyRef): Boolean
    Definition Classes
      AnyRef
17.  final def notify(): Unit
    Definition Classes
      AnyRef
    Annotations
      @native()
18.  final def notifyAll(): Unit
    Definition Classes
      AnyRef
    Annotations
      @native()
19.  final def synchronized[T0](arg0: => T0): T0
    Definition Classes
      AnyRef
20.  def toString(): String
    Definition Classes
      AnyRef → Any
21.  final def wait(): Unit
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.InterruptedException])
22.  final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.InterruptedException])
23.  final def wait(arg0: Long): Unit
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.InterruptedException]) @native()

### Inherited from SourceInfoDoc

### Inherited from AnyRef

### Inherited from Any

### Ungrouped

### SourceInfoTransformMacro

These internal methods are not part of the public-facing API!
The equivalent public-facing methods do not have the `do_` prefix or have the same name. Use and look at the documentation for those. If you want left shift, use `<<`, not `do_<<`. If you want conversion to a Seq of Bools look at the `asBools` above, not the one below. Users can safely ignore every method in this group!
🐉🐉🐉 Here be dragons... 🐉🐉🐉
These `do_X` methods are used to enable both implicit passing of SourceInfo while also supporting chained apply methods. In effect all "normal" methods that you, as a user, will use in your designs, are converted to their "hidden", `do_*`, via macro transformations. Without using macros here, only one of the above wanted behaviors is allowed (implicit passing and chained applies)---the compiler interprets a chained apply as an explicit 'implicit' argument and will throw type errors.
The "normal", public-facing methods then take no SourceInfo. However, a macro transforms this public-facing method into a call to an internal, hidden `do_*` that takes an explicit SourceInfo by inserting an `implicitly[SourceInfo]` as the explicit argument.