[Libre-soc-dev] [RFC] REMAP, SHAPE, complex (full) FFT

Luke Kenneth Casson Leighton lkcl at lkcl.net
Tue Jul 20 11:27:52 BST 2021


i've added an enhancement to REMAP Vertical-First mode end-of-loop
detection, in Rc=1 mode.

DCT needs to perform a swap *in the inner loop*, and consequently with
there being triple loops the end of the inner loop needs to be
detected.

also, fascinatingly, that inner loop needs to be *re-run* so it will
be necessary to:

* take a copy of SVSTATE just prior to running the COS coefficients,
* run a Vertical-First inner loop until a row of COS coefficients has been done
* RESTORE SVSTATE BACK TO BEFORE THAT HAPPENED
* run forward with a swap schedule
* carry on.

actually it's slightly more involved than that, because the number of
swap instructions needed is LESS than the number of COS-coefficient
instructions (exactly half).

so a completely different schedule will be needed, interleaving the two.

wooow.

no wonder ZOLC is so complicated.

anyway.

i will do some unit tests for the new inner loop Rc=1 modes, then
start on the Schedules for DCT.

Henriok, if you are happy to look at how the need for swap
instructions can be removed that would be fantastic.

i really think it should be possible, all the standard diagrams for
DCT do not need swaps, it is purely a matter of reinterpretation of
the butterfly row numbers.

l.



More information about the Libre-soc-dev mailing list