Automating Optimized Table-with-Polynomial Function Evaluation for FPGAs

  • Dong-U Lee
  • Oskar Mencer
  • David J. Pearce
  • Wayne Luk
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3203)


Function evaluation is at the core of many compute-intensive applications which perform well on reconfigurable platforms. Yet, in order to implement function evaluation efficiently, the FPGA programmer has to choose between a multitude of function evaluation methods such as table lookup, polynomial approximation, or table lookup combined with polynomial approximation. In this paper, we present a methodology and a partially automated implementation to select the best function evaluation hardware for a given function, accuracy requirement, technology mapping and optimization metrics, such as area, throughput and latency. The automation of function evaluation unit design is combined with ASC, A Stream Compiler, for FPGAs. On the algorithmic side, MATLAB designs approximation algorithms with polynomial coefficients and minimizes bitwidths. On the hardware implementation side, ASC provides partially automated design space exploration. We illustrate our approach for sin(x), log(1+x) and 2 x with a selection of graphs that characterize the design space with various dimensions, including accuracy, precision and function evaluation method. We also demonstrate design space exploration by implementing more than 400 distinct designs.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Cao, J., We, B.W.Y., Cheng, J.: High-performance architectures for elementary function generation. In: Proc. 15th IEEE Symp. on Comput. Arith. (2001)Google Scholar
  2. 2.
    Flynn, M.J., Oberman, S.F.: Advanced Computer Arithmetic Design. John Wiley & Sons, NewYork (2001)Google Scholar
  3. 3.
    Jain, V.K., Wadecar, S.A., Lin, L.: A universal nonlinear component and its application to WSI. IEEE Trans. Components, Hybrids and Manufacturing Tech. 16(7), 656–664 (1993)CrossRefGoogle Scholar
  4. 4.
    Lee, D., Luk, W., Villasenor, J., Cheung, P.Y.K.: Hierarchical Segmentation Schemes for Function Evaluation. In: Proc. IEEE Int. Conf. on Field-Prog. Tech., pp. 92–99 (2003)Google Scholar
  5. 5.
    Lewis, D.M.: Interleaved memory function interpolators with application to an accurate LNS arithmetic unit. IEEE Trans. Comput. 43(8), 974–982 (1994)zbMATHCrossRefGoogle Scholar
  6. 6.
    Mencer, O., Pearce, D.J., Howes, L.W., Luk, W.: Design space exploration with a stream compiler. In: Proc. IEEE Int. Conf. on Field-Prog. Tech., pp. 270–277 (2003)Google Scholar
  7. 7.
    Mencer, O., Luk, W.: Parameterized high throughput function evaluation for FPGAs. J. of VLSI Sig. Proc. Syst. 36(1), 17–25 (2004)CrossRefGoogle Scholar
  8. 8.
    Muller, J.M.: Elementary Functions: Algorithms and Implementation. Birkhäuser, Basel (1997)zbMATHGoogle Scholar
  9. 9.
    Patrice, B., Didier, R., Jean, V.: Programmable active memories: a performance assessment. In: Proc. ACM Int. Symp. on Field-Prog. Gate Arrays (1992)Google Scholar
  10. 10.
    Schulte, M.J., Stine, J.E.: Approximating elementary functions with symmetric bipartite tables. IEEE Trans. on Comput. 48(9), 842–847 (1999)CrossRefGoogle Scholar
  11. 11.
    Tang, P.T.P.: Table lookup algorithms for elementary functions and their error analysis. In: Proc. IEEE Symp. on Comput. Arith., pp. 232–236 (1991)Google Scholar
  12. 12.
    Wong, W.F., Goto, E.: Fast hardware-based algorithms for elementary function computations using rectangular multipliers. IEEE Trans. on Comput. 43, 278–294 (1994)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Dong-U Lee
    • 1
  • Oskar Mencer
    • 1
  • David J. Pearce
    • 1
  • Wayne Luk
    • 1
  1. 1.Department of ComputingImperial CollegeLondonUK

Personalised recommendations