When targeting algorithms to FPGAs both the array to memory assignment and the selection of data reuse structures should be considered to maximise performance. In this work we present an integer linear programming formulation for the combined problem of array to memory assignment and data reuse selection. We include a number of cost functions to minimise during memory optimisation and show how these optimisations can be integrated into a loop pipelining framework to iteratively update the memory subsystem during scheduling. By co-optimising the datapath and memory subsystem we are able to produce near optimal (fastest) solutions, with an upper bound on the distance from the optimal. Our results show an average speedup of up to 4x over a non-optimised memory subsystem when integrated into an existing outer loop pipelining framework.
Eriko NurvitadhiJuanita HoeTimothy KamShih‐Lien L. Lu
Eriko NurvitadhiJames C. HoeTimothy KamShih‐Lien L. Lu
C. Y. Roger ChenMichael Zsolt Moricz
Eriko NurvitadhiJames C. HoeTimothy KamShih‐Lien L. Lu
Kieron TurkingtonGeorge A. ConstantinidesK. MasselosPeter Y. K. Cheung