Skip to main content
Log in

High-level synthesis for FPGAs: code optimization strategies for real-time image processing

  • Special Issue Paper
  • Published:
Journal of Real-Time Image Processing Aims and scope Submit manuscript

Abstract

High-level synthesis (HLS) is a potential solution to increase the productivity of FPGA-based real-time image processing development. It allows designers to reap the benefits of hardware implementation directly from the algorithm behaviors specified using C-like languages with high abstraction level. In order to close the performance gap between the manual and HLS-based FPGA designs, various code optimization forms are made available in today’s HLS tools. This paper proposes a HLS source code and directive manipulation strategy for real-time image processing by taking into account the applying order of different optimization forms. Experiment results demonstrate that our approach can improve more effectively the test implementations comparing to the other optimization strategies.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7

Similar content being viewed by others

Notes

  1. DOALL loop: the loops with independent iterations.

  2. Degree of parallelism of an operation: a variable that indicates how many times an operation can be or are being simultaneously executed in maximum for an implementation.

References

  1. Wang, H., Zhang, N., Crput, J.C., Moreau, J., Ruichek, Y.: Parallel structured mesh generation with disparity maps by gpu implementation. IEEE Trans. Visual Comput. Graph. 21(9), 1045–1057 (2015)

    Article  Google Scholar 

  2. Wang, H.: Cellular matrix for parallel k-means and local search to Euclidean grid matching. Theses, Université de Technologie de Belfort-Montbéliard. https://tel.archives-ouvertes.fr/tel-01265951 (December 2015)

  3. Li, C., Brost, V., Benezeth, Y., Marzani, F., Yang, F.: Design and evaluation of a parallel and optimized light-tissue interaction-based method for fast skin lesion assessment. J Real Time Image Process. 1–14 (2015). doi:10.1007/s11554-015-0494-6

  4. Li, C., Balla-Arabé, S., Yang, F.: Embedded multi-spectral image processing for real-time medical application. J. Syst. Archit. 64, 26–36. (2015). http://www.sciencedirect.com/science/article/pii/S1383762115001526

  5. Li, C., Balla-Arabé, S., Ginhac, D., Yang, F.: Embedded implementation of vhr satellite image segmentation. Sensors 16(6), 771 (2016). http://www.mdpi.com/1424-8220/16/6/771

  6. Wakabayashi, K.: Use of high-level synthesis to generate hardware from software. IEICE ESS Fundam. Rev. 6(1), 37–50 (2012)

    Article  Google Scholar 

  7. Cong, J., Liu, B., Neuendorffer, S., Noguera, J., Vissers, K., Zhang, Z.: High-level synthesis for FPGAS: from prototyping to deployment. IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 30(4), 473–491 (2011)

    Article  Google Scholar 

  8. Koichi, F., Kazushi, K., Shin-ya, A., Masao, Y., Togawa, N.: A floorplan-driven high-level synthesis algorithm for multiplexer reduction targeting fpga designs. IEICE Trans. Fundam. Electron. Commun. Comput. Sci. E98.A(7), 1392–1405 (2015)

    Article  Google Scholar 

  9. Cong, J., Liu, B., Prabhakar, R., Zhang, P.: A study on the impact of compiler optimizations on high-level synthesis. In: Kasahara, H., Kimura, K. (eds.) Languages and Compilers for Parallel Computing, Series Lecture Notes in Computer Science, vol. 7760, pp. 143–157. Springer, Berlin (2013). doi:10.1007/978-3-642-37658-0_10

  10. Keisuke, I., Mineo, K.: Dual-edge-triggered flip-flop-based high-level synthesis with programmable duty cycle. IEICE Trans. Fundam. Electron. Commun. Comput. Sci. E96.A(12), 2689–2697 (2013)

    Article  Google Scholar 

  11. Vivado Design Suite User Guide, Ug902 (2012.2) ed., XILINX, (July 2012)

  12. Wang, G.: Catapult C Synthesis Work Flow Tutorial, Version 1.3 ed., ECE Department, Rice University (October 2010)

  13. Wakabayashi, K.: C-based behavioral synthesis and verification analysis on industrial design examples. In: Proceedings of the 2004 Asia and South Pacific Design Automation Conference, Series ASP-DAC ’04, pp. 344–348. IEEE Press, Piscataway (2004). http://dl.acm.org/citation.cfm?id=1015090.1015177

  14. Villarreal, J., Park, A., Najjar, W., Halstead, R.: Designing modular hardware accelerators in c with ROCCC 2.0. In: 2010 18th IEEE Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM), pp. 127–134 (May 2010)

  15. Liang, Y., Rupnow, K., Li, Y., Min, D., Do, M.N., Chen, D.: High-level synthesis: productivity, performance, and software constraints. J. Electr. Comput. Eng., 2012, 14 (2012), article ID 649057. doi:10.1155/2012/649057

  16. Cong, J., Huang, M., Zou, Y.: Accelerating fluid registration algorithm on multi-FPGA platforms. In: 2011 International Conference on Field Programmable Logic and Applications (FPL), pp. 50–57 (September 2011)

  17. Rupnow, K., Liang, Y., Li, Y., Min, D., Do, M., Chen, D.: High level synthesis of stereo matching: productivity, performance, and software constraints. In: 2011 International Conference on Field-Programmable Technology (FPT). IEEE (2011)

  18. Rodrigues, R., Cardoso, J., Diniz, P.: A data-driven approach for pipelining sequences of data-dependent loops. In: 15th Annual IEEE Symposium on Field-Programmable Custom Computing Machines, 2007. FCCM 2007, pp. 219–228 (April 2007)

  19. Ziegler, H., Hall, M. W., Diniz, P.: Compiler-generated communication for pipelined FPGA applications. In: Design Automation Conference, 2003. Proceedings, pp. 610–615 (June 2003)

  20. Cong, J., Fan, Y., Han, G., Jiang, W., Zhang, Z.: Behavior and communication co-optimization for systems with sequential communication media. In Design Automation Conference, 2006 43rd ACM/IEEE, pp. 675–678 (2006)

  21. Li, P., Pouchet, L.-N., Cong, J.: Throughput optimization for high-level synthesis using resource constraints. In: IMPACT 2014. Fourth International Workshop on Polyhedral Compilation Techniques. In conjunction with HiPEAC 2014, Vienna, Austria (January 20, 2014)

  22. Huang, Q., Lian, R., Canis, A., Choi, J., Xi, R., Calagar, N., Brown, S., Anderson, J.: The effect of compiler optimizations on high-level synthesis-generated hardware. ACM Trans. Reconfigurable Technol. Syst. 8(3), 14:1–14:26 (2015). doi:10.1145/2629547

    Article  Google Scholar 

  23. Gajski, D.D., Dutt, N.D., Wu, A.C.H., Lin, S.Y.L.: High-Level Synthesis: Introduction to Chip and System Design. Springer, New York (1992)

    Book  Google Scholar 

  24. Mehrara, M., Jablin, T., Upton, D., August, D., Hazelwood, K., Mahlke, S.: Multicore compilation strategies and challenges. Sig. Process. Mag. IEEE 26(6), 55–63 (2009)

    Article  Google Scholar 

  25. Ahn, J.H., Erez, M., Dally, W.J.: Tradeoff between data-, instruction-, and thread-level parallelism in stream processors. In: Proceedings of the 21st Annual International Conference on Supercomputing, Series ICS ’07, pp. 126–137. ACM, New York (2007). doi:10.1145/1274971.1274991

  26. Xilinx: Introduction to FPGA design with vivado high-level synthesis. Xilinx, Technical Report UG998 (v1.0) (July 2013)

  27. Zuo, W., Liang, Y., Li, P., Rupnow, K., Chen, D., Cong, J.: Improving high level synthesis optimization opportunity through polyhedral transformations. In: Proceedings of the ACM/SIGDA International Symposium on Field Programmable Gate Arrays, Series FPGA ’13, pp. 9–18. ACM, New York (2013). doi:10.1145/2435264.2435271

  28. Pouchet, L.-N.: PoCC. The Polyhedral Compiler Collection., version 1.2 ed., on line, Computer Science Department, University of California Los Angeles, 4731L Boelter Hall, Los Angeles, CA 90095. http://www.cs.ucla.edu/pouchet/software/pocc/

  29. Steven Derrien, A.M., Kumar, A.: S2s4hls-sp1 progress report. INRIA—University of Rennes 1, INRIA—ENS Cachan and INRIA—LIP, Technical Report (2008)

  30. Morvan, A., Derrien, S., Quinton, P.: Efficient nested loop pipelining in high level synthesis using polyhedral bubble insertion. In: 2011 International Conference on Field-Programmable Technology (FPT), pp. 1–10 (December 2011)

  31. Alle, M., Morvan, A., Derrien, S.: Runtime dependency analysis for loop pipelining in high-level synthesis. In: Design Automation Conference (DAC), 2013 50th ACM/EDAC/IEEE, pp. 1–10 (May 2013)

  32. Vivado Design Suite Tutorial, Ug871(v2012.2) ed., XILINX (February 2012)

  33. Lee, J.-H., Hsu, Y.-C., Lin, Y.-L.: A new integer linear programming formulation for the scheduling problem in data path synthesis. In: 1989 IEEE International Conference on Computer-Aided Design, 1989. ICCAD-89. Digest of Technical Papers, pp. 20–23 (November 1989)

Download references

Acknowledgements

The authors would like to thank the China Scholarship Council, the CAS Pioneer Hundred Talents Program and the Conseil Régional de Bourgogne Franche-Comté for their funding of our studies.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Yanjing Bi.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Li, C., Bi, Y., Benezeth, Y. et al. High-level synthesis for FPGAs: code optimization strategies for real-time image processing. J Real-Time Image Proc 14, 701–712 (2018). https://doi.org/10.1007/s11554-017-0722-3

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11554-017-0722-3

Keywords

Navigation