Abstract
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.
Similar content being viewed by others
References
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).
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).
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.
Bhattacharyya, S.S., Eker, J., Janneck, J.W., Lucarz, C., Mattavelli, M., & Raulet, M. (2011). Overview of the MPEG reconfigurable video coding (RVC) framework. Journal of Signal Processing Systems, 63, 251–263.
Bowen, M. Handel-C Language Reference Manual Version 2.1. Embedded Solutions Limited.
Coussy, P., Gajski, D.D., Meredith, M., & Takach, A. (2009). An introduction to High-Level synthesis (HLS). IEEE Design & Test of Computers, 26(4), 8–17.
Dennis, J.B. (1974). First version of a data flow procedure language. In Programming symposium, proceedings colloque sur la programmation (pp. 362–376).
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.
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.
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.
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.
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.
Kahn, G. (1974). The semantics of simple language for parallel programming. In IFIP Congress (pp. 471–475).
Lee, E.A., & Parks, T. (1995). Dataflow process networks. In Proceedings of the IEEE (pp. 773–799).
Martin, G., Bailey, B., & Piziali, A. (2007). ESL Design and verification: a prescription for electronic system level methodology. San Francisco: Morgan kaufmann publishers Inc.
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.
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).
Wipliez, M. (2010). Compilation infrastructure for dataflow programs. Ph.D. thesis, INSA Rennes.
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.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Abid, M., Jerbi, K., Raulet, M. et al. Efficient System-Level Hardware Synthesis of Dataflow Programs Using Shared Memory Based FIFO. J Sign Process Syst 90, 127–144 (2018). https://doi.org/10.1007/s11265-017-1226-x
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11265-017-1226-x