[libre-riscv-dev] [Bug 60] N-stage 64-bit multiplier pipeline needed (signed/unsigned)

bugzilla-daemon at libre-riscv.org bugzilla-daemon at libre-riscv.org
Sat Aug 17 11:52:45 BST 2019


http://bugs.libre-riscv.org/show_bug.cgi?id=60

--- Comment #23 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
i've put multiply.py and test_multiply.py here:
https://git.libre-riscv.org/?p=ieee754fpu.git;a=tree;f=src/ieee754/part_mul_add;h=af3634054ac530f4fdc7b2877fbf370b9b1bb594;hb=43de8ed4528ea7627cfe2cbac9374074b22687ae

i've started the process of creating modules and using Cat() instead of
individual bit-wise assignment, plus identified some invariants and assigned
them to Signals (_part_byte() is a good example) rather than compute them
multiple times.

even with a (new) module called Term, the graphviz diagram on Mul_8_16_32_64
is innnnsaaaaane.

also, there's 8x8 intermediate product results of 16-bits each behind
Muxes: to save power i believe it should be the case that a and b go
through the Muxes (one each)... *then* the results of that go through
the multiply.

otherwise, the multiply is always active (using power) and there's 64 of them.
that would mean (i believe) that on an 8x 8-bit SIMD, 64 multiplications
would still be performed.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the libre-riscv-dev mailing list