Exploiting task-and data-level parallelism in streaming applications implemented in FPGAs

F Plavec, Z Vranesic, S Brown - ACM Transactions on Reconfigurable …, 2013 - dl.acm.org
F Plavec, Z Vranesic, S Brown
ACM Transactions on Reconfigurable Technology and Systems (TRETS), 2013dl.acm.org
This article describes the design and implementation of a novel compilation flow that
implements circuits in FPGAs from a streaming programming language. The streaming
language supported is called FPGA Brook and is based on the existing Brook language. It
allows system designers to express applications in a way that exposes parallelism, which
can be exploited through hardware implementation. FPGA Brook supports replication,
allowing parts of an application to be implemented as multiple hardware units operating in …
This article describes the design and implementation of a novel compilation flow that implements circuits in FPGAs from a streaming programming language. The streaming language supported is called FPGA Brook and is based on the existing Brook language. It allows system designers to express applications in a way that exposes parallelism, which can be exploited through hardware implementation. FPGA Brook supports replication, allowing parts of an application to be implemented as multiple hardware units operating in parallel. Hardware units are interconnected through FIFO buffers which use the small memory modules available in FPGAs. The FPGA Brook automated design flow uses a source-to-source compiler, developed as a part of this work, and combines it with a commercial behavioral synthesis tool to generate the hardware implementation. A suite of benchmark applications was developed in FPGA Brook and implemented using our design flow. Experimental results indicate that performance of many applications scales well with replication. Our benchmark applications also achieve significantly better results than corresponding implementations using a commercial behavioral synthesis tool. We conclude that using an automated design flow for implementation of streaming applications in FPGAs is a promising methodology.
ACM Digital Library
Showing the best result for this search. See all results