학술논문

A unified software approach to specify pipeline and spatial parallelism in FPGA hardware
Document Type
Conference
Source
2016 IEEE 27th International Conference on Application-specific Systems, Architectures and Processors (ASAP) Application-specific Systems, Architectures and Processors (ASAP), 2016 IEEE 27th International Conference on. :75-82 Jul, 2016
Subject
Components, Circuits, Devices and Systems
Computing and Processing
Hardware
Field programmable gate arrays
Standards
Pipelines
Instruction sets
Parallel processing
Language
ISSN
2160-052X
Abstract
High-level synthesis (HLS) is increasingly becoming a mainstream design methodology for FPGAs. Whereas its previous applications were mostly limited to research and simple designs, it is now being used to tape-out real-world chips in production [1]. Advances in compiler and HLS research continue to improve the quality of HLS-generated hardware. Despite this, the ease-of-use of HLS tools remains a hurdle to its broad uptake, particularly by engineers without hardware skills. To this end, we propose using a well-known software technique to infer streaming parallel hardware in HLS. Specifically, we use the producer-consumer pattern, commonly used in multi-threaded programming, to infer the generation of hardware that can exploit both pipeline and spatial parallelism on FPGAs. Our proposed methodology allows one to create a design in software, using only standard software methodologies, that cannot only synthesize to streaming hardware, but also model the generated hardware more accurately than existing solutions from other state-of-the-art C-based HLS tools. We use four different real-world benchmarks to illustrate the use of our methodology, and how it can create circuits that are either pipelined, or pipelined and replicated, all from software. For comparison, we also use a commercial HLS tool to synthesize one of the benchmarks, and show that our methodology can produce competitive results to that of the commercial tool.