coreblocks.func_blocks.fu.unsigned_multiplication package
Submodules
coreblocks.func_blocks.fu.unsigned_multiplication.common module
- class coreblocks.func_blocks.fu.unsigned_multiplication.common.DSPMulUnit
Bases:
Elaboratable
Module for 1 clock cycle multiplication, designed to be replaced with a DSP block by the synthesis tool.
- Attributes
- compute: Method(i=[(“i1”, n), (“i2”, n)], o=[(“o”, 2 * n)]), in out
Method for requesting computations and getting results in this same cycle.
- class coreblocks.func_blocks.fu.unsigned_multiplication.common.MulBaseUnsigned
Bases:
Elaboratable
Abstract module creating common interface of unsigned multiplication module.
- Attributes
- issue: Method(i=gen.get(UnsignedMulUnitLayouts).issue), in
Method used for requesting computation.
- accept: Method(i=gen.get(UnsignedMulUnitLayouts).accept), out
Method used for getting result of requested computation.
coreblocks.func_blocks.fu.unsigned_multiplication.fast_recursive module
- class coreblocks.func_blocks.fu.unsigned_multiplication.fast_recursive.RecursiveUnsignedMul
Bases:
MulBaseUnsigned
Module with @see{MulBaseUnsigned} interface performing fast recursive multiplication within 1 clock cycle.
coreblocks.func_blocks.fu.unsigned_multiplication.pipelined module
coreblocks.func_blocks.fu.unsigned_multiplication.sequence module
- class coreblocks.func_blocks.fu.unsigned_multiplication.sequence.SequentialUnsignedMul
Bases:
MulBaseUnsigned
Module with @see{MulBaseUnsigned} interface performing sequential multiplication using single DSP unit. It uses classic recursive multiplication algorithm.
coreblocks.func_blocks.fu.unsigned_multiplication.shift module
- class coreblocks.func_blocks.fu.unsigned_multiplication.shift.ShiftUnsignedMul
Bases:
MulBaseUnsigned
Module with @see{MulBaseUnsigned} interface performing cheap multi clock cycle multiplication using Russian Peasants Algorithm.