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
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
G. DeMichelli. Synthesis and Optimization of Digital Circuits. McGraw Hill, New York, 1994.
Altera. Nios II C-to-hardware acceleration compiler, November 2007. http://www.altera.com/products/ip/processors/nios2/tools/c2h/ni2-c2h.html.
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.
I. Buck. Brook Spec v0.2. Tech. Report CSTR 2003-04, Stanford University, October 2003.
J. Gummaraju and M. Rosenblum. Stream programming on general-purpose processors. In Proc. of 38th Int. Symp. on Microarchitecture, pages 343–354, 2005.
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.
W.J. Dally et al. Merrimac: supercomputing with streams. In 2003 Conference on Supercomputing, pages 35–35, 2003.
R. Stephens. A survey of stream processing. Acta Informatica, 34(7):491–541, 1997.
M.I. Gordon . A stream compiler for communication-exposed architectures. ACM SIGOPS Operating Systems Review, 36(5):291–303, 2002.
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.
I. Buck . Brook for GPUs: stream computing on graphics hardware. Trans. on Graphics, 23(3):777–786, 2004.
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.
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.
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.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights 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)