object EspressoMinimizer extends Minimizer with LazyLogging
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.
- Source
- EspressoMinimizer.scala
- Alphabetic
- By Inheritance
- EspressoMinimizer
- LazyLogging
- Minimizer
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def getLogger: Logger
- Definition Classes
- LazyLogging
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- val logger: Logger
- Attributes
- protected
- Definition Classes
- LazyLogging
- def minimize(table: TruthTable): TruthTable
Minimize a multi-input multi-output logic function given by the truth table
table
, with function output values on unspecified inputs treated asdefault
, 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 asdefault
, 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 ofdefault
andtable[]._2
represents one 1-bit output value of the function.- table
Truth table, can have don't cares in both inputs and outputs, specified as [(inputs, outputs), ...]
- returns
Minimized truth table, [(inputs, outputs), ...]
- Definition Classes
- EspressoMinimizer → Minimizer
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")), ))
Example: - final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()