Skip to main content

Stream Programming for FPGAs

  • Chapter
  • 777 Accesses

Part of the book series: Lecture Notes in Electrical Engineering ((LNEE,volume 36))

Abstract

There is an increasing need for automated conversion of high-level design descriptions into hardware. We present a flow that converts a software application written in the Brook streaming language into a hardware description targeting FPGAs. We use a combination of our source-to-source compiler and a commercial C2H behavioral synthesis compiler to implement our flow. Our approach results in a significant throughput increase compared to software and ordinary C2H results (up to 8.9× and 4.3×, respectively). The throughput can be further increased by using more hardware resources to exploit data parallelism available in streaming applications.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   129.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   169.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD   169.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. G. DeMichelli. Synthesis and Optimization of Digital Circuits. McGraw Hill, New York, 1994.

    Google Scholar 

  2. Altera. Nios II C-to-hardware acceleration compiler, November 2007. http://www.altera.com/products/ip/processors/nios2/tools/c2h/ni2-c2h.html.

  3. Y.L.C.N.W. Wong. Generating hardware from OpenMP programs. In Proc. of IEEE Int. Conf. on Field Programmable Technology, pages 73–80, 2006.

    Google Scholar 

  4. I. Buck. Brook Spec v0.2. Tech. Report CSTR 2003-04, Stanford University, October 2003.

    Google Scholar 

  5. J. Gummaraju and M. Rosenblum. Stream programming on general-purpose processors. In Proc. of 38th Int. Symp. on Microarchitecture, pages 343–354, 2005.

    Google Scholar 

  6. S.-W. Liao et al. Data and computation transformations for Brook streaming applications on multiprocessors. In Proc. of Int. Symp. on Code Generation and Optimization, pages 196–207, 2006.

    Google Scholar 

  7. W.J. Dally et al. Merrimac: supercomputing with streams. In 2003 Conference on Supercomputing, pages 35–35, 2003.

    Google Scholar 

  8. R. Stephens. A survey of stream processing. Acta Informatica, 34(7):491–541, 1997.

    Article  MATH  MathSciNet  Google Scholar 

  9. M.I. Gordon . A stream compiler for communication-exposed architectures. ACM SIGOPS Operating Systems Review, 36(5):291–303, 2002.

    Article  Google Scholar 

  10. D. Tarditi et al. Accelerator: using data parallelism to program GPUs for general-purpose uses. In Proc. 12th Int. Conf. on Architectural Support for Programming Languages and Operating Systems, pages 325–335, 2006.

    Google Scholar 

  11. I. Buck . Brook for GPUs: stream computing on graphics hardware. Trans. on Graphics, 23(3):777–786, 2004.

    Article  Google Scholar 

  12. L.W. Howes et al. Comparing FPGAs to graphics accelerators and the PlayStation 2 using a unified source description. In Int. Conf. on Field-Programmable Logic, 2006.

    Google Scholar 

  13. N. Bellas et al. Template-based generation of streaming accelerators from a high level presentation. In IEEE Symp. on Field-Programmable Custom Computing Machines, 2006.

    Google Scholar 

  14. A.B.P. Mukherjee, R. Jones. Handling data streams while compiling C programs onto hardware. In Proc. IEEE Computer Society Annual Symp. on VLSI, pages 271–272, 2004.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Franjo Plavec .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2009 Springer Science+Business Media B.V.

About this chapter

Cite this chapter

Plavec, F., Vranesic, Z., Brown, S. (2009). Stream Programming for FPGAs. In: Radetzki, M. (eds) Languages for Embedded Systems and their Applications. Lecture Notes in Electrical Engineering, vol 36. Springer, Dordrecht. https://doi.org/10.1007/978-1-4020-9714-0_16

Download citation

  • DOI: https://doi.org/10.1007/978-1-4020-9714-0_16

  • Publisher Name: Springer, Dordrecht

  • Print ISBN: 978-1-4020-9713-3

  • Online ISBN: 978-1-4020-9714-0

  • eBook Packages: EngineeringEngineering (R0)

Publish with us

Policies and ethics