Nothing Special   »   [go: up one dir, main page]

skip to main content
research-article

Toward Software-like Debugging for FPGAs via Checkpointing and Transaction-based Co-Simulation

Published: 10 May 2023 Publication History

Abstract

Checkpoint-based debugging flows have recently been developed that allow the user to move the design state back and forth between an FPGA and a simulator. They provide a softwarelike debugging experience by combining the speed of hardware execution and the full visibility of simulation. However, they assume the entire system state can be moved to a simulator, limiting them to self-contained systems. In this article, we present StateLink, a transaction-based co-simulation framework that allows part of the system (the task) to run in a simulator and still interact with other system components that reside in hardware. StateLink allows tasks to remain connected to and active in the overall hardware system after their state is moved to a simulator. This extends the functionality of checkpoint-based debugging frameworks to designs with external I/Os and significantly speeds up the simulation of tasks that are part of a large system. StateLink typically adds no timing overhead and a modest hardware area overhead. The total area overhead of using the proposed flow on a Memcached system is only 13%. This flow allows the user to benefit from both the hardware speedup of ∼1M× and the StateLink speedup of up to 44× versus full system simulation.

References

[1]
Hari Angepat, Gage Eads, Christopher Craik, and Derek Chiou. 2010. NIFD: Non-intrusive FPGA debugger—Debugging FPGA ‘threads’ for rapid HW/SW systems prototyping. In Proceedings of the International Conference on Field-Programmable Logic and Applications (FPL’10). 356–359.
[2]
Sameh Asaad, Ralph Bellofatto, Bernard Brezzo, Chuck Haymes, Mohit Kapur, Benjamin Parker, Thomas Roewer, Proshanta Saha, Todd Takken, and José Tierno. 2012. A cycle-accurate, cycle-reproducible multi-FPGA system for accelerating multi-core processor simulation. In Proceedings of the International Symposium on Field Programmable Gate Arrays (FPGA’12). 153–162.
[3]
Sameh Attia and Vaughn Betz. 2020. Feel free to interrupt: Safe task stopping to enable FPGA checkpointing and context switching. ACM Trans. Reconfig. Technol. Syst. 13, 1 (2020), 1–27.
[4]
Sameh Attia and Vaughn Betz. 2020. StateMover: Combining simulation and hardware execution for efficient FPGA debugging. In Proceedings of the International Symposium on Field Programmable Gate Arrays (FPGA’20). 175–185.
[5]
Sameh Attia and Vaughn Betz. 2020. StateReveal: Enabling checkpointing of FPGA designs with buried state. In Proceedings of the International Conference on Field-Programmable Technologies (FPT’20).
[6]
Sameh Attia and Vaughn Betz. 2021. StateLink: FPGA system debugging via flexible simulation/hardware integration. In Proceedings of the International Conference on Field-Programmable Technologies (FPT’21).
[7]
Sameh Attia and Vaughn Betz. 2022. Stop and look: A novel checkpointing and debugging flow for FPGAs. IEEE Trans. Comput. (2022), 1–1.
[8]
Somnath Banerjee and Tushar Gupta. 2012. Fast and scalable hybrid functional verification and debug with dynamically reconfigurable co-simulation. In Proceedings of the IEEE/ACM International Conference on Computer-Aided Design (ICCAD’12). 115–122.
[9]
Pavan K. Bussa, Jeffrey Goeders, and Steven J. E. Wilton. 2017. Accelerating in-system FPGA debug of high-level synthesis circuits using incremental compilation techniques. In Proceedings of the International Conference on Field Programmable Logic and Applications (FPL’17). 1–4.
[10]
X. Cheng, A. W. Ruan, Y. B. Liao, P. Li, and H. C. Huang. 2010. A run-time RTL debugging methodology for FPGA-based co-simulation. In Proceedings of the International Conference on Communications, Circuits and Systems (ICCCAS’10). 891–895.
[11]
Alan “Dormando” Kasindorf. 2018. Memcached—A Distributed Memory Object Caching System. Retrieved June 1, 2019 from http://memcached.org/.
[12]
Fatemeh Eslami and Steven J. E. Wilton. 2014. Incremental distributed trigger insertion for efficient FPGA debug. In Proceedings of the International Conference on Field Programmable Logic and Applications (FPL’14). 1–4.
[13]
Harry Foster. 2020. Wilson Research Group Functional Verification Study: FPGA Functional Verification Trend Report. White Paper. Wilson Research Group and Mentor, A Siemens Business.
[14]
Jeffrey Goeders and Steven J. E. Wilton. 2017. Signal-tracing techniques for in-system FPGA debugging of high-level synthesis circuits. IEEE Trans. Comput.-Aid. Des. Integr. Circ. Syst. 36, 1 (2017), 83–96.
[15]
Daniel Holanda Noronha, Ruizhe Zhao, Jeff Goeders, Wayne Luk, and Steven J. E. Wilton. 2019. On-chip FPGA debug instrumentation for machine learning applications. In Proceedings of the International Symposium on Field Programmable Gate Arrays (FPGA’19). 110–115.
[16]
Chung-Yang Huang, Yu-Fan Yin, Chih-Jen Hsu, Thomas B. Huang, and Ting-Mao Chang. 2011. SoC HW/SW verification and validation. In Proceedings of the Asia and South Pacific Design Automation Conference (ASPDAC’11). 297–300.
[17]
Eddie Hung and Steven J. E. Wilton. 2013. Scalable signal selection for post-silicon debug. IEEE Trans. Very Large Scale Integr. Syst. 21, 6 (2013), 1103–1115.
[18]
Eddie Hung and Steven J. E. Wilton. 2014. Incremental trace-buffer insertion for FPGA debug. IEEE Trans. Very Large Scale Integr. Syst. 22, 4 (2014), 850–863.
[19]
Brad L. Hutchings and Jared Keeley. 2014. Rapid post-map insertion of embedded logic analyzers for Xilinx FPGAs. In Proceedings of the International Symposium on Field-Programmable Custom Computing Machines (FCCM’14). 72–79.
[20]
B. L. Hutchings and B. E. Nelson. 2001. Unifying simulation and execution in a design environment for FPGA systems. IEEE Trans. Very Large Scale Integr. Syst. 9, 1 (2001), 201–205.
[21]
Intel, Inc. 2015. Quartus Prime Handbook Volume 3: Verification.
[22]
Yousef Iskander, Cameron Patterson, and Stephen Craven. 2014. High-level abstractions and modular debugging for FPGA design validation. ACM Trans. Reconfig. Technol. Syst. 7, 1 (2014), 2:1–2:22.
[23]
Donggyu Kim, Christopher Celio, Sagar Karandikar, David Biancolin, Jonathan Bachrach, and Krste Asanovic. 2018. DESSERT: Debugging RTL effectively with state snapshotting for error replays across trillions of cycles. In Proceedings of the International Conference on Field Programmable Logic and Applications (FPL’18). 76–79.
[24]
Changgong Li, Alexander Schwarz, and Christian Hochberger. 2016. A readback based general debugging framework for soft-core processors. In Proceedings of the International Conference on Computer Design (ICCD’16). 568–575.
[25]
David Sidler and Ken Eguro. 2016. Debugging framework for FPGA-based soft processors. In Proceedings of teh International Conference on Field-Programmable Technology (FPT’16). 165–168.
[26]
Georgios Tzimpragos, Da Cheng, Stephanie Tapp, Balakrishna Jayadev, and Amitava Majumdar. 2016. Application debug in FPGAs in the presence of multiple asynchronous clocks. In Proceedings of the International Conference on Field-Programmable Technology (FPT’16). 189–192.
[27]
Xilinx. 2016. HLS Implementation of Memcached Pipeline. Retrieved June 1, 2019 from https://github.com/Xilinx/HLx_Examples/tree/master/Acceleration/memcached.
[28]
Xilinx, Inc. 2016. PG144: AXI GPIO v2.0. Xilinx, Inc.
[29]
Xilinx, Inc. 2016. PG172: Integrated Logic Analyzer. Xilinx, Inc.
[30]
Xilinx, Inc. 2020. UG1483: Model Composer and System Generator User Guide. Xilinx, Inc.
[31]
Sangjun Yang, Heejun Shim, Wooseung Yang, and Chong-Min Kyung. 2004. A new RTL debugging methodology in FPGA-based verification platform. In Proceedings of the IEEE Asia-Pacific Conference on Advanced System Integrated Circuits (APASIC’04). 180–183.

Cited By

View all

Index Terms

  1. Toward Software-like Debugging for FPGAs via Checkpointing and Transaction-based Co-Simulation

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM Transactions on Reconfigurable Technology and Systems
    ACM Transactions on Reconfigurable Technology and Systems  Volume 16, Issue 2
    June 2023
    451 pages
    ISSN:1936-7406
    EISSN:1936-7414
    DOI:10.1145/3587031
    • Editor:
    • Deming Chen
    Issue’s Table of Contents

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 10 May 2023
    Online AM: 01 August 2022
    Accepted: 25 July 2022
    Revised: 22 June 2022
    Received: 06 April 2022
    Published in TRETS Volume 16, Issue 2

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. FPGA
    2. debugging
    3. checkpointing
    4. co-simulation

    Qualifiers

    • Research-article

    Funding Sources

    • NSERC/Intel Industrial Research Chair in Programmable Silicon, a Connaught Scholarship
    • Canadian Foundation for Innovation

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • 0
      Total Citations
    • 334
      Total Downloads
    • Downloads (Last 12 months)140
    • Downloads (Last 6 weeks)16
    Reflects downloads up to 19 Nov 2024

    Other Metrics

    Citations

    Cited By

    View all

    View Options

    Login options

    Full Access

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Full Text

    View this article in Full Text.

    Full Text

    HTML Format

    View this article in HTML Format.

    HTML Format

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media