FPGA-based DSP

  • John McAllister


Field Programmable Gate Array (FPGA) offers an excellent host embedded device for DSP systems when real-time performance beyond that which multiprocessor platforms can achieve is required, but volumes are too small to justify the costs of developing a custom chip. This niche role is due to the ability of FPGA to host custom computing architectures, tailored to the application. Modern FPGAs play host to a range of complex processing resources which can only be effectively exploited by heterogeneous processing architectures composed of microprocessors with custom co-processors, parallel software processors and dedicated hardware units. The complexity of these architectures, coupled with the need for frequent regeneration of the implementation with each new application makes FPGA system design a highly complex and unique design problem. The key to success in this process is the ability of the designer to best exploit the FPGA resources in a custom architecture, and the ability of design tools to quickly and efficiently generate these architectures. This chapter describes the state-of-the-art in FPGA device resources, computing architectures and design tools which support the DSP system design process.


Field Programmable Gate Array Register Transfer Level General Purpose Processor Arithmetic Logic Unit Field Programmable Gate Array Device 
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.
    Banerjee, P., Haldar, M., Nayak, A., Kim, V., Saxena, V., Parkes, S., Bagchi, D., Pal, S., Tripathi, N., Zaretsky, D., Anderson, R., Uribe, J.: Overview of a compiler for synthesizing MATLAB programs onto FPGAs. IEEE Trans. VLSI Syst. 12(3), 312–324 (2004)CrossRefGoogle Scholar
  2. 2.
    Cho, J., Chang, H., Sung, W.: An FPGA-based SIMD processor with a vector memory unit. In: Proc. IEEE International Symposium on Circuits and Systems, pp. 525–528 (2006)Google Scholar
  3. 3.
    Altera Corp.: Avalon Interface Specifications (2008). URL
  4. 4.
    Altera Corp.: Nios II C2H Compiler Uuser Guide (2008). URL
  5. 5.
    Altera Corp.: DSP Design Flow User Guide (2009). URL
  6. 6.
    Altera Corp.: Stratix IV Device Handbook (2009). URL
  7. 7.
    Fischaber, S., Woods, R., McAllister, J.: SoC memory hierarchy derivation from dataflow graphs. Journal of Signal Processing Systems (2009)Google Scholar
  8. 8.
    Gajski, D., Vahid, F., Narayan S. Gong, J.: Specification and Design of Embedded Systems. Prentice Hall (1994)Google Scholar
  9. 9.
    Harriss, T., Walke, R., Kienhuis, B., Deprettere, E.F.: Compilation from Matlab to process networks realised in FPGA. Design Automation for Embedded Systems 7(4), 385–403 (2002)zbMATHCrossRefGoogle Scholar
  10. 10.
    Hoare, C.: Communicating Sequential Processes. Prentice Hall (1985)Google Scholar
  11. 11.
    Agility Design Solutions Inc.: Handel-C Language Reference Manual (2007). URL
  12. 12.
    Xilinx Inc.: MicroBlaze Processor Reference Guide (2008). URL
  13. 13.
    Xilinx Inc.: Embedded Processor Block in Virtex-5 FPGAs (2009). URL
  14. 14.
    Xilinx Inc.: Embedded Processor Block in Virtex-5 FPGAs Reference Guide (2009). URL
  15. 15.
    Synfora Inc.: PICO FPGA Datasheet (2009). URL
  16. 16.
    Xilinx Inc.: System Generator for DSP User Guide (2009). URL
  17. 17.
    Xilinx Inc.: Virtex-5 FPGA User Guide (2009). URL
  18. 18.
    Xilinx Inc.: Virtex-5 FPGA XtremeDSP Design Considerations (2009). URL
  19. 19.
    Xilinx Inc.: Virtex-6 FPGA Memory Resources (2009). URL
  20. 20.
    Texas Instruments: TMS320C64x/C64x+ DSP CPU and Instruction Set Reference Guide (2008). URL
  21. 21.
    Jones, A., Hoare, R., Kusic, D., Fazekas, J., Foster, J.: An FPGA-based VLIW processor with custom hardware execution. In: Proceedings 13th International Symposium on Field-Programmable Gate Arrays, pp. 107–117 (2005)Google Scholar
  22. 22.
    Kahn, G.: The semantics of a simple language for parallel programming. In: Proc. IFIP Congress, pp. 471–475 (1974)Google Scholar
  23. 23.
    Kangas, T., Kukkala, P., Orsila, H., Salminen, E., Hännikäinen, M., Hämäläinen, T., Riihimäki, J., Kuusilinna, K.: UML-based multiprocessor SoC design framework. ACM Transactions on Embedded Computing Systems (TECS) 5, 281Ű –320 (2006)CrossRefGoogle Scholar
  24. 24.
    Keutzer, K., Malik, S., Newton, R., Rabaey, J., Sangiovanni-Vincentelli, A.: System level design: Orthogonolization of concerns and platform-based design. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 19(12), 1523–1543 (2000). URL CrossRefGoogle Scholar
  25. 25.
    Kulmala, A., Salminen, E., Hämäläinen, T.: Instruction memory architecture evaluation on multiprocessor FPGA MPEG-4 encoder. In: Proc. Design and Diagnostics of Electronic Circuits and Systems, pp. 1–6 (2007)Google Scholar
  26. 26.
    Moscu Panainte, E., Bertels, K., Vassiliadis, S.: The MOLEN compiler for reconfigurable processors. ACM Transactions on Embedded Computing Systems 6(1) (2007)Google Scholar
  27. 27.
    Nikolov, H.: System level design methodology for streaming multi-processor embedded systems. Ph.D. thesis, Leiden University, the Netherlands (2009)Google Scholar
  28. 28.
    Nikolov, H., Stefanov, S., Deprettere, E.: Multi-processor system design with ESPAM. In: Proc. 4th Int’l Conf/ on Hardware/Software Codesign and System Synthesis, pp. 211–216 (2006)Google Scholar
  29. 29.
    Parhi, K.: VLSI Digital Signal Processing Systems : Design and Implementation. Wiley (1999)Google Scholar
  30. 30.
    Pimentel, A., Erbas, C., Polstra, S.: A systematic approach to exploring embedded system architectures at multiple abstraction levels. IEEE Transaction on Computers 55(2), 1–14 (2006)CrossRefGoogle Scholar
  31. 31.
    Qiang, L., Constantinides, G.,Masselos, K., Cheung, P.: Combining data reuse with data-level parallelization for FPGA-targeted hardware compilation: A geometric programming framework. IEEE Trans. CAD 28, 305–315 (2009)Google Scholar
  32. 32.
    Ravindran, K., Satish, N.R., Jin, Y., Keutzer, K.: An FPGA-based soft multiprocessor system for IPv4 packet forwarding. In: International Conference on Field Programmable Logic and Applications, pp. 487–492 (2005)Google Scholar
  33. 33.
    Salminen, E., Kangas, T., Hämäläinen, T., Riihimäki, J., Lahtinen, V., Kuusilinna, K.: HIBI communication network for system-on-chip. Journal of VLSI Signal Processing Systems 43(2–3), 185–205 (2006)zbMATHCrossRefGoogle Scholar
  34. 34.
    Santo, B.: 25 microchips that shook the world. IEEE Spectrum (2009)Google Scholar
  35. 35.
    Sheldon, D., Kumar, R., Lysecky, R., Vahid, F., Tullsen, D.: Application-specific customization of parameterized FPGA soft-core processors. In: Proc. IEEE/ACM International Conference on Computer-Aided Design, pp. 261–268 (2006)Google Scholar
  36. 36.
    Sheldon, D., Kumar, R., Vahid, F., Tullsen, D., Lysecky, R.: Conjoining soft-core FPGA processors. In: Proc. IEEE/ACMInternational Conference on Computer-Aided Design, pp. 694–701 (2006)Google Scholar
  37. 37.
    Stefanov, T., Kienhuis, B., Deprettere, E.: Algorithmic transformation techniques for efficient exploration of alternative application instances. In: Proc. 10th Int. Symp. on Hardware/Software Codesign, pp. 7–12 (2002)Google Scholar
  38. 38.
    Stefanov, T., Zissulescu, C., Turjan, A., Kienhuis, B., Deprettere, E.: System design using Kahn process networks: The Compaan/Laura approach. In: Proc. Design Automation and Test in Europe (DATE) Conference, p. 10340 (2004)Google Scholar
  39. 39.
    Thompson, M., Stefanov, T., Nikolov, H., Pimentel, A., Erbas, C., Polstra, E., Deprettere, E.: A framework for rapid system-level exploration, synthesis and programming of multimedia MP-SoCs. In: Proc. ACM/IEEE/IFIP Int. Conference on Hardware-Software Codesign and System Synthesis, pp. 9–14 (2007)Google Scholar
  40. 40.
    Vassiliadis, S., Wong, S., Gaydadjiev, G., Bertels, K., Kuzmanov, G., Moscu Panainte, E.: The MOLEN polymorphic processor. IEEE Transactions on Computers 53(11), 1363–1375 (2004)CrossRefGoogle Scholar
  41. 41.
    Verdoolaege, S., Nikolov, H., Stefanov, T.: PN: a tool for improved derivation of process networks. Eurasip Journal on Embedded Systems 2007 (2007)Google Scholar
  42. 42.
    Walke, R., Smith, R., Lightbody, G.: 20-GFLOPS QR processor on a Xilinx Virtex-E Fpga. In: Proc. SPIE Advanced Signal Processing Algorithms, Architectures and Implementations X, vol. 4116, pp. 300–310 (2000)Google Scholar
  43. 43.
    Wolf, W.: High Performance Embedded Computing - Architectures, Applications, and Methodologies. Morgan Kaufmann (2007)Google Scholar
  44. 44.
    Woods, R., McAllister, J., Yi, Y., Lightbody, G.: FPGA-based Implementation of Signal Processing Systems. Wiley (2008)Google Scholar
  45. 45.
    Yi, Y., Woods, R.: Hierarchical synthesis of complex DSP functions using IRIS. IEEE Trans. Computer Aided Design of Integrated Circuits and Systems 25(5), 806–820 (2006)CrossRefGoogle Scholar
  46. 46.
    Yu, J., Eagleston, C., Chou, C., Perreault, M., Lemieux, G.: Vector processing as a soft processor accelerator. ACM Trans. Reconfigurable Technology and Systems 2(2), 12:1–12:34 (2000)Google Scholar
  47. 47.
    Zhuo, L., Prasanna, V.: Scalable and modular algorithms for floating-point matrix multiplication on reconfigurable computing systems. IEEE Trans. Parallel and Distributed Systems 18(4), 433–448 (2007)CrossRefGoogle Scholar
  48. 48.
    Zhuo, L., Prasanna, V.: High-performance designs for linear algebra operations on reconfigurable hardware. IEEE Trans. Computers 57(8), 1057–1071 (2008)CrossRefMathSciNetGoogle Scholar

Copyright information

© Springer Science+Business Media, LLC 2010

Authors and Affiliations

  1. 1.Institute of Electronics, Communications and Information Technology (ECIT)Queen’s UniversityBelfastUK

Personalised recommendations