CompressionTreeMultiplyAccumulate class
An implementation of an integer multiply-accumulate using compression trees
- Inheritance
-
- Object
- Module
- MultiplyAccumulate
- CompressionTreeMultiplyAccumulate
Constructors
-
CompressionTreeMultiplyAccumulate(Logic a, Logic b, Logic c, int radix, {Logic? clk, Logic? reset, Logic? enable, bool signedMultiplicand = false, bool signedMultiplier = false, bool signedAddend = false, Logic? selectSignedMultiplicand, Logic? selectSignedMultiplier, Logic? selectSignedAddend, ParallelPrefix ppTree(List<
Logic> , Logic (Logic, Logic)) = KoggeStone.new, PartialProductGenerator ppGen(Logic, Logic, RadixEncoder, {Logic? selectSignedMultiplicand, Logic? selectSignedMultiplier, required bool signedMultiplicand, required bool signedMultiplier}) = PartialProductGeneratorCompactRectSignExtension.new, String name = 'compression_tree_mac'}) -
Construct a compression tree integer multiply-add with a given
radix
and prefix tree functorppTree
for the compressor and final adder.
Properties
- a → Logic
-
The input to the multiplier pin a.
no setterinherited
- accumulate → Logic
-
The final product of the multiplier module.
no setteroverride
- b → Logic
-
The input to the multiplier pin b.
no setterinherited
- c → Logic
-
The input to the addend pin c.
no setterinherited
- clk → Logic?
-
The clk for the pipelined version of column compression.
no setter
- definitionName → String
-
The definition name of this Module used when instantiating instances in
generated code.
no setterinherited
- enable → Logic?
-
Optional enable for configurable pipestage.
no setter
- hasBuilt → bool
-
Indicates whether this Module has had the build method called on it.
no setterinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
-
inOuts
→ Map<
String, Logic> -
A map from inOut port names to this Module to corresponding Logic
signals.
no setterinherited
-
inputs
→ Map<
String, Logic> -
A map from input port names to this Module to corresponding Logic
signals.
no setterinherited
-
internalSignals
→ Iterable<
Logic> -
An Iterable of all Logics contained within this Module which are
not an input or output port of this Module.
no setterinherited
- isAccumulateSigned → Logic
-
Logic that tells us accumulate is signed.
no setterinherited
- name → String
-
The name of this Module.
finalinherited
-
outputs
→ Map<
String, Logic> -
A map from output port names to this Module to corresponding Logic
signals.
no setterinherited
- parent → Module?
-
The parent Module of this Module.
no setterinherited
- reserveDefinitionName → bool
-
If true, guarantees definitionName is maintained by a Synthesizer,
or else it will fail.
finalinherited
- reserveName → bool
-
If true, guarantees uniqueInstanceName matches name or else the
build will fail.
finalinherited
- reset → Logic?
-
Optional reset for configurable pipestage
no setter
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- selectSignedAddend → Logic?
-
If not null, use this signal to select between signed and unsigned
addend c
no setterinherited
- selectSignedMultiplicand → Logic?
-
If not null, use this signal to select between signed and unsigned
multiplicand a.
no setterinherited
- selectSignedMultiplier → Logic?
-
If not null, use this signal to select between signed and unsigned
multiplier b
no setterinherited
-
signals
→ Iterable<
Logic> -
An Iterable of all Logics contained within this Module, including
inputs, outputs, and internal signals of this Module.
no setterinherited
- signedAddend → bool
-
The MAC treats addend c as always signed.
finalinherited
- signedMultiplicand → bool
-
The MAC treats multiplicand a as always signed.
finalinherited
- signedMultiplier → bool
-
The MAC treats multiplier b as always signed.
finalinherited
-
subModules
→ Iterable<
Module> -
An Iterable of all Modules contained within this Module.
no setterinherited
- uniqueInstanceName → String
-
If this module has a parent, after build this will be a guaranteed
unique name within its scope.
no setterinherited
Methods
-
addInOut(
String name, Logic source, {int width = 1}) → LogicNet -
Registers a signal as an inOut to this Module and returns an inOut port
that can be consumed.
inherited
-
addInOutArray(
String name, Logic source, {List< int> dimensions = const [1], int elementWidth = 1, int numUnpackedDimensions = 0}) → LogicArray -
Registers and returns an inOut LogicArray port to this Module with
the specified
dimensions
,elementWidth
, andnumUnpackedDimensions
namedname
.inherited -
addInput(
String name, Logic source, {int width = 1}) → Logic -
Registers a signal as an input to this Module and returns an input port
that can be consumed.
inherited
-
addInputArray(
String name, Logic source, {List< int> dimensions = const [1], int elementWidth = 1, int numUnpackedDimensions = 0}) → LogicArray -
Registers and returns an input LogicArray port to this Module with
the specified
dimensions
,elementWidth
, andnumUnpackedDimensions
namedname
.inherited -
addOutput(
String name, {int width = 1}) → Logic -
Registers an output to this Module and returns an output port that
can be driven.
inherited
-
addOutputArray(
String name, {List< int> dimensions = const [1], int elementWidth = 1, int numUnpackedDimensions = 0}) → LogicArray -
Registers and returns an output LogicArray port to this Module with
the specified
dimensions
,elementWidth
, andnumUnpackedDimensions
namedname
.inherited -
build(
) → Future< void> -
Builds the Module and all subModules within it.
inherited
-
generateSynth(
) → String -
Returns a synthesized version of this Module.
inherited
-
hierarchy(
) → Iterable< Module> -
Returns an Iterable of Modules representing the hierarchical path to
this Module.
inherited
-
hierarchyString(
[int indent = 0]) → String -
Returns a pretty-print String of the heirarchy of all Modules within
this Module.
inherited
-
inOut(
String name) → Logic -
Accesses the Logic associated with this Modules inOut port
named
name
.inherited -
inOutSource(
String name) → Logic -
The original
source
provided to the creation of the inOut portname
via addInOut or addInOutArray.inherited -
input(
String name) → Logic -
Accesses the Logic associated with this Modules input port
named
name
.inherited -
inputSource(
String name) → Logic -
The original
source
provided to the creation of the input portname
via addInput or addInputArray.inherited -
isInOut(
Logic signal) → bool -
Returns true iff
signal
is the same Logic as the inOut port of this Module with the same name.inherited -
isInput(
Logic signal) → bool -
Returns true iff
signal
is the same Logic as the input port of this Module with the same name.inherited -
isOutput(
Logic signal) → bool -
Returns true iff
signal
is the same Logic as the output port of this Module with the same name.inherited -
isPort(
Logic signal) → bool -
Returns true iff
signal
is the same Logic as an input, output, or inOut port of this Module with the same name.inherited -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
output(
String name) → Logic -
Accesses the Logic associated with this Modules output port
named
name
.inherited -
toString(
) → String -
A string representation of this object.
inherited
-
tryInOut(
String name) → Logic? -
Provides the inOut named
name
if it exists, otherwisenull
.inherited -
tryInput(
String name) → Logic? -
Provides the input named
name
if it exists, otherwisenull
.inherited -
tryOutput(
String name) → Logic? -
Provides the output named
name
if it exists, otherwisenull
.inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited