Efficient System-Level Hardware Synthesis of Dataflow Programs Using Shared Memory Based FIFO
- 111 Downloads
The purpose of this paper is to raise the level of abstraction in the design of embedded systems to the system-level. A novel design flow was proposed that enables an efficient hardware implementation of video processing applications described using a Domain-Specific Language (DSL) for dataflow programming. Despite the huge advancements in High-Level Synthesis (HLS) for Field-Programmable Gate Arrays (FPGAs), designers are still required to have detailed knowledge about coding techniques and the targeted architecture to achieve efficient solutions. Moreover, the main downside of the High-Level Synthesis (HLS) tools is the lack of the entire system consideration. As a remedy, in this work, we propose a design flow that combines a dataflow compiler for generating C-based High-Level Synthesis (HLS) descriptions from a dataflow description and a C-to-gate synthesizer for generating Register Transfer Level (RTL) descriptions. The challenge of implementing the communication channels of dataflow programs relying on Model of Computations (MoC) in Field-Programmable Gate Array (FPGA) is the minimization of the communication overhead. In this issue, we introduced a new interface synthesis approach that maps the large amounts of data that multimedia and image processing applications process, to shared memories on the Field-Programmable Gate Array (FPGA). This leads to a tremendous decrease in the latency and an increase in the throughput. These results were demonstrated upon the hardware synthesis of the emerging High-Efficiency Video Coding (HEVC) standard. Simulation results showed that the proposed implementation has increased throughput by a 5.2× speedup and reduced latency by a 3.8× speedup compared to a state-of-the-art implementation.
KeywordsReconfigurable Video Coding (RVC)-CAL Actor Language (CAL) High-Level Synthesis (HLS) Interface Synthesis Random Access Memory (RAM)
- 1.Abid, M., Jerbi, K., Raulet, M., Deforges, O., & Abid, M. (2013). System level synthesis of dataflow programs: HEVC decoder case study. In Electronic system level synthesis conference (ESLsyn), 2013 (pp. 1–6).Google Scholar
- 2.Bezati, E., Mattavelli, M., & Janneck, J. (2013). High-Level Synthesis of dataflow programs for signal processing systems. In 8Th international symposium on image and signal processing and analysis (ISPA 2013).Google Scholar
- 3.Bezati, E., Yviquel, H., Raulet, M., & Mattavelli, M. (2011). A unified hardware/software co-synthesis solution for signal processing systems. In Conference on design and architecfor signal and image processing (DASIP), 2011 (pp. 1–6). doi: 10.1109/DASIP.2011.6136877.
- 5.Bowen, M. Handel-C Language Reference Manual Version 2.1. Embedded Solutions Limited.Google Scholar
- 7.Dennis, J.B. (1974). First version of a data flow procedure language. In Programming symposium, proceedings colloque sur la programmation (pp. 362–376).Google Scholar
- 8.Eker, J., & Janneck, J.W. (2003). CAL Language report specification of the CAL actor language. Tech. Rep. UCB/ERL m03/48, EECS Department, University of California, Berkeley.Google Scholar
- 9.Frigo, J., Gokhale, M., & Lavenier, D. (2001). Evaluation of the streams-c c-to-fpga compiler: An applications perspective. In Proceedings of the 2001 ACM/SIGDA ninth international symposium on field programmable gate arrays, FPGA ’01 (pp. 134–140). New York: ACM. doi: 10.1145/360276.360326.
- 10.Gupta, S., Dutt, N., Gupta, R., & Nicolau, A. (2003). Spark: a high-level synthesis framework for applying parallelizing compiler transformations. In 16th international conference on VLSI design, 2003. Proceedings (pp. 461–466). doi: 10.1109/ICVD.2003.1183177.
- 11.Janneck, J., Miller, I., Parlour, D., Roquier, G., Wipliez, M., & Raulet, M. (2008). Synthesizing hardware from dataflow programs: An MPEG-4 simple profile decoder case study. In IEEE workshop on signal processing systems, 2008. SiPS 2008(pp. 287–292). doi: 10.1109/SIPS.2008.4671777.
- 12.Jerbi, K., Raulet, M., Deforges, O., & Abid, M. (2012). Automatic generation of synthesizable hardware implementation from high level RVC-cal description. In IEEE international conference on acoustics, speech and signal processing (ICASSP), 2012 (pp. 1597–1600). doi: 10.1109/ICASSP.2012.6288199.
- 13.Kahn, G. (1974). The semantics of simple language for parallel programming. In IFIP Congress (pp. 471–475).Google Scholar
- 14.Lee, E.A., & Parks, T. (1995). Dataflow process networks. In Proceedings of the IEEE (pp. 773–799).Google Scholar
- 15.Martin, G., Bailey, B., & Piziali, A. (2007). ESL Design and verification: a prescription for electronic system level methodology. San Francisco: Morgan kaufmann publishers Inc.Google Scholar
- 16.Najjar, W., Bohm, W., Draper, B., Hammes, J., Rinker, R., Beveridge, J., Chawathe, M., & Ross, C. (2003). High-level language abstraction for reconfigurable computing. Computer, 36(8), 63–69. doi: 10.1109/MC.2003.1220583.
- 17.Siret, N., Wipliez, M., Nezan, J.F., & Palumbo, F. (2012). Generation of efficient High-Level hardware code from dataflow programs. In Proceedings of design, automation and test in europe (DATE).Google Scholar
- 18.Wipliez, M. (2010). Compilation infrastructure for dataflow programs. Ph.D. thesis, INSA Rennes.Google Scholar
- 19.Yviquel, H., Casseau, E., Wipliez, M., & Raulet, M. (2011). Efficient multicore scheduling of dataflow process networks. In IEEE Workshop On Signal Processing Systems (SiPS), 2011 (pp. 198–203): Liban. doi: 10.1109/SiPS.2011.6088974.