[Libre-soc-dev] DCT/FFT augmentations

Richard Wilbur richard.wilbur at gmail.com
Sun Jun 27 23:19:00 BST 2021



> On Jun 27, 2021, at 12:53, Luke Kenneth Casson Leighton <lkcl at lkcl.net> wrote:
> 
> FRT = FRA*FRC+FRA
> FRS = -FRA*FRC+FRC
> 
> where even FRC is an implicit register, offset by VL, just as FRS is
> an implicit register, offset by VL.

That looks suspiciously simple like:

FRT = FRA*(FRC+1)
FRS = (-FRA+1)*FRC

Too bad we’re doing finite arithmetic with such limited precision because this could actually be a lot faster if we had a functional unit to increment a floating point number and then did the floating point multiply.  My recollection is that floating point addition requires more setup and renormalization than multiply.  We would, of course, run into precision problems without a vast intermediate format!  (And then to make quick use of that extended precision intermediate result we’d need a very much larger multiplier.  That’s not getting better, just bigger.)

At least with your formulation you can reuse the product!


More information about the Libre-soc-dev mailing list