object QMCMinimizer extends Minimizer
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.
- Source
- QMCMinimizer.scala
- Alphabetic
- By Inheritance
- QMCMinimizer
- Minimizer
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
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( ... ) @native() @HotSpotIntrinsicCandidate()
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
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
- QMCMinimizer → 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() @HotSpotIntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
This is the documentation for Chisel.
Package structure
The chisel3 package presents the public API of Chisel. It contains the concrete core types
UInt
,SInt
,Bool
,FixedPoint
,Clock
, andReg
, the abstract typesBits
,Aggregate
, andData
, and the aggregate typesBundle
andVec
.The Chisel package is a compatibility layer that attempts to provide chisel2 compatibility in chisel3.
Utility objects and methods are found in the
util
package.The
testers
package defines the basic interface for chisel testers.