Counter class
Keeps a count of the running sum of any number of sources with optional configuration for widths, saturation behavior, and restarting.
- Inheritance
- Implementers
Constructors
-
Counter(List<
SumInterface> interfaces, {required Logic clk, required Logic reset, Logic? restart, dynamic resetValue = 0, dynamic maxValue, dynamic minValue = 0, int? width, bool saturates = false, String name = 'counter'}) -
Creates a counter that increments according to the provided
interfaces
. -
Counter.ofLogics(List<
Logic> logics, {required Logic clk, required Logic reset, Logic? restart, dynamic resetValue = 0, dynamic maxValue, dynamic minValue = 0, Logic? enable, int? width, bool saturates = false, String name = 'counter'}) -
Creates a Counter that counts up by all of the provided
logics
, including much of the other available configuration in the default constructor.factory - Counter.simple({required Logic clk, required Logic reset, int by = 1, Logic? enable, int minValue = 0, int? maxValue, int? width, Logic? restart, bool saturates = false, bool increments = true, int resetValue = 0, String name = 'counter'})
-
A simplified constructor for Counter that accepts a single fixed amount
to count
by
(up or down based onincrements
) along with much of the other available configuration in the default Counter constructor.
Properties
- clk ↔ Logic
-
The main clock signal.
latefinal
- constantMaxValue ↔ BigInt?
-
If the provided
maxValue
was a constant, then this will be the constant value. Otherwise, it will benull
.latefinalinherited - constantMinValue ↔ BigInt?
-
If the provided
minValue
was a constant, then this will be the constant value. Otherwise, it will benull
.latefinalinherited - count → Logic
-
The output value of the counter.
no setter
- definitionName → String
-
The definition name of this Module used when instantiating instances in
generated code.
no setterinherited
- equalsMax → Logic
-
Indicates whether the sum (including potential saturation) is currently
equal to the maximum.
no setterinherited
- equalsMin → Logic
-
Indicates whether the sum (including potential saturation) is currently
equal to the minimum.
no setterinherited
- 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
- initialValueLogic ↔ Logic
-
An internal Logic version of the provided initial value.
latefinalinherited
-
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
-
interfaces
↔ List<
SumInterface> -
The "internal" versions of the SumInterfaces for this computation.
latefinalinherited
-
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
- maxValueLogic ↔ Logic
-
An internal Logic version of the provided maximum value.
latefinalinherited
- minValueLogic ↔ Logic
-
An internal Logic version of the provided minimum value.
latefinalinherited
- 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
- overflowed → Logic
-
Indicates whether the sum is greater than the maximum value. The actual
resulting value depends on the provided
saturates
behavior (staturation or overflow).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
-
The reset signal.
latefinal
- restart ↔ Logic?
-
The restart signal.
latefinal
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- saturates → bool
-
If
true
, will saturate at themaxValue
andminValue
. Iffalse
, will wrap around (overflow/underflow) at themaxValue
andminValue
.finalinherited -
signals
→ Iterable<
Logic> -
An Iterable of all Logics contained within this Module, including
inputs, outputs, and internal signals of this Module.
no setterinherited
-
subModules
→ Iterable<
Module> -
An Iterable of all Modules contained within this Module.
no setterinherited
- summer → Sum
-
The internal Sum that is used to keep track of the count.
latefinal
- underflowed → Logic
-
Indicates whether the sum is less than the minimum value. The actual
resulting value depends on the provided
saturates
behavior (saturation or underflow).no setterinherited - uniqueInstanceName → String
-
If this module has a parent, after build this will be a guaranteed
unique name within its scope.
no setterinherited
- width → int
-
The width of the resulting sum.
finalinherited
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
-
buildFlops(
) → void - Builds the flops that store the count.
-
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