EspressoMinimizer

chisel3.util.experimental.decode.EspressoMinimizer

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
Graph
Supertypes
trait LazyLogging
class Minimizer
class Object
trait Matchable
class Any
Self type

Members list

Value members

Concrete methods

Minimize a multi-input multi-output logic function given by the truth table table, with function output values on unspecified inputs treated as default, and return a minimized PLA-like representation of the function.

Minimize a multi-input multi-output logic function given by the truth table table, with function output values on unspecified inputs treated as default, and return a minimized PLA-like representation of the function.

Each bit of table[]._1 encodes one 1-bit input variable of the logic function, and each bit of default and table[]._2 represents one 1-bit output value of the function.

Value parameters

table

Truth table, can have don't cares in both inputs and outputs, specified as [(inputs, outputs), ...]

Attributes

Returns

Minimized truth table, [(inputs, outputs), ...]

Example
        minimize(BitPat("b?"), Seq(
            (BitPat("b000"), BitPat("b0")),
            // (BitPat("b001"), BitPat("b?")),  // same as default, can be omitted
            // (BitPat("b010"), BitPat("b?")),  // same as default, can be omitted
            (BitPat("b011"), BitPat("b0")),
            (BitPat("b100"), BitPat("b1")),
            (BitPat("b101"), BitPat("b1")),
            (BitPat("b110"), BitPat("b0")),
            (BitPat("b111"), BitPat("b1")),
        ))
Source
EspressoMinimizer.scala

Inherited methods

Attributes

Inherited from:
LazyLogging
Source
Logger.scala

Inherited fields

protected val logger: Logger

Attributes

Inherited from:
LazyLogging
Source
Logger.scala