Mapping Basic Recursive Structures to Runtime Reconfigurable Hardware

  • Hossam ElGindy
  • George Ferizis
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3203)


Recursion is a powerful method that is used to describe many algorithms in computer science. Processing of recursion is traditionally done using a stack, which can act as a bottleneck for parallelising and pipelining different stages of recursion. In this paper we propose a method for mapping recursive algorithms, without the use of a stack structure, into hardware by pipelining the stages of recursion. The use of runtime reconfigurable hardware to minimise the amount of required hardware resources, and the related issues to be resolved, are addressed.


Recursive Function Recursive Call Recursive Tree Matrix Multiplication Algorithm Node Population 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Bentley, J.L., Shamos, M.I.: Divide-and-conquer in multidimensional space. In: Proceedings of the eighth annual ACM symposium on Theory of computing, pp. 220–230. ACM Press, New York (1976)CrossRefGoogle Scholar
  2. 2.
    Handle-C language reference manual,
  3. 3.
    Maruyama, T., Hoshino, T.: A C to HDL Compiler for Pipeline Processing on FPGAs. In: Proceedings of the 2000 IEEE Symposium on Field-Programmable Custom Computing Machines, p. 101. IEEE Computer Society, Los Alamitos (2000)CrossRefGoogle Scholar
  4. 4.
    Bondalapati, K., Prasanna, V.K.: Loop pipelining and optimization for run time reconfiguration. In: Reconfigurable Architectures Workshop (2000)Google Scholar
  5. 5.
    ElGindy, H., Ferizis, G.: Mapping basic recursive structures to runtime reconfigurable hardware. Technical Report 419, School of Computer Science and Engineering, University of NSW (2004)Google Scholar
  6. 6.
    Orenstein, J., Merret, T., Devroye, L.: Linear sorting with O(log N) processors. BIT 23, 170–180 (1983)zbMATHCrossRefMathSciNetGoogle Scholar
  7. 7.
    Strassen, V.: Gaussian elimination is not optimal. Numerische Mathematik 13, 354–356 (1969)zbMATHCrossRefMathSciNetGoogle Scholar
  8. 8.
    Arsac, J., Kodrato, Y.: Some techniques for recursion removal from recursive functions, pp. 295–322 (1982)Google Scholar
  9. 9.
    Liu, Y.A., Stoller, S.D.: From Recursion to Iteration: What are the Optimizations? In: Partial Evaluation and Semantic-Based Program Manipulation, pp. 73–82 (2000)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Hossam ElGindy
    • 1
  • George Ferizis
    • 1
  1. 1.School of Computer Science & EngineeringThe University of New South WalesSydneyAustralia

Personalised recommendations