byucc.jhdl.Xilinx.Virtex.Modules
Class KCMMult
java.lang.Object
byucc.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.Xilinx.Virtex.Modules.KCMMult
- All Implemented Interfaces:
- BooleanFlags, Clockable, byucc.jhdl.base.Propagateable, TreeListable
- public class KCMMult
- extends Logic
KCMMult.java
Created: 12/2000
- Version:
- 1
TODO:
- use JHDLOutput instead of System.out
- use BVs throughout instead of ints/longs
- add optimizations
- allow reprogramming of signed multiplier (the last ROM is different)
- Author:
- Brian McMurtrey
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.base.Cell |
BOOLEAN, CELL_NAME_DECLARATION, CellInterfaceDeterminesUniqueNetlistStructure, DETERMINE_FROM_STRING, GENERICS_DECLARATION, implicit_interface, IMPLICIT_INTERFACE_DECLARATION, INTEGER, INTERFACE_DECLARATION, LONG, PORT_IOS_DECLARATION, PORT_NAMES_DECLARATION, PORT_NET_NAMES_DECLARATION, PORT_PROPERTIES, PORT_WIDTHS_DECLARATION, SIGN_EXT, STRING, ZERO_PAD |
Fields inherited from interface byucc.jhdl.base.BooleanFlags |
ANTECEDANT_IS_BEHAVIORALLY_MODELED, ASYNC_PORT, ASYNCHRONOUS_RESOLVED, ATOMICALLY_PLACEABLE, ATOMICALLY_UNMAPPABLE, BEHAVIORALLY_MODELED_BRANCH, CLK_PORT, CLOCK_METHOD_IMPLEMENTED_BY_USER, CLOCK_METHOD_IS_DISABLED, CLOCKABLE_IS_SCHEDULED, DANGLING_IS_OK, DELETE_MARK, FATAL_BUILD_ERROR_OCCURED, HAS_BEEN_TRACED, HAS_USER_SPECIFIED_NAME, HWUPDATE, IMPLICIT_PORT, IN_CLK_PORT, IN_PORT, INOUT_PORT, IO_TYPE_FLAGS, IS_BEHAVIORALLY_MODELED, IS_ON_BUILD_STACK, IS_ON_PROP_LIST, IS_PLACED, METHODS_IMPLEMENTED_BY_USER, NETLISTABLE, ORIG_WIRE_IS_ATOMIC, OUT_PORT, PLACEMENT_IS_LOCKED, PROPAGATE_METHOD_IMPLEMENTED_BY_USER, PROPAGATE_METHOD_IS_DISABLED, RECURSION_FLAG, RESET_METHOD_IMPLEMENTED_BY_USER, SIMULATEABLE, SOURCELESS_IS_OK, SYNC_PORT, VISIBLE |
Constructor Summary |
KCMMult(Node parent,
Wire in,
Wire product,
boolean signed,
BV constant)
|
KCMMult(Node parent,
Wire in,
Wire product,
boolean signed,
BV constant,
boolean pipelined)
|
KCMMult(Node parent,
Wire in,
Wire product,
boolean signed,
int constant)
|
KCMMult(Node parent,
Wire in,
Wire product,
boolean signed,
int constant,
boolean pipelined)
|
KCMMult(Node parent,
Wire in,
Wire product,
boolean signed,
long constant)
|
KCMMult(Node parent,
Wire in,
Wire product,
boolean signed,
long constant,
boolean pipelined)
|
KCMMult(Node parent,
Wire in,
Wire product,
BV constant)
|
KCMMult(Node parent,
Wire in,
Wire product,
BV constant,
boolean pipelined)
|
KCMMult(Node parent,
Wire in,
Wire product,
int constant)
|
KCMMult(Node parent,
Wire in,
Wire product,
int constant,
boolean pipelined)
|
KCMMult(Node parent,
Wire in,
Wire product,
long constant)
|
KCMMult(Node parent,
Wire in,
Wire product,
long constant,
boolean pipelined)
|
KCMMult(Node parent,
Wire in,
Wire ra_constant,
Wire rom_constant,
Wire shift_en,
Wire product)
|
KCMMult(Node parent,
Wire in,
Wire ra_constant,
Wire rom_constant,
Wire shift_en,
Wire product,
boolean signed,
BV constant)
|
KCMMult(Node parent,
Wire in,
Wire ra_constant,
Wire rom_constant,
Wire shift_en,
Wire product,
boolean signed,
BV constant,
boolean pipelined)
|
KCMMult(Node parent,
Wire in,
Wire ra_constant,
Wire rom_constant,
Wire shift_en,
Wire product,
boolean signed,
int constant)
|
KCMMult(Node parent,
Wire in,
Wire ra_constant,
Wire rom_constant,
Wire shift_en,
Wire product,
boolean signed,
int constant,
boolean pipelined)
|
KCMMult(Node parent,
Wire in,
Wire ra_constant,
Wire rom_constant,
Wire shift_en,
Wire product,
boolean signed,
long constant)
|
KCMMult(Node parent,
Wire in,
Wire ra_constant,
Wire rom_constant,
Wire shift_en,
Wire product,
boolean signed,
long constant,
boolean pipelined)
|
KCMMult(Node parent,
Wire in,
Wire ra_constant,
Wire rom_constant,
Wire shift_en,
Wire product,
boolean signed,
long constant,
boolean constant_signed,
boolean pipelined)
|
KCMMult(Node parent,
Wire in,
Wire ra_constant,
Wire rom_constant,
Wire shift_en,
Wire product,
BV constant)
|
KCMMult(Node parent,
Wire in,
Wire ra_constant,
Wire rom_constant,
Wire shift_en,
Wire product,
BV constant,
boolean pipelined)
|
KCMMult(Node parent,
Wire in,
Wire ra_constant,
Wire rom_constant,
Wire shift_en,
Wire product,
int constant)
|
KCMMult(Node parent,
Wire in,
Wire ra_constant,
Wire rom_constant,
Wire shift_en,
Wire product,
int constant,
boolean pipelined)
|
KCMMult(Node parent,
Wire in,
Wire ra_constant,
Wire rom_constant,
Wire shift_en,
Wire product,
long constant)
|
KCMMult(Node parent,
Wire in,
Wire ra_constant,
Wire rom_constant,
Wire shift_en,
Wire product,
long constant,
boolean pipelined)
|
Methods inherited from class byucc.jhdl.Logic.Logic |
clockDriver, clockDriver, connect_implicit_ports, connectImplicitPorts, constructSubCell, constructSubCellNoImplicitPorts, enableNewPlacement, enableNewPlacement, extend, extend, getDefaultClock, getDefaultTechMapper, getGlobalClock, getSinkCell, getSourceCell, getSourceCell, getSourceLeaf, getSourcePlaceable, getSourcePlaceableLeaf, getSubCellClass, getTechMapHint, getTechMapHint, getTechMapper, growAndShiftl, lockChildPlacement, lsb, lsb, map, map, map, map, map, map, map, map, map, map, map, map, map, map, map, map, map, map, map, msb, msb, msbIndx, netlist, netlist, netlist, netlist, netlist, netlist, netlist, netlist, padClock_o, padClock_o, padClock_o, padClock, padClock, padClock, padIn_o, padIn_o, padIn_o, padIn, padIn, padIn, padInout_o, padInout_o, padInout_o, padInout, padInout, padInout, padOut_o, padOut_o, padOut_o, padOut, padOut, padOut, padOutT_o, padOutT_o, padOutT_o, padOutT, padOutT, padOutT, place, place, place, place, place, place, place, place, place, place, place, place, place, place, place, place, place, printTechMapHints, range, rotate, rotate, scale, scale, setBBox, setDefaultTechMapper, setFloorPlannerIsMaster, setTechMappingEnabled, setWandH, signExtend_o, signExtend, signExtend, sink, source, takeBot_o, takeBot, takeBot, takeBotSigned_o, takeBotSigned, takeTop_o, takeTop, takeTop, techmap, techMappingEnabled, translate, translate, zeroExtend_o, zeroExtend, zeroExtend, zeroExtendRight_o, zeroExtendRight |
Methods inherited from class byucc.jhdl.Logic.LogicStatic |
add_o, add_o, and_o, and_o, and, and, buf_o, buf_o, buf, buf, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, constant_o, constant_o, constant_o, constant_o, constant_o, constant_o, constant_o, constant_o, constant, constant, constant, constant, constant, constant, constant, constant, constant, constant, gnd_o, gnd_o, gnd, gnd, gnd, gnd, mux_o, mux, nc, nc, nc, nc, nc, nc, not_o, not_o, not, not, or_o, or_o, or, or, reg_o, reg, vcc_o, vcc_o, vcc, vcc, vcc, vcc, wire, wire, wire, wire, xnor_o, xnor_o, xnor, xor_o, xor |
Methods inherited from class byucc.jhdl.Logic.LogicGates |
add_o, add_o, add_o, add_o, add_o, add_o, add, add, add, add, addsub_o, addsub_o, addsub_o, addsub_o, addsub_o, addsub_o, addsub, addsub, addsub, addsub, and_o, and_o, and_o, and_o, and_o, and_o, and_o, and_o, and_o, and_o, and_o, and_o, and_o, and_o, and_o, and_o, and_o, and_o, and_o, and, and, and, and, and, and, and, and, and, and, and, and, and, and, and, and, and, and, ashiftr_o, ashiftr, ashiftr, buf_o, buf_o, buf, buf, checkValueRepresentableInWidth, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat_o, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, concat, constant_o, constant_o, constant_o, constant_o, constant_o, constant_o, constant_o, constant_o, constant, constant, constant, constant, constant, constant, constant, constant, constant, constant, gnd_o, gnd_o, gnd, gnd, gnd, gnd, mux_o, mux_o, mux_o, mux_o, mux_o, mux_o, mux, mux, mux, mux, mux, mux, name, nand_o, nand_o, nand_o, nand_o, nand_o, nand_o, nand_o, nand_o, nand_o, nand_o, nand_o, nand_o, nand_o, nand_o, nand_o, nand_o, nand_o, nand_o, nand_o, nand, nand, nand, nand, nand, nand, nand, nand, nand, nand, nand, nand, nand, nand, nand, nand, nand, nand, nc, nc, nc, nc, nor_o, nor_o, nor_o, nor_o, nor_o, nor_o, nor_o, nor_o, nor_o, nor_o, nor_o, nor_o, nor_o, nor_o, nor_o, nor_o, nor_o, nor_o, nor_o, nor, nor, nor, nor, nor, nor, nor, nor, nor, nor, nor, nor, nor, nor, nor, nor, nor, nor, not_o, not_o, not, not, or_o, or_o, or_o, or_o, or_o, or_o, or_o, or_o, or_o, or_o, or_o, or_o, or_o, or_o, or_o, or_o, or_o, or_o, or_o, or, or, or, or, or, or, or, or, or, or, or, or, or, or, or, or, or, or, pulldown, pulldown, pullup, pullup, reg_o, reg_o, reg_o, reg_o, reg, reg, reg, reg, regc_o, regc_o, regc_o, regc_o, regc, regc, regc, regc, regce_o, regce_o, regce_o, regce_o, regce, regce, regce, regce, regp_o, regp_o, regp_o, regp_o, regp, regp, regp, regp, regpe_o, regpe_o, regpe_o, regpe_o, regpe, regpe, regpe, regpe, regr_o, regr_o, regr_o, regr_o, regr, regr, regr, regr, regre_o, regre_o, regre_o, regre_o, regre, regre, regre, regre, regs_o, regs_o, regs_o, regs_o, regs, regs, regs, regs, regse_o, regse_o, regse_o, regse_o, regse, regse, regse, regse, shiftl_o, shiftl, shiftl, shiftr_o, shiftr, shiftr, sub_o, sub_o, sub_o, sub_o, sub_o, sub_o, sub, sub, sub, sub, tbuf_o, tbuf_o, tbuf, tbuf, vcc_o, vcc_o, vcc, vcc, vcc, vcc, wire, wire, wire, wire, xnor_o, xnor_o, xnor_o, xnor_o, xnor_o, xnor_o, xnor_o, xnor_o, xnor_o, xnor_o, xnor_o, xnor_o, xnor_o, xnor_o, xnor_o, xnor_o, xnor_o, xnor_o, xnor_o, xnor, xnor, xnor, xnor, xnor, xnor, xnor, xnor, xnor, xnor, xnor, xnor, xnor, xnor, xnor, xnor, xnor, xnor, xor_o, xor_o, xor_o, xor_o, xor_o, xor_o, xor_o, xor_o, xor_o, xor_o, xor_o, xor_o, xor_o, xor_o, xor_o, xor_o, xor_o, xor_o, xor_o, xor, xor, xor, xor, xor, xor, xor, xor, xor, xor, xor, xor, xor, xor, xor, xor, xor, xor |
Methods inherited from class byucc.jhdl.base.Structural |
behavioralModelIsAvailable, clock, clockMethodIsDisabled, clockMethodIsDisabled, clockMethodIsEnabled, clockMethodIsEnabled, defaultSimulationModelIsBehavioral, hasBeenTraced, hasBeenTraced, hasBehaviorInClockMethod, hasBehaviorInPropagateMethod, isAsynchronouslyScheduled, isAsynchronouslyScheduled, isFallingEdgeTriggered, isReadyToBeAsynchronouslyScheduled, isRisingEdgeTriggered, needsToBeAsynchronouslyScheduled, needsToBeClocked, propagate, propagateMethodIsDisabled, propagateMethodIsDisabled, propagateMethodIsEnabled, propagateMethodIsEnabled, reset, willUseHWUpdate, willUseHWUpdate |
Methods inherited from class byucc.jhdl.base.Cell |
addPort, addPorts, addProperties, addProperties, addProperty, addProperty, addProperty, addProperty, antecedantIsBehaviorallyModeled, antecedantIsBehaviorallyModeled, bind, bind, bind, bind, cellInterfaceDeterminesUniqueNetlistStructure, clk, connect, connectAllWires, connectOptional, disableAllBehavioralModels, disableBehavioralModel, enableBehavioralModel, getArgument, getAttachedPort, getAttachedWire, getAttachedWireNoException, getCellName, getCellNetlist, getCellNetList, getCellNetlist, getCellNetlist, getDescendents, getFlatNetlist, getFlatNetlistableChildren, getGeneric, getHeight, getNetlistableChildren, getPlacementInfo, getPortProperties, getPortRecord, getPortRecords, getProperties, getProperty, getPropertyValue, getSinkWires, getSourceWires, getUniqueCellName, getWidth, getX, getY, hasPort, hasPorts, in, in, inout, inout, isAsynchronousSourceSinkResolved, isBehaviorallyModeled, isBehaviorallyModeledBranch, isInput, isLeafCell, isNetlistable, isNetlistable, isNetlistablePort, isNetlistLeaf, isNotNetlistable, isNotNetlistablePort, isNotVisible, isOutput, isPlaceable, isPlaceable, isPlaced, isPlaced, isPlacementLocked, isRoot, isSimulateable, isSimulateable, isSink, isSource, isVisible, isVisible, join, lockPlacement, nc, out, out, param, popHierarchy, port, port, port, postorderCheck, preorderCheck, pushHierarchy, pushHierarchy, pushHierarchy, pushHierarchy, pushHierarchyNoImplicitPorts, pushHierarchyNoImplicitPorts, removeAllUnconnectedPorts, removePort, removeProperty, replaceProperty, replaceProperty, resetBehavioralModelsToDefaults, setAsynchronousSourceSinkResolved, setGeneric, setHeight, setNotNetlistable, setNotNetlistable, setNotVisible, setNotVisible, setPlacementInfo, setPortNotNetlistable, setPortNotNetlistable, setProperty, setWidth, subClassDelete, toString, uniquifyCell, userDefinedClockCount, verifyAndCleanup |
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 |
ROM_ADDR_BITS
protected static final int ROM_ADDR_BITS
- See Also:
- Constant Field Values
ROM_BITS
protected static final int ROM_BITS
- See Also:
- Constant Field Values
cellname
public static final java.lang.String cellname
- See Also:
- Constant Field Values
cell_interface
public static CellInterface[] cell_interface
KCMMult
public KCMMult(Node parent,
Wire in,
Wire ra_constant,
Wire rom_constant,
Wire shift_en,
Wire product)
- Parameters:
parent
- Parent nodein
- Multiplicand wire. This can be an arbitrary width.ra_constant
- wire. This wire is used to reprogram the rom/adder stages
This wire must be as wide as the rom/adders or 3 bits wider than the constantrom_constant
- wire. This wire is used to reprogram the first ROM stage
This wire must be as wide as the ROM or 4 bits wider than the constantshift_en
- is a one bit wire that is high when programing the constant.
This wire enable sthe shifting of the shift registers.product
- Product wire. This can be an arbitrary width, but if it
isn't as wide as the constant plus the multiplecand data the least
significant bits will be lost
KCMMult
public KCMMult(Node parent,
Wire in,
Wire product,
BV constant)
- Parameters:
parent
- Parent nodein
- Multiplicand wire. This can be an arbitrary width.product
- Product wire. This can be an arbitrary width, but if it
isn't as wide as the constant plus the multiplecand data the least
significant bits will be lostconstant
- The constant used for multiplication. This will be
an unsigned constant
KCMMult
public KCMMult(Node parent,
Wire in,
Wire product,
boolean signed,
BV constant)
- Parameters:
parent
- Parent nodein
- Multiplicand wire. This can be an arbitrary width.product
- Product wire. This can be an arbitrary width, but if it
isn't as wide as the constant plus the multiplecand data the least
significant bits will be lostsigned
- multiplier. If true both the constant and the multiplecand
will be treated like they are signed.constant
- The constant used for multiplication. This will be
signed if the signed parameter is true..
KCMMult
public KCMMult(Node parent,
Wire in,
Wire product,
BV constant,
boolean pipelined)
- Parameters:
parent
- Parent nodein
- Multiplicand wire. This can be an arbitrary width.product
- Product wire. This can be an arbitrary width, but if it
isn't as wide as the constant plus the multiplecand data the least
significant bits will be lostconstant
- The constant used for multiplication. This will be usignedpipelined
- Pipeline multiplier (every stage is pipelined if true).
KCMMult
public KCMMult(Node parent,
Wire in,
Wire product,
boolean signed,
BV constant,
boolean pipelined)
- Parameters:
parent
- Parent nodein
- Multiplicand wire. This can be an arbitrary width.product
- Product wire. This can be an arbitrary width, but if it
isn't as wide as the constant plus the multiplecand data the least
significant bits will be lostsigned
- multiplier. If true both the constant and the multiplecand
will be treated like they are signed.pipelined
- Pipeline multiplier (every stage is pipelined if true).
KCMMult
public KCMMult(Node parent,
Wire in,
Wire product,
int constant)
- Parameters:
parent
- Parent nodein
- Multiplicand wire. This can be an arbitrary width.product
- Product wire. This can be an arbitrary width, but if it
isn't as wide as the constant plus the multiplecand data the least
significant bits will be lostconstant
- The constant used for multiplication. This will be
an unsigned constant.
KCMMult
public KCMMult(Node parent,
Wire in,
Wire product,
boolean signed,
int constant)
- Parameters:
parent
- Parent nodein
- Multiplicand wire. This can be an arbitrary width.product
- Product wire. This can be an arbitrary width, but if it
isn't as wide as the constant plus the multiplecand data the least
significant bits will be lostsigned
- multiplier. If true both the constant and the multiplecand
will be treated like they are signed.constant
- integer is the constant used for multiplication. This will be
signed if the signed parameter is true..
KCMMult
public KCMMult(Node parent,
Wire in,
Wire product,
int constant,
boolean pipelined)
- Parameters:
parent
- Parent nodein
- Multiplicand wire. This can be an arbitrary width.product
- Product wire. This can be an arbitrary width, but if it
isn't as wide as the constant plus the multiplecand data the least
significant bits will be lostconstant
- integer is the constant used for multiplication. This will be usignedpipelined
- Pipeline multiplier (every stage is pipelined if true).
KCMMult
public KCMMult(Node parent,
Wire in,
Wire product,
boolean signed,
int constant,
boolean pipelined)
- Parameters:
parent
- Parent nodein
- Multiplicand wire. This can be an arbitrary width.product
- Product wire. This can be an arbitrary width, but if it
isn't as wide as the constant plus the multiplecand data the least
significant bits will be lostsigned
- multiplier. If true both the constant and the multiplecand
will be treated like they are signed.constant
- long is the constant used for multiplication. This will be
signed if the signed parameter is true..pipelined
- Pipeline multiplier (every stage is pipelined if true).
KCMMult
public KCMMult(Node parent,
Wire in,
Wire product,
long constant)
- Parameters:
parent
- Parent nodein
- Multiplicand wire. This can be an arbitrary width.product
- Product wire. This can be an arbitrary width, but if it
isn't as wide as the constant plus the multiplecand data the least
significant bits will be lostconstant
- The constant used for multiplication. This will be
an unsigned constant.
KCMMult
public KCMMult(Node parent,
Wire in,
Wire product,
boolean signed,
long constant)
- Parameters:
parent
- Parent nodein
- Multiplicand wire. This can be an arbitrary width.product
- Product wire. This can be an arbitrary width, but if it
isn't as wide as the constant plus the multiplecand data the least
significant bits will be lostsigned
- multiplier. If true both the constant and the multiplecand
will be treated like they are signed.constant
- long is the constant used for multiplication. This will be
signed if the signed parameter is true..
KCMMult
public KCMMult(Node parent,
Wire in,
Wire product,
long constant,
boolean pipelined)
- Parameters:
parent
- Parent nodein
- Multiplicand wire. This can be an arbitrary width.product
- Product wire. This can be an arbitrary width, but if it
isn't as wide as the constant plus the multiplecand data the least
significant bits will be lostconstant
- long is the constant used for multiplication. This will be usignedpipelined
- Pipeline multiplier (every stage is pipelined if true).
KCMMult
public KCMMult(Node parent,
Wire in,
Wire product,
boolean signed,
long constant,
boolean pipelined)
- Parameters:
parent
- Parent nodein
- Multiplicand wire. This can be an arbitrary width.product
- Product wire. This can be an arbitrary width, but if it
isn't as wide as the constant plus the multiplecand data the least
significant bits will be lostsigned
- multiplier. If true both the constant and the multiplecand
will be treated like they are signed.constant
- long is the constant used for multiplication. This will be
signed if the signed parameter is true..pipelined
- Pipeline multiplier (every stage is pipelined if true).
KCMMult
public KCMMult(Node parent,
Wire in,
Wire ra_constant,
Wire rom_constant,
Wire shift_en,
Wire product,
BV constant)
- Parameters:
parent
- Parent nodein
- Multiplicand wire. This can be an arbitrary width.ra_constant
- wire. This wire is used to reprogram the rom/adder stages
This wire must be as wide as the rom/adders or 3 bits wider than the constantrom_constant
- wire. This wire is used to reprogram the first ROM stage
This wire must be as wide as the ROM or 4 bits wider than the constantshift_en
- is a one bit wire that is high when programing the constant.
This wire enable sthe shifting of the shift registers.product
- Product wire. This can be an arbitrary width, but if it
isn't as wide as the constant plus the multiplecand data the least
significant bits will be lostconstant
- The constant used for multiplication. This will be
an unsigned constant
KCMMult
public KCMMult(Node parent,
Wire in,
Wire ra_constant,
Wire rom_constant,
Wire shift_en,
Wire product,
boolean signed,
BV constant)
- Parameters:
parent
- Parent nodein
- Multiplicand wire. This can be an arbitrary width.ra_constant
- wire. This wire is used to reprogram the rom/adder stages
This wire must be as wide as the rom/adders or 3 bits wider than the constantrom_constant
- wire. This wire is used to reprogram the first ROM stage
This wire must be as wide as the ROM or 4 bits wider than the constantshift_en
- is a one bit wire that is high when programing the constant.
This wire enable sthe shifting of the shift registers.product
- Product wire. This can be an arbitrary width, but if it
isn't as wide as the constant plus the multiplecand data the least
significant bits will be lostsigned
- multiplier. If true both the constant and the multiplecand
will be treated like they are signed.constant
- The constant used for multiplication. This will be
signed if the signed parameter is true..
KCMMult
public KCMMult(Node parent,
Wire in,
Wire ra_constant,
Wire rom_constant,
Wire shift_en,
Wire product,
BV constant,
boolean pipelined)
- Parameters:
parent
- Parent nodein
- Multiplicand wire. This can be an arbitrary width.ra_constant
- wire. This wire is used to reprogram the rom/adder stages
This wire must be as wide as the rom/adders or 3 bits wider than the constantrom_constant
- wire. This wire is used to reprogram the first ROM stage
This wire must be as wide as the ROM or 4 bits wider than the constantshift_en
- is a one bit wire that is high when programing the constant.
This wire enable sthe shifting of the shift registers.product
- Product wire. This can be an arbitrary width, but if it
isn't as wide as the constant plus the multiplecand data the least
significant bits will be lostconstant
- The constant used for multiplication. This will be usignedpipelined
- Pipeline multiplier (every stage is pipelined if true).
KCMMult
public KCMMult(Node parent,
Wire in,
Wire ra_constant,
Wire rom_constant,
Wire shift_en,
Wire product,
boolean signed,
BV constant,
boolean pipelined)
- Parameters:
parent
- Parent nodein
- Multiplicand wire. This can be an arbitrary width.ra_constant
- wire. This wire is used to reprogram the rom/adder stages
This wire must be as wide as the rom/adders or 3 bits wider than the constantrom_constant
- wire. This wire is used to reprogram the first ROM stage
This wire must be as wide as the ROM or 4 bits wider than the constantshift_en
- is a one bit wire that is high when programing the constant.
This wire enable sthe shifting of the shift registers.product
- Product wire. This can be an arbitrary width, but if it
isn't as wide as the constant plus the multiplecand data the least
significant bits will be lostsigned
- multiplier. If true both the constant and the multiplecand
will be treated like they are signed.pipelined
- Pipeline multiplier (every stage is pipelined if true).
KCMMult
public KCMMult(Node parent,
Wire in,
Wire ra_constant,
Wire rom_constant,
Wire shift_en,
Wire product,
int constant)
- Parameters:
parent
- Parent nodein
- Multiplicand wire. This can be an arbitrary width.ra_constant
- wire. This wire is used to reprogram the rom/adder stages
This wire must be as wide as the rom/adders or 3 bits wider than the constantrom_constant
- wire. This wire is used to reprogram the first ROM stage
This wire must be as wide as the ROM or 4 bits wider than the constantshift_en
- is a one bit wire that is high when programing the constant.
This wire enable sthe shifting of the shift registers.product
- Product wire. This can be an arbitrary width, but if it
isn't as wide as the constant plus the multiplecand data the least
significant bits will be lostconstant
- The constant used for multiplication. This will be
an unsigned constant.
KCMMult
public KCMMult(Node parent,
Wire in,
Wire ra_constant,
Wire rom_constant,
Wire shift_en,
Wire product,
boolean signed,
int constant)
- Parameters:
parent
- Parent nodein
- Multiplicand wire. This can be an arbitrary width.ra_constant
- wire. This wire is used to reprogram the rom/adder stages
This wire must be as wide as the rom/adders or 3 bits wider than the constantrom_constant
- wire. This wire is used to reprogram the first ROM stage
This wire must be as wide as the ROM or 4 bits wider than the constantshift_en
- is a one bit wire that is high when programing the constant.
This wire enable sthe shifting of the shift registers.product
- Product wire. This can be an arbitrary width, but if it
isn't as wide as the constant plus the multiplecand data the least
significant bits will be lostsigned
- multiplier. If true both the constant and the multiplecand
will be treated like they are signed.constant
- integer is the constant used for multiplication. This will be
signed if the signed parameter is true..
KCMMult
public KCMMult(Node parent,
Wire in,
Wire ra_constant,
Wire rom_constant,
Wire shift_en,
Wire product,
int constant,
boolean pipelined)
- Parameters:
parent
- Parent nodein
- Multiplicand wire. This can be an arbitrary width.ra_constant
- wire. This wire is used to reprogram the rom/adder stages
This wire must be as wide as the rom/adders or 3 bits wider than the constantrom_constant
- wire. This wire is used to reprogram the first ROM stage
This wire must be as wide as the ROM or 4 bits wider than the constantshift_en
- is a one bit wire that is high when programing the constant.
This wire enable sthe shifting of the shift registers.product
- Product wire. This can be an arbitrary width, but if it
isn't as wide as the constant plus the multiplecand data the least
significant bits will be lostconstant
- integer is the constant used for multiplication.
This will be usignedpipelined
- Pipeline multiplier (every stage is pipelined if true).
KCMMult
public KCMMult(Node parent,
Wire in,
Wire ra_constant,
Wire rom_constant,
Wire shift_en,
Wire product,
boolean signed,
int constant,
boolean pipelined)
- Parameters:
parent
- Parent nodein
- Multiplicand wire. This can be an arbitrary width.ra_constant
- wire. This wire is used to reprogram the rom/adder stages
This wire must be as wide as the rom/adders or 3 bits wider than the constantrom_constant
- wire. This wire is used to reprogram the first ROM stage
This wire must be as wide as the ROM or 4 bits wider than the constantshift_en
- is a one bit wire that is high when programing the constant.
This wire enable sthe shifting of the shift registers.product
- Product wire. This can be an arbitrary width, but if it
isn't as wide as the constant plus the multiplecand data the least
significant bits will be lostsigned
- multiplier. If true both the constant and the multiplecand
will be treated like they are signed.constant
- long is the constant used for multiplication. This will be
signed if the signed parameter is true..pipelined
- Pipeline multiplier (every stage is pipelined if true).
KCMMult
public KCMMult(Node parent,
Wire in,
Wire ra_constant,
Wire rom_constant,
Wire shift_en,
Wire product,
long constant)
- Parameters:
parent
- Parent nodein
- Multiplicand wire. This can be an arbitrary width.ra_constant
- wire. This wire is used to reprogram the rom/adder stages
This wire must be as wide as the rom/adders or 3 bits wider than the constantrom_constant
- wire. This wire is used to reprogram the first ROM stage
This wire must be as wide as the ROM or 4 bits wider than the constantshift_en
- is a one bit wire that is high when programing the constant.
This wire enable sthe shifting of the shift registers.product
- Product wire. This can be an arbitrary width, but if it
isn't as wide as the constant plus the multiplecand data the least
significant bits will be lostconstant
- The constant used for multiplication. This will be
an unsigned constant.
KCMMult
public KCMMult(Node parent,
Wire in,
Wire ra_constant,
Wire rom_constant,
Wire shift_en,
Wire product,
boolean signed,
long constant)
- Parameters:
parent
- Parent nodein
- Multiplicand wire. This can be an arbitrary width.ra_constant
- wire. This wire is used to reprogram the rom/adder stages
This wire must be as wide as the rom/adders or 3 bits wider than the constantrom_constant
- wire. This wire is used to reprogram the first ROM stage
This wire must be as wide as the ROM or 4 bits wider than the constantshift_en
- is a one bit wire that is high when programing the constant.
This wire enable sthe shifting of the shift registers.product
- Product wire. This can be an arbitrary width, but if it
isn't as wide as the constant plus the multiplecand data the least
significant bits will be lostsigned
- multiplier. If true both the constant and the multiplecand
will be treated like they are signed.constant
- long is the constant used for multiplication. This will be
signed if the signed parameter is true..
KCMMult
public KCMMult(Node parent,
Wire in,
Wire ra_constant,
Wire rom_constant,
Wire shift_en,
Wire product,
long constant,
boolean pipelined)
- Parameters:
parent
- Parent nodein
- Multiplicand wire. This can be an arbitrary width.ra_constant
- wire. This wire is used to reprogram the rom/adder stages
This wire must be as wide as the rom/adders or 3 bits wider than the constantrom_constant
- wire. This wire is used to reprogram the first ROM stage
This wire must be as wide as the ROM or 4 bits wider than the constantshift_en
- is a one bit wire that is high when programing the constant.
This wire enable sthe shifting of the shift registers.product
- Product wire. This can be an arbitrary width, but if it
isn't as wide as the constant plus the multiplecand data the least
significant bits will be lostconstant
- long is the constant used for multiplication. This will
be usignedpipelined
- Pipeline multiplier (every stage is pipelined if true).
KCMMult
public KCMMult(Node parent,
Wire in,
Wire ra_constant,
Wire rom_constant,
Wire shift_en,
Wire product,
boolean signed,
long constant,
boolean pipelined)
- Parameters:
parent
- Parent nodein
- Multiplicand wire. This can be an arbitrary width.ra_constant
- wire. This wire is used to reprogram the rom/adder stages
This wire must be as wide as the rom/adders or 3 bits wider than the constantrom_constant
- wire. This wire is used to reprogram the first ROM stage
This wire must be as wide as the ROM or 4 bits wider than the constantshift_en
- is a one bit wire that is high when programing the constant.
This wire enable sthe shifting of the shift registers.product
- Product wire. This can be an arbitrary width, but if it
isn't as wide as the constant plus the multiplecand data the least
significant bits will be lostsigned
- multiplier. If true both the constant and the multiplecand
will be treated like they are signed.constant
- The constant used for multiplication. This will be
signed if the constant parameter is true..pipelined
- Pipeline multiplier (every stage is pipelined if true).
KCMMult
public KCMMult(Node parent,
Wire in,
Wire ra_constant,
Wire rom_constant,
Wire shift_en,
Wire product,
boolean signed,
long constant,
boolean constant_signed,
boolean pipelined)
- Parameters:
parent
- Parent nodein
- Multiplicand wire. This can be an arbitrary width.ra_constant
- wire. This wire is used to reprogram the rom/adder stages
This wire must be as wide as the rom/adders or 3 bits wider than the constantrom_constant
- wire. This wire is used to reprogram the first ROM stage
This wire must be as wide as the ROM or 4 bits wider than the constantshift_en
- is a one bit wire that is high when programing the constant.
This wire enable sthe shifting of the shift registers.product
- Product wire. This can be an arbitrary width, but if it
isn't as wide as the constant plus the multiplecand data the least
significant bits will be lostsigned
- multiplier. If true both the constant and the multiplecand
will be treated like they are signed.constant
- The constant used for multiplication. This will be
signed if the constant_signed parameter is true..constant_signed
- This determines whether the constant is signed.pipelined
- Pipeline multiplier (every stage is pipelined if true).
init
public void init(Node parent,
Wire in,
Wire ra_constant,
Wire rom_constant,
Wire shift_en,
Wire product,
boolean signed,
BV constant,
boolean p)
- Main initialization routine for the KCMMultipliers. All constructors
should call this routine. This routine builds the multiplier based
on the input parameters.
- Parameters:
parent
- Parent nodein
- Multiplicand wire. This can be an arbitrary width.ra_constant
- wire. This wire is used to reprogram the rom/adder stages
This wire must be as wide as the rom/adders or 3 bits wider than the constantrom_constant
- wire. This wire is used to reprogram the first ROM stage
This wire must be as wide as the ROM or 4 bits wider than the constantshift_en
- is a one bit wire that is high when programing the constant.
This wire enable sthe shifting of the shift registers.product
- Product wire. This can be an arbitrary width, but if it
isn't as wide as the constant plus the multiplecand data the least
significant bits will be lostsigned
- multiplier. If true both the constant and the multiplecand
will be treated like they are signed.constant
- The constant used for multiplication. This will be
signed if the signed parameter is true..
getNumLuts
public java.lang.String getNumLuts()
getCycleTime
public java.lang.String getCycleTime()
getLatency
public java.lang.String getLatency()
Copyright ? 2006 Brigham Young University, Configurable Computing Laboratory. All Rights Reserved.