Abstract
As modern field-programmable gate arrays (FPGA) enable high computing performance and efficiency, their programming with low-level hardware description languages is time-consuming and remains a major obstacle to their adoption. High-level synthesis compilers are able to produce register-transfer-level (RTL) designs from C/C++ algorithmic descriptions, but despite allowing significant design-time improvements, these tools are not always able to generate hardware designs that compare to handmade RTL designs. In this article, we consider synthesis from an intermediate-level (IL) language that allows the description of algorithmic state machines handling connections between streaming sources and sinks. However, the interconnection of streaming sources and sinks can lead to cyclic combinational relations, resulting in undesirable behaviors or un-synthesizable designs. We propose a functional-level methodology to automate the resolution of such cyclic relations into acyclic combinational functions. The proposed IL synthesis methodology has been applied to the design of pipelined floating-point cores. The results obtained show how the proposed IL methodology can simplify the description of pipelined architectures while enabling performances that are close to those achievable through an RTL design methodology.
- A. Agarwal, Man Cheuk Ng, and Arvind. 2010. A comparative evaluation of high-level hardware synthesis using reed solomon decoder. IEEE Embed. Syst. Lett. 2, 3 (Sep. 2010), 72--76. Google Scholar
Digital Library
- Altera. 2015. Avalon Interface Specifications. Technical Report.Google Scholar
- J. Arias-Garcia, C. H. Llanos, M. Ayala-Rincon, and R. P. Jacobi. 2012. FPGA implementation of large-scale matrix inversion using single, double and custom floating-point precision. In Proceedings of the 8th Southern Conference on Programmable Logic (SPL’12). 1--6.Google Scholar
- Etienne Bergeron, Xavier Saint-Mleux, Marc Feeley, and Jean Pierre David. 2005. High-level synthesis for data-driven applications. In Proceedings of the 16th IEEE International Workshop on Rapid System Prototyping (RSP’05). 54--60. Google Scholar
Digital Library
- Andrew Canis, Jongsok Choi, Mark Aldham, Victor Zhang, Ahmed Kammoona, Tomasz Czajkowski, Stephen D. Brown, and Jason H. Anderson. 2013. LegUp: An open-source high-level synthesis tool for FPGA-based processor/accelerator systems. ACM Trans. Embed. Comput. Syst. 13, 2, Article 24 (Sep. 2013). Google Scholar
Digital Library
- Jordi Cortadella, Mike Kishinevsky, and Bill Grundmann. 2006. Synthesis of synchronous elastic architectures. In Proceedings of the 43rd Annual Design Automation Conference (DAC’06). ACM, New York, NY, 657--662. Google Scholar
Digital Library
- P. Coussy, D. D. Gajski, M. Meredith, and A. Takach. 2009. An introduction to high-level synthesis. IEEE Design Test Comput. 26, 4 (July 2009), 8--17. Google Scholar
Digital Library
- M.-A. Daigneault and J. P. David. 2012. Raising the abstraction level of HDL for control-dominant applications. In Proceedings of the 22nd International Conference on Field Programmable Logic and Applications (FPL’12). 515--518.Google Scholar
- M.-A. Daigneault and J. P. David. 2013. High-level description and synthesis of floating-point accumulators on FPGA. In Proceedings of the IEEE 21st Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM’13). 206--209. Google Scholar
Digital Library
- Marc-Andre Daigneault and Jean Pierre David. 2014. Fast description and synthesis of control-dominant circuits. Comput. Electric. Eng. 40, 4 (2014), 1199--1214. Google Scholar
Digital Library
- M. A. Daigneault and J. P. David. 2015. Intermediate-level synthesis of a Gauss-Jordan elimination linear solver. In Proceedings of the IEEE International Parallel and Distributed Processing Symposium Workshop. 176--181. Google Scholar
Digital Library
- Jean-Pierre David and Etienne Bergeron. 2004. An intermediate level HDL for system level design. In Proceedings of the Forum on Specification and Design Languages (FDL’04). 526--536.Google Scholar
- G. M. de Matos and H. C. Neto. 2007. Memory optimized architecture for efficient Gauss-Jordan matrix inversion. In Proceedings of the 3rd Southern Conference on Programmable Logic (SPL’07). 33--38.Google Scholar
- S. de Pablo, S. Caceres, J. A. Cebrian, and M. Berrocal. 2007. A proposal for ASM++ diagrams. In Procedings of the IEEE Conference on Design and Diagnostics of Electronic Circuits and Systems (DDECS’07). 1--4.Google Scholar
- R. Duarte, H. Neto, and M. Vestias. 2009. Double-precision Gauss-Jordan algorithm with partial pivoting on FPGAs. In Proceedings of the 12th Euromicro Conference on Digital System Design, Architectures, Methods and Tools (DSD’09). 273--280. Google Scholar
Digital Library
- Michael J. Flynn, Oskar Mencer, Veljko Milutinovic, Goran Rakocevic, Per Stenstrom, Roman Trobec, and Mateo Valero. 2013. Moving from petaflops to petadata. Commun. ACM 56, 5 (May 2013), 39--42. Google Scholar
Digital Library
- Etienne M. Gagnon and Laurie J. Hendren. 1998. SableCC, an object-oriented compiler framework. In Proceedings of the Technology of Object-Oriented Languages (TOOLS’98). IEEE, 140--154. Google Scholar
Digital Library
- C. House. 2012. A paradigm shift was happening all around us. IEEE Solid-State Circ. Mag. 4, 4 (Dec. 2012), 32--35.Google Scholar
- Qijing Huang, Ruolong Lian, Andrew Canis, Jongsok Choi, Ryan Xi, Nazanin Calagar, Stephen Brown, and Jason Anderson. 2015. The effect of compiler optimizations on high-level synthesis-generated hardware. ACM Trans. Reconfig. Technol. Syst. 8, 3, Article 14 (May 2015), 26 pages. Google Scholar
Digital Library
- J.-H. R. Jiang, A. Mishchenko, and R. K. Brayton. 2004. On breakable cyclic definitions. In Proceedings of the IEEE/ACM International Conference on Computer Aided Design (ICCAD’04). 411--418. Google Scholar
Digital Library
- O. Lindtjorn, R. Clapp, O. Pell, Haohuan Fu, M. Flynn, and Haohuan Fu. 2011. Beyond traditional microprocessors for geoscience high-performance computing applications. IEEE Micro 31, 2 (2011), 41--49. Google Scholar
Digital Library
- S. Moussa, A. M. A. Razik, A. O. Dahmane, and H. Hamam. 2013. FPGA implementation of floating-point complex matrix inversion based on GAUSS-JORDAN elimination. In Proceedings of the 26th Annual IEEE Canadian Conference on Electrical and Computer Engineering (CCECE’13). 1--4.Google Scholar
- R. Nane, V. M. Sima, C. Pilato, J. Choi, B. Fort, A. Canis, Y. T. Chen, H. Hsiao, S. Brown, F. Ferrandi, J. Anderson, and K. Bertels. 2016. A survey and evaluation of FPGA high-level synthesis tools. IEEE Trans. Comput.-Aided Design Integr. Circ. Syst. 35, 10 (Oct. 2016), 1591--1604. Google Scholar
Digital Library
- R. S. Nikhil. 2007. Composable guarded atomic actions: A bridging model for SoC design. In Proceedings of the 7th International Conference on Application of Concurrency to System Design (ACSD’07). 23--28. Google Scholar
Digital Library
- A. Putnam, D. Bennett, E. Dellinger, J. Mason, P. Sundararajan, and S. Eggers. 2008. CHiMPS: A C-level compilation flow for hybrid CPU-FPGA architectures. In Proceedings of the International Conference on Field Programmable Logic and Applications (FPL’08). 173--178.Google Scholar
- R. Sinha and H. D. Patel. 2011. Abstract state machines as an intermediate representation for high-level synthesis. In Proceedings of the Design, Automation Test in Europe Conference Exhibition (DATE’11). 1--6.Google Scholar
- L. Stok. 1992. False loops through resource sharing (logic CAD). In Proceedings of the IEEE/ACM International Conference on Computer-Aided Design. 345--348. Google Scholar
Digital Library
- M. Vijayaraghavan, N. Dave, and Arvind. 2013. Modular compilation of guarded atomic actions. In Proceedings of the 11th IEEE/ACM International Conference on Formal Methods and Models for Codesign (MEMOCODE’13). 177--188. Google Scholar
Digital Library
- Felix J. Winterstein, Samuel R. Bayliss, and George A. Constantinides. 2015. Separation logic for high-level synthesis. ACM Trans. Reconfig. Technol. Syst. 9, 2, Article 10 (Dec. 2015). Google Scholar
Digital Library
- Xilinx. 2012. AXI Reference Guide (UG761). Technical Report.Google Scholar
- Xilinx. 2018. Vivado Design Suite User Guide (UG902). Technical Report.Google Scholar
Index Terms
Automated Synthesis of Streaming Transfer Level Hardware Designs
Recommendations
Productive Hardware Designs using Hybrid HLS-RTL Development
FPGA '20: Proceedings of the 2020 ACM/SIGDA International Symposium on Field-Programmable Gate ArraysCurrent High-Level Synthesis frameworks provide a productive hardware development methodology where hardware accelerators are generated directly from high-level languages like C/C++ or OpenCL, allowing software developers to quickly accelerate their ...
Layout-driven RTL binding techniques for high-level synthesis
ISSS '96: Proceedings of the 9th international symposium on System synthesisThe importance of effective and efficient accounting of layout effects is well-established in high-level synthesis (HLS), since it allows more realistic exploration of the design space and the generation of solutions with predictable metrics. This ...
Hardware Description Beyond Register-Transfer Level Languages
FPGA '20: Proceedings of the 2020 ACM/SIGDA International Symposium on Field-Programmable Gate ArraysPrevalent hardware description languages (HDLs), e.g., Verilog and VHDL, employ register-transfer level (RTL) as their underlying programming model. One major downside of the RTL model is that it tightly couples design functionality with timing and ...






Comments