[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
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.
no wonder ZOLC is so complicated.
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.
More information about the Libre-soc-dev