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

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Fri Jul 3 05:23:21 BST 2020


--- Comment #10 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
(In reply to Jacob Lifshay from comment #8)
> (In reply to Luke Kenneth Casson Leighton from comment #7)
> > >>> 434*434
> > 188356
> > 
> > down from 500,000 it is going to be several hours on placement alone.
> > 
> > each core section also looks too large, containing rr multiply that
> > is not needed.  will try cutting that.
> all the multiplies should be multiplying by small constants, which should
> convert to a few adds.

adds that are 192 bits long.  this results in absolutely massive adders
by the time it is converted to gates.  likewise for the trial_comparison
(the greater-than-equal)

this results in a 450k VST file because it is literally around 2,000
cells to do the compare @ 192 bit long

if one of those compares can be cut out (because the PriorityEncoder
will always select at least the lowest flag) then that literally
halves the number of gates when radix=1.

can you help investigate by using yosys and installing coriolis2 and compiling
the code so that you can see what is going on.

you need to understand exactly what is going on otherwise guessing what
*might* work is going to be a waste of time and we do not have time to

you need the feedback loop which you are entirely missing at the moment
by not running the unit tests and not running the tools.

this in turns means that i have to be the one to do it and that's simply
not ok because there is too much else to do.

> if the div pipe is flattened, their is probably a lot more that can be
> shared between all the different parts, such as every stage multiplying the
> divisor by the same constants.

constants are simply converted to pulling locally to VSS or VDD at the
point they are needed: they take up no space at all.

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

More information about the libre-soc-bugs mailing list