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 experimental
  Definition Classes
    util
-  package decode
  Definition Classes
    experimental
- BoolDecodeField
- DecodeBundle
- DecodeField
- DecodePattern
- DecodeTable
- DecodeTableAnnotation
- EspressoMinimizer
- EspressoNotFoundException
- Minimizer
- QMCMinimizer
- TruthTable
- decoder

p

chisel3.util.experimental

# decode

#### package decode

Content Hierarchy

Ordering

1. Alphabetic

Visibility

1. Public
2. Protected

### Type Members

1.  trait BoolDecodeField[T <: DecodePattern] extends DecodeField[T, Bool]

   Special case when output type is a single Bool

   Special case when output type is a single Bool

   T

     pattern this field should match

2.  class DecodeBundle extends Record

   Output of DecoderTable

3.  trait DecodeField[T <: DecodePattern, D <: Data] extends AnyRef

   One output field of a decoder bundle

   One output field of a decoder bundle

   T

     pattern this field should match

   D

     output type of this field

4.  trait DecodePattern extends AnyRef

   Input pattern a DecoderField should match, e.g.

   Input pattern a DecoderField should match, e.g. an instruction

5.  class DecodeTable[I <: DecodePattern] extends AnyRef

   A structured way of generating large decode tables, often found in CPU instruction decoders

   A structured way of generating large decode tables, often found in CPU instruction decoders

   Each field is a `DecoderPattern`, its genTable method will be called for each possible pattern and gives expected output for this field as a `BitPat`.

   I

     concrete type of input patterns trait

6.  case class DecodeTableAnnotation(target: ReferenceTarget, truthTable: String, minimizedTable: String) extends SingleTargetAnnotation[ReferenceTarget] with Product with Serializable

   DecodeTableAnnotation used to store a decode result for a specific TruthTable.

   DecodeTableAnnotation used to store a decode result for a specific TruthTable. This is useful for saving large TruthTable during a elaboration time.

   target

     output wire of a decoder.

   truthTable

     input TruthTable encoded in a serialized TruthTable.

   minimizedTable

     minimized truthTable encoded in a serialized TruthTable.

   Note

     user should manage the correctness of minimizedTable.

7.  abstract class Minimizer extends AnyRef
8.  sealed class TruthTable extends AnyRef

### Value Members

1.  object EspressoMinimizer extends Minimizer with LazyLogging

   A Minimizer implementation to use espresso to minimize the TruthTable.

   A Minimizer implementation to use espresso to minimize the TruthTable.

   espresso uses heuristic algorithm providing a sub-optimized) result. For implementation details, please refer to: https://www.springerprofessional.de/en/logic-minimization-algorithms-for-vlsi-synthesis/13780088

   a espresso executable should be downloaded from https://github.com/chipsalliance/espresso

   If user want to user the this Minimizer, a espresso executable should be added to system PATH environment.

2.  case object EspressoNotFoundException extends Exception with Product with Serializable
3.  object QMCMinimizer extends Minimizer

   A Minimizer implementation to use Quine-Mccluskey algorithm to minimize the TruthTable.

   A Minimizer implementation to use Quine-Mccluskey algorithm to minimize the TruthTable.

   This algorithm can always find the best solution, but is a NP-Complete algorithm, which means, for large-scale TruthTable minimization task, it will be really slow, and might run out of memory of JVM stack.

   In this situation, users should consider switch to EspressoMinimizer, which uses heuristic algorithm providing a sub-optimized result.

4.  object TruthTable
5.  object decoder extends LazyLogging

### Ungrouped