[Libre-soc-bugs] [Bug 413] DIV "trial" blocks are too large

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Sat Jul 4 11:47:10 BST 2020


https://bugs.libre-soc.org/show_bug.cgi?id=413

--- Comment #21 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
had a little more time to think.

* explicit branching will work (comment #17) and i *think* the performance will
be the same (as RSx4) except:

a) masking and the corresponding "stop" mask, both being a combinatorial
   broadcast signal, will result in a combinatorial loop if propagated in the
   current way

b) the current pipelines do *not* need stalling (at all) and this would
   be the first time it's needed.  that increases the register latches
   which given the width of the inputs and outputs (multiple 192 bit)
   is not insignificant


* RSx4 will also work except:

a) when we do the "full" version it will involve 10x4 RSes which will need
   an Array selector (pmux) of several hundred wires... *times 40*.  which
   is absolutely enormous.  12,000 to 16,000.  this is... impractical.

b) with the output feeding back to the input, the ispec and ospec need to
   be compatible.  i.e. they need to be the same (all fields in all specs)


either way is a LOT of work and i think for now we should focus on a FSM
which can be written in a couple of days.  this one is pretty obvious
and really simple:

https://github.com/antonblanchard/microwatt/blob/master/divider.vhdl

we basically are running out of time and need to focus on tasks that only
take hours or days.

we can revisit this and focus on the underlying infrastructure later.

hilariously however we may be able to use the FSM method, simply lay down
dozens
of them and achieve the performance needed that way.

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


More information about the libre-soc-bugs mailing list