PartialProductGeneratorBase class abstract

A PartialProductGeneratorBase class that generates a set of partial products. Essentially a set of shifted rows of Logic addends generated by Booth recoding and manipulated by sign extension, before being compressed.

Inheritance
Implementers

Constructors

PartialProductGeneratorBase(Logic multiplicand, Logic multiplier, RadixEncoder radixEncoder, {bool signedMultiplicand = false, bool signedMultiplier = false, Logic? selectSignedMultiplicand, Logic? selectSignedMultiplier, String name = 'ppg'})
Construct a PartialProductGeneratorBase -- the partial product matrix.

Properties

encoder ↔ MultiplierEncoder
Encoder for the full multiply operand.
latefinal
hashCode → int
The hash code for this object.
no setterinherited
isSignExtended ↔ bool
Used to avoid sign extending more than once.
getter/setter pair
multiplicand → Logic
The multiplicand term.
no setter
multiplier → Logic
The multiplier term.
no setter
name → String
Name used for PartialProductArray instances.
finalinherited
partialProducts ↔ List<List<Logic>>
Partial Products output. Generated by selector and extended by sign extension routines.
latefinalinherited
rows → int
Number of rows of partial products.
no setterinherited
rowShift → List<int>
The actual shift in each row. This value will be modified by the sign extension routine used when folding in a sign bit from another row.
finalinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
selector ↔ MultiplicandSelector
Selector for the multiplicand which uses the encoder to index into multiples of the multiplicand and generate partial products.
latefinal
selectSignedMultiplicand → Logic?
If not null, use this signal to select between signed and unsigned multiplicand.
final
selectSignedMultiplier → Logic?
If not null, use this signal to select between signed and unsigned multiplier.
final
shift → int
Get the shift increment between neighboring product rows.
no setter
signedMultiplicand → bool
multiplicand operand is always signed.
final
signedMultiplier → bool
multiplier operand is always signed.
final

Methods

getAbsolute(int row, int col) → Logic
Return the Logic at the absolute position (row, col).
inherited
getAbsoluteAll(int row, List<int> columns) → List<Logic>
Return the List<Logic> at the absolute position (row, List<int> columns.
inherited
insertAbsolute(int row, int col, Logic val) → void
Set a Logic val at the absolute position (row, col).
inherited
insertAbsoluteAll(int row, int col, List<Logic> list) → void
Set the values of the row, starting at absolute position (row, col) to the list of values
inherited
maxWidth() → int
Return the actual largest width of all rows
inherited
muxAbsolute(int row, int col, Logic condition, Logic val) → void
Mux the Logic at absolute position (row, col) conditionally by condition to val.
inherited
muxAbsoluteAll(int row, int col, Logic condition, List<Logic> list) → void
Mux the range of values into the row starting at absolute position (row, col) using condition to select the new value.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
setAbsolute(int row, int col, Logic val) → void
Set the Logic at absolute position (row, col) to val.
inherited
setAbsoluteAll(int row, int col, List<Logic> list) → void
Set the range at absolute position (row, col) to list.
inherited
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited