[Libre-soc-bugs] [Bug 413] DIV "trial" blocks are too large
    bugzilla-daemon at libre-soc.org 
    bugzilla-daemon at libre-soc.org
       
    Thu Jul  2 20:39:40 BST 2020
    
    
  
https://bugs.libre-soc.org/show_bug.cgi?id=413
--- Comment #5 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
(In reply to Jacob Lifshay from comment #4)
> (In reply to Luke Kenneth Casson Leighton from comment #0)
> > the "trial" blocks used in the div pipelines create 2.1 megabyte VHDL
> > files each, during layout, and there are 270 of them.  this results
> > in a jump in the size of the BLIF file from 10 megabytes to 100 megabytes,
> > and a jump from 85,000 blocks (which coriolis2 can cope with)
> > to 500,000 (which it cannot).
> 
> one additional way that the size might be unnecessarily large is if yosys
> for some reason doesn't do the almost-trivial constant propagation on the
> DivPipeCoreOperation, since I'm relying on that to discard the dead code for
> the sqrt/rsqrt portions of the div pipe.
inside a module that's fine.  in *between* modules it is not fine because
yosys cannot detect those cases without flattening.
so for example passing a Const as an input to a module: that's guaranteed
not to be detected.
> I didn't check if yosys discards
> that. It probably needs to be flattened for yosys to optimize properly.
which will need a customised script to do that as it will be the
only module that needs custom flattening.
these are the size of the trial blocks, now:
    876K Jul  2 19:31 trial1_311.vst
that's down from 2 megabytes (each).  the reduction has got things down
from 500,000 blocks down to 250,000 blocks which is still 2.5 times larger
than anything that anyone has done with coriolis2 before.
-- 
You are receiving this mail because:
You are on the CC list for the bug.
    
    
More information about the libre-soc-bugs
mailing list