|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectbyucc.jhdl.base.Nameable
byucc.jhdl.base.Node
byucc.jhdl.base.Cell
byucc.jhdl.base.Structural
byucc.jhdl.Logic.LogicGates
byucc.jhdl.Logic.LogicStatic
byucc.jhdl.Logic.Logic
byucc.jhdl.Logic.Modules.FloatingPoint.FPMult
Floating-point multiplier.
Floating-point multiplier with generic sized exponent and significand
FPMult takes in two inputs of the same size, multiplies the two
together using floating-point arithmetic, and then outputs the result. The
output must be the same size as the inputs, otherwise an exception is
thrown.
Required import:
import byucc.jhdl.Logic.Modules.FloatingPoint.*;
Constructor Syntax:
FPMult(parent,?in1, in2, out, flowError, exponent_width, pipe_level )
For all available constructors, see
Constructor Summary or
Constructor Detail.
In addition, the floating-point multiplier can take into consideration special numbers. For example, an input of all zeros represents the numeric value 0. If the exponent is all ones and the significand is all zeros, this can represent +/- infinity. If the exponent is all ones, but the significand is not all zeros, this represents NaN, or Not a Number. This floating-point multiplier doesn't support denormalized numbers, or numbers with zeros as the exponent and something nonzero as the significand.
The floating-point multiplier checks for overflow and underflow as it does the multiply. This condition occurs when the exponent field isn't large enough to hold the new calculated exponent.
CLB count:
Slice count: The Slice count will be approximately equal to the XC4000 CLB count above
Field Summary | |
static CellInterface[] |
cell_interface
|
static java.lang.String |
cellname
|
Fields inherited from class byucc.jhdl.Logic.Logic |
ABOVE, ALIGN_BOTTOM, ALIGN_CENTER, ALIGN_LEFT, ALIGN_LSB, ALIGN_MSB, ALIGN_RIGHT, ALIGN_TOP, BELOW, DOWN, EAST_OF, LEFT_OF, MAX_PACK, NORTH_OF, ON, ONTOP, ONTOP_OF, RIGHT_OF, SOUTH_OF, TOLEFT, TORIGHT, UNCONSTRAINED, UP, WEST_OF |
Fields inherited from class byucc.jhdl.Logic.LogicGates |
tech_mapper |
Constructor Summary | |
FPMult(Node parent,
Wire in1,
Wire in2,
Wire out,
Wire flowError,
int expSize,
int pipeDepth)
|
Method Summary | |
void |
clock()
Clock is used in the behavioral model if there is pipelining |
long[] |
compute(long in1,
long in2,
int width,
int expSize,
int mantSize)
Used in behavioral model to compute the output |
protected boolean |
defaultSimulationModelIsBehavioral()
Default simulation model is behavioral |
java.lang.String |
getCellName()
returns the cellname |
int |
getDelayDepth()
returns the number of clock cycles it takes to generate an output due to pipelining |
int |
getLatency()
|
int |
getMantSize()
returns the size of the significand |
void |
propagate()
Propagate is used if the circuit is purely combinational logic |
void |
reset()
Resets the output to zero |
Methods inherited from class byucc.jhdl.base.Node |
addObservable, addSimulatorCallback, checkAll, delete, getBuildingFlag, getChildren, getChildrenEnumeration, getInstanceName, getParent, getParentCell, getRelatives, getSystem, getWires, optimize, orphanAllowed, printAllChildren, printTree, removeSimulatorCallback, setDefaultClock |
Methods inherited from class byucc.jhdl.base.Nameable |
caseSensitivity, caseSensitivity, disableNameClashChecking, getFullName, getFullNameNoTestBench, getHierNameNoTestBench, getInstanceNo, getInstanceNumber, getLeafName, getLeafName, getRelativeName, getUserName, getUserName, hasUserSpecifiedName, isDescendantOf, setInstanceNumber |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
public static CellInterface[] cell_interface
public static final java.lang.String cellname
Constructor Detail |
public FPMult(Node parent, Wire in1, Wire in2, Wire out, Wire flowError, int expSize, int pipeDepth)
Method Detail |
public java.lang.String getCellName()
getCellName
in class Cell
public int getMantSize()
public int getDelayDepth()
public void reset()
reset
in interface Clockable
reset
in class Structural
public void clock()
clock
in interface Clockable
clock
in class Structural
public void propagate()
propagate
in interface byucc.jhdl.base.Propagateable
propagate
in class Structural
protected boolean defaultSimulationModelIsBehavioral()
defaultSimulationModelIsBehavioral
in class Structural
public long[] compute(long in1, long in2, int width, int expSize, int mantSize)
public int getLatency()
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |