NoneSignExtension class
A range of SignExtension classes to be used in building new arithmetic building blocks. Start with BruteSignExtension when composing new partial product array shapes as it should work in all situations. A Partial Product Generator using None Sign Extension
- Inheritance
-
- Object
- PartialProductSignExtension
- NoneSignExtension
Constructors
- NoneSignExtension.new(PartialProductGeneratorBase ppg, {String name = 'none_sign_extension'})
- Construct a no sign-extension class.
Properties
- encoder → MultiplierEncoder
-
Encoder for the full multiply operand. Used here just to get signs[].
no setterinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- isSignExtended ↔ bool
-
Used to avoid sign extending more than once.
getter/setter pairinherited
- name → String
-
name used for PartialProductSignExtension instances.
finalinherited
-
partialProducts
→ List<
List< Logic> > -
Partial Products output. Generated by selector and extended by sign
extension routines.
no setterinherited
- ppg → PartialProductGeneratorBase
-
The partial product generator we are sign extending.
finalinherited
- 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.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- selector → MultiplicandSelector
-
Only used to get width as above
no setterinherited
- selectSignedMultiplicand → Logic?
-
If not null, use this signal to select between signed and unsigned
multiplicand.
no setterinherited
- selectSignedMultiplier → Logic?
-
If not null, use this signal to select between signed and unsigned
multiplier.
no setterinherited
- shift → int
-
Get the shift increment between neighboring product rows.
no setterinherited
- signedMultiplicand → bool
-
multiplicand operand is always signed.
no setterinherited
- signedMultiplier → bool
-
multiplier operand is always signed.
no setterinherited
Methods
-
addStopSign(
List< Logic> addend, SignBit sign) → void -
Helper function for sign extension routines:
For signed operands, set the MSB to
sign
, otherwise add thissign
bit.inherited -
addStopSignFlip(
List< Logic> addend, SignBit sign) → void -
Helper function for sign extension routines:
For signed operands, flip the MSB, otherwise add this
sign
bit.inherited -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
signExtend(
) → void -
Fully sign extend the PP array: useful for reference only
override
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited