Float8ToFixed class
Float8ToFixed converts an 8-bit floating point (FP8) input
to a signed fixed-point output following Q notation (Qm.n) as introduced by
(Texas Instruments)https://www.ti.com/lit/ug/spru565b/spru565b.pdf
.
FP8 input must follow E4M3 or E5M2 as described in
(FP8 formats for deep learning)https://arxiv.org/pdf/2209.05433
.
This component offers re-using the same hardware for both FP8 formats.
Infinities and NaN's are not supported.
The output is of type Logic and in two's complement.
It can be cast to a FixedPoint by the consumer based on the mode.
if mode
is true:
Input is treated as E4M3 and converted to Q9.9
fixed[17:9] contains integer part
fixed8:0
contains fractional part
else:
Input is treated as E5M2 and converted to Q16.16
fixed[31:16] contains integer part
fixed15:0
contains fractional part
Constructors
- Float8ToFixed(Logic float, Logic mode, {String name = 'Float8ToFixed'})
- Constructor
Properties
- definitionName → String
-
The definition name of this Module used when instantiating instances in
generated code.
no setterinherited
- fixed → Logic
-
Output port fixed
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
-
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
Logic
s contained within this Module which are not an input or output port of this Module.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
- q16p16 → FixedPoint
-
Getter for Q16.16
no setter
- q23p9 → FixedPoint
-
Getter for Q23.9
no setter
- 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
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
signals
→ Iterable<
Logic> -
An Iterable of all
Logic
s contained within this Module, including inputs, outputs, and internal signals of this Module.no setterinherited -
subModules
→ Iterable<
Module> -
An Iterable of all
Module
s contained within thisModule
.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
-
addInput(
String name, Logic x, {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 x, {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
-
input(
String name) → Logic -
Accesses the Logic associated with this Modules input port
named
name
.inherited -
isInput(
Logic net) → bool -
Returns true iff
net
is the same Logic as the input port of this Module with the same name.inherited -
isOutput(
Logic net) → bool -
Returns true iff
net
is the same Logic as the output port of this Module with the same name.inherited -
isPort(
Logic net) → bool -
Returns true iff
net
is the same Logic as an input or output 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
-
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