Packages

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