Advertisement

An Integrated on-Silicon Verification Method for FPGA Overlays

  • Alexandra KourfaliEmail author
  • Florian Fricke
  • Michael Huebner
  • Dirk Stroobandt
Article
  • 48 Downloads

Abstract

Field Programmable Gate Arrays (FPGAs) gain popularity as higher-level tools evolve to deliver the benefits of re-programmable silicon to engineers and scientists at all levels of expertise. In order to use FPGAs efficiently, new CAD tools and modern architectures are needed for the growing demands of heterogeneous computing paradigms. Overlay architectures have become a popular option to support a variety of high-performance computing applications implemented on heterogeneous computing platforms. However, most of these architectures cannot offer an efficient way to dynamically debug and repair them. In this paper, we propose a superimposed virtual coarse-grained reconfigurable architecture, embedded with on-demand debug and self-healing capabilities. The proposed method automatically creates flexible techniques for in-circuit error detection and correction of generic Processing Elements and Virtual Channels. The debugging infrastructure is integrated in the design with tailor-made CAD tools, making feasible to rapidly debug and repair virtual architectures with minimal use of additional FPGA resources.

Keywords

FPGA CGRA In-circuit debugging Repair Parameterized configuration On-silicon debug Verification FPGA overlay 

Notes

Acknowledgments

This work has been supported by the European Commission in the context of the European Union Horizon 2020 Framework Programme (H2020-EU.1.2.2.) under grant agreement number 671653.

References

  1. 1.
    Amazon (2018) Amazon ec2 f1 instances: enable faster FPGA accelerator development and deployment in the cloud. retrieved from: https://aws.amazon.com/ec2/instance-types/f1/. Accessed: 2019-01-07
  2. 2.
    Angepat H, Eads G, Craik C, Chiou D (2010) Nifd: non-intrusive FPGA debugger – debugging FPGA ’threads’ for rapid hw/sw systems prototyping. In: 2010 International Conference on Field Programmable Logic and Applications, pp 356–359Google Scholar
  3. 3.
    Brant A, Zuma GL (2012) An open FPGA overlay architecture. 2012 IEEE 20th international symposium on field-programmable custom computing machines, pp 93–96Google Scholar
  4. 4.
    Bruneel K, Heirman W, Stroobandt D (2011) Dynamic data folding with parameterizable FPGA configurations. ACM Trans Des Autom Electron Syst (TODAES) 16(4):43:1–43:29Google Scholar
  5. 5.
    Calagar N, Brown SD, Anderson JH (2014) Source-level debugging for FPGA high-level synthesis. In: 2014 24th international conference on field programmable logic and applications (FPL), pp 1–8Google Scholar
  6. 6.
    Coole J, Stitt G (2010) Intermediate fabrics: virtual architectures for circuit portability and fast placement and routing. In: Proceedings of the 8th IEEE/ACM/IFIP international conference on hardware/software codesign and system synthesis, CODES/ISSS ’10. ACM, New York, pp 13–22Google Scholar
  7. 7.
    Coole J, Stitt G (2010) Intermediate fabrics: virtual architectures for circuit portability and fast placement and routing. In: 2010 IEEE/ACM/IFIP international conference on hardware/software codesign and system synthesis (CODES+ISSS), pp 13–22Google Scholar
  8. 8.
    Eslami F, Hung E, Wilton SJE (2016) Enabling effective FPGA debug using overlays: opportunities and challenges. corr, arXiv:1606.06457
  9. 9.
    Eslami F, Wilton SJE (2015) An adaptive virtual overlay for fast trigger insertion for FPGA debug. In: 2015 international conference on field programmable technology (FPT), pp 32–39Google Scholar
  10. 10.
    Eslami F, Wilton SJE (2017) An improved overlay and mapping algorithm supporting rapid triggering for FPGA debug. SIGARCH Comput Archit News 44(4):20–25CrossRefGoogle Scholar
  11. 11.
    Foster HD (2015) Trends in functional verification: a 2014 industry study. In: Proceedings of the 52nd annual design automation conference, DAC ’15, vol 48. ACM, New York, pp 1–48:6Google Scholar
  12. 12.
    Fricke F, Werner A, Shahin K, Huebner M (2018) CGRA tool flow for fast run-time reconfiguration. In: Voros N, Huebner M, Keramidas G, Goehringer D, Antonopoulos C, Diniz PC (eds) Applied reconfigurable computing. Architectures, tools, and applications. Springer International Publishing, Cham, pp 661–672Google Scholar
  13. 13.
    Goeders J, Wilton SJE (2015) Using dynamic signal-tracing to debug compiler-optimized HLS circuits on FPGAs. In: 2015 IEEE 23rd annual international symposium on field-programmable custom computing machines, pp 127–134Google Scholar
  14. 14.
    Goeders J, Wilton SJE (2017) Signal-tracing techniques for in-system FPGA, debugging of high-level synthesis circuits. IEEE Trans Comput Aided Des Integr Circuits Syst 36(1):83–96CrossRefGoogle Scholar
  15. 15.
    Graham P, Nelson B, Hutchings B (2001) Instrumenting bitstreams for debugging FPGA circuits. In: The 9th annual IEEE symposium on field-programmable custom computing machines (FCCM’01), pp 41–50Google Scholar
  16. 16.
    Grant D, Wang C, Lemieux GGF (2011) A cad framework for malibu: an FPGA with time-multiplexed coarse-grained elements. In: Proceedings of the 19th ACM/SIGDA international symposium on field programmable gate arrays, FPGA ’11. ACM, New York, pp 123–132Google Scholar
  17. 17.
    Heyse K, Davidson T, Vansteenkiste E, Bruneel K, Stroobandt D (2013) Efficient implementation of virtual coarse grained reconfigurable arrays on fpgas. In: 2013 23rd international conference on field programmable logic and applications, pp 1–8Google Scholar
  18. 18.
    Hopkins ABT, McDonald-Maier KD (2006) Debug support for complex systems on-chip: A review. IEEE Proc Comput Digital Techn 153(4):197–207CrossRefGoogle Scholar
  19. 19.
    Hung E, Todman T, Luk W (2014) Transparent insertion of latency-oblivious logic onto fpgas. In: 2014 24th international conference on field programmable logic and applications (FPL), pp 1–8Google Scholar
  20. 20.
    Hung E, Wilton SJE (2013) Towards simulator-like observability for fpgas: A virtual overlay network for trace-buffers. In: Proceedings of the ACM/SIGDA International Symposium on Field Programmable Gate Arrays, FPGA ’13. ACM, New York, pp 19–28Google Scholar
  21. 21.
    Hung E, Wilton SJE (2014) Incremental trace-buffer insertion for FPGA, debug. IEEE Trans Very Large Scale Integr VLSI Syst 22(4):850–863CrossRefGoogle Scholar
  22. 22.
    Hutchings BL, Keeley J (2014) Rapid post-map insertion of embedded logic analyzers for xilinx fpgas. In: 2014 IEEE 22nd annual international symposium on field-programmable custom computing machines, pp 72–79Google Scholar
  23. 23.
    Intel Corporation (2019) Quartus prime standard edition handbook, volume 3: Verification: Design and debugging with the SignalTap II logic analyzer. retrieved from: https://www.mouser.com/pdfdocs/qts-qps-5v3.pdf, 2019. Accessed: 2019-01-02
  24. 24.
    Ko HF, Nicolici N (2009) Algorithms for state restoration and trace-signal selection for data acquisition in silicon debug. IEEE Trans Comput Aided Des Integr Circuits Syst 28(2):285–297CrossRefGoogle Scholar
  25. 25.
    Koch D, Beckhoff C, Lemieux GGF (2013) An efficient FPGA overlay for portable custom instruction set extensions. In: 2013 23rd international conference on field programmable logic and applications, pp 1–8Google Scholar
  26. 26.
    Koch D, Haubelt C, Teich J (2007) Efficient hardware checkpointing: concepts, overhead analysis, and implementation. In: Proceedings of the 2007 ACM/SIGDA 15th international symposium on field programmable gate arrays, FPGA ’07. ACM, New York, pp 188–196Google Scholar
  27. 27.
    Kourfali A, Stroobandt D (2016) Efficient hardware debugging using parameterized FPGA reconfiguration. In 2016 IEEE international parallel and distributed processing symposium workshops (IPDPSW), pp 277–282Google Scholar
  28. 28.
    Kourfali A, Stroobandt D (2018) Superimposed in-circuit debugging for self-healing FPGA overlays. In: 2018 IEEE 19th Latin-American test symposium (LATS), pp 1-6Google Scholar
  29. 29.
    Kulkarni A, Stroobandt D (2016) Micap-pro: a high speed custom reconfiguration controller for dynamic circuit specialization. Des Autom Embed Syst 20(4):341–359CrossRefGoogle Scholar
  30. 30.
    Kulkarni A, Stroobandt D, Werner A, Fricke F, Huebner M (2017) Pixie: A heterogeneous virtual coarse-grained reconfigurable array for high performance image processing applications. In: 3rd international workshop on overlay architectures for FPGAs (OLAF 2017), pp 1–6Google Scholar
  31. 31.
    Landy A, Stitt G (2012) A low-overhead interconnect architecture for virtual reconfigurable fabrics. In: Proceedings of the 2012 international conference on compilers, architectures and synthesis for embedded systems, CASES ’12. ACM, New York, pp 111–120Google Scholar
  32. 32.
    Lindtjorn O, Clapp R, Pell O, Fu H, Flynn M, Mencer O (2011) Beyond traditional microprocessors for geoscience high-performance computing applications. IEEE Micro 31(2):41–49CrossRefGoogle Scholar
  33. 33.
    Luu J, Goeders J, Wainberg M, Somerville A, Yu T, Nasartschuk K, Nasr M, Wang S, Liu T, Ahmed N, Kent KB, Anderson J, Rose J, Betz V (2014) Vtr 7.0: next generation architecture and cad system for fpgas. ACM Transactions on Reconfigurable Technology and Systems (TRETS) 7(2):6:1–6:30Google Scholar
  34. 34.
    Mentor Graphics (2016) Certus silicon debugGoogle Scholar
  35. 35.
    Mitra S, Seshia SA, Nicolici N (2010) Post-silicon validation opportunities, challenges and recent advances. In: Proceedings of the 47th design automation conference, DAC ’10. ACM, New York, pp 12–17Google Scholar
  36. 36.
    Putnam A, Caulfield AM, Chung ES, Chiou D, Constantinides K, Demme J, Esmaeilzadeh H, Fowers J, Gopal GP, Gray J, Haselman M, Hauck S, Heil S, Hormati A, Kim J-Y, Lanka S, Larus J, Peterson E, Pope S, Smith A, Thong J, Xiao PY, Burger D (2014) A reconfigurable fabric for accelerating large-scale datacenter services. SIGARCH Comput Architect News 42(3):13–24CrossRefGoogle Scholar
  37. 37.
    Sekanina L (2003) Virtual reconfigurable circuits for real-world applications of evolvable hardware. In: Proceedings of the 5th international conference on evolvable systems: from biology to hardware, ICES ’03. Springer, Berlin, pp 186–197Google Scholar
  38. 38.
    Sharifi M, Fathy M, Mahmoudi MT (2002) A classified and comparative study of edge detection algorithms. In: Proceedings. International conference on information technology: Coding and computing, pp 117–120Google Scholar
  39. 39.
    Synopsys (2019) Identify: simulator-like visibility into hardware debug. retrieved from: https://www.synopsys.com/implementation-and-signoff/fpga-based-design/i%dentify-rtl-debugger.html, 2019. Accessed:2019-01-10
  40. 40.
    Tiago P (2014) Peixoto the graph-tool python libraryGoogle Scholar
  41. 41.
    Tzimpragos G, Cheng D, Tapp S, Jayadev B, Majumdar A (2016) Application debug in FPGAs in the presence of multiple asynchronous clocks. In: 2016 IEEE international conference on field-programmable technology,(FPT). ProceedingsGoogle Scholar
  42. 42.
    Vansteenkiste E, Farisi BA, Bruneel K, Stroobandt D (2014) Tpar: Place and route tools for the dynamic reconfiguration of the FPGA’s interconnect network. IEEE Trans Comput Aided Des Integr Circuits Syst 33(3):370–383CrossRefGoogle Scholar
  43. 43.
    Vermeulen B (2008) Functional debug techniques for embedded systems. IEEE Des Test Comput 25(3):208–215CrossRefGoogle Scholar
  44. 44.
    Wheeler T, Graham P, Nelson B, Hutchings B (2001) Using design-level scan to improve FPGA design observability and controllability for functional verification. Springer, BerlinCrossRefzbMATHGoogle Scholar
  45. 45.
    Xilinx (2019) Programming and debugging: Vivado design suite user guide, ug973 (v2018.1). retrieved from: https://www.xilinx.com/products/design-tools/vivado.html, 2018
  46. 46.
    Xilinx Inc (2015) Configuration readback capture in ultrascale FPGAs. Application note, XAPP1230Google Scholar

Copyright information

© Springer Science+Business Media, LLC, part of Springer Nature 2019

Authors and Affiliations

  1. 1.ELIS Department, Computer Systems LabGhent UniversityGhentBelgium
  2. 2.Chair for Embedded Systems for Information TechnologyRuhr University of BochumBochumGermany
  3. 3.Chair for Computer EngineeringTechnical University of CottbusSenftenbergGermany

Personalised recommendations