chisel3.util.experimental.decode

Members list

Type members

Classlikes

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

Type parameters

T

pattern this field should match

Attributes

Source
DecoderBundle.scala
Supertypes
trait DecodeField[T, Bool]
class Object
trait Matchable
class Any
class DecodeBundle(fields: Seq[DecodeField[_, _ <: Data]]) extends Record

Output of DecoderTable

Output of DecoderTable

Value parameters

fields

all fields to be decoded

Attributes

Source
DecoderBundle.scala
Supertypes
class Record
trait Selectable
trait Aggregate
class Data
trait InstanceId
class Object
trait Matchable
class Any
Show all
trait DecodeField[T <: DecodePattern, D <: Data]

One output field of a decoder bundle

One output field of a decoder bundle

Type parameters

D

output type of this field

T

pattern this field should match

Attributes

Source
DecoderBundle.scala
Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait BoolDecodeField[T]

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

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

Attributes

Source
DecoderBundle.scala
Supertypes
class Object
trait Matchable
class Any
class DecodeTable[I <: DecodePattern](patterns: Seq[I], fields: Seq[DecodeField[I, _ <: Data]])

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.

Type parameters

I

concrete type of input patterns trait

Value parameters

fields

all fields as decoded output

patterns

all possible input patterns, should implement trait DecoderPattern

Attributes

Source
DecoderBundle.scala
Supertypes
class Object
trait Matchable
class Any
case class DecodeTableAnnotation(target: ReferenceTarget, truthTable: String, minimizedTable: String) extends SingleTargetAnnotation[ReferenceTarget]

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

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

Value parameters

minimizedTable

minimized truthTable encoded in a serialized TruthTable.

target

output wire of a decoder.

truthTable

input TruthTable encoded in a serialized TruthTable.

Attributes

Note

user should manage the correctness of minimizedTable.

Source
DecodeTableAnnotation.scala
Supertypes
trait Serializable
trait Annotation
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

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.

Attributes

Source
EspressoMinimizer.scala
Supertypes
trait LazyLogging
class Minimizer
class Object
trait Matchable
class Any
Self type
case object EspressoNotFoundException extends Exception

Attributes

Source
EspressoMinimizer.scala
Supertypes
trait Singleton
trait Product
trait Mirror
trait Product
trait Equals
class Exception
class Throwable
trait Serializable
class Object
trait Matchable
class Any
Show all
Self type
abstract class Minimizer

Attributes

Source
Minimizer.scala
Supertypes
class Object
trait Matchable
class Any
Known subtypes
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.

Attributes

Source
QMCMinimizer.scala
Supertypes
class Minimizer
class Object
trait Matchable
class Any
Self type
sealed class TruthTable

Attributes

Companion
object
Source
TruthTable.scala
Supertypes
class Object
trait Matchable
class Any
object TruthTable

Attributes

Companion
class
Source
TruthTable.scala
Supertypes
class Object
trait Matchable
class Any
Self type
TruthTable.type
object decoder extends LazyLogging

Attributes

Source
decoder.scala
Supertypes
trait LazyLogging
class Object
trait Matchable
class Any
Self type
decoder.type