10.1145/3489517.3530603acmconferencesArticle/Chapter ViewAbstractPublication PagesdacConference Proceedingsconference-collections
research-article

Bringing source-level debugging frameworks to hardware generators

Published:23 August 2022Publication History

ABSTRACT

High-level hardware generators have significantly increased the productivity of design engineers. They use software engineering constructs to reduce the repetition required to express complex designs and enable more composability. However, these benefits are undermined by a lack of debugging infrastructure, requiring hardware designers to debug generated, usually incomprehensible, RTL code. This paper describes a framework that connects modern software source-level debugging frameworks to RTL created from hardware generators. Our working prototype offers an Integrated Development Environment (IDE) experience for generators such as RocketChip (Chisel), allowing designers to set breakpoints in complex source code, relate RTL simulation state back to source-level variables, and do forward and backward debugging, with almost no simulation overhead (less than 5%).

References

  1. Scott Beamer and David Donofrio. 2020. Efficiently exploiting low activity factors to accelerate RTL simulation. In DAC. ACM/IEEE, USA, 1--6.Google ScholarGoogle Scholar
  2. The DWARF committee. 2017. The DWARF Debugging Standard.Google ScholarGoogle Scholar
  3. Barry K Rosen, Mark N Wegman, and F Kenneth Zadeck. 1988. Global value numbers and redundant computations. In Proceedings of the 15th SIGPLAN-SIGACT symposium on Principles of programming languages. ACM, USA, 12--27.Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Synopsys. 2021. Verdi.Google ScholarGoogle Scholar
  5. S. Jiang el.al. 2018. Mamba: closing the performance gap in productive hardware development frameworks. In DAC. ACM/IEEE, USA, 1--6.Google ScholarGoogle Scholar
  6. A. Izraelevitz et al. 2017. Reusability is FIRRTL ground: Hardware construction languages, compiler frameworks, and transformations. In ICCAD. IEEE, USA, 209--216.Google ScholarGoogle Scholar
  7. David R Ditzel et al. 1980. Retrospective on high-level language computer architecture. In ISCA. ACM, USA, 97--104.Google ScholarGoogle Scholar
  8. J. Bachrach et al. 2012. Chisel: Constructing hardware in a Scala embedded language. In DAC. ACM/IEEE, USA, 1212--1221.Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Ofer Shacham et al. 2010. Rethinking digital design: Why design must change. IEEE micro 30, 6 (2010), 9--24.Google ScholarGoogle Scholar
  10. Young-Nam Yun et al. 2011. Beyond UVM for practical SoC verification. In International SoC Design Conference. IEEE, USA, 158--162.Google ScholarGoogle Scholar
  11. N. Calagar et.al. 2014. Source-level debugging for FPGA high-level synthesis. In FPL. IEEE, USA, 1--8.Google ScholarGoogle Scholar
  12. Leonard Truong and Pat Hanrahan. 2021. Magma circuits. https://github.com/phanrahan/magmaGoogle ScholarGoogle Scholar

Index Terms

  1. Bringing source-level debugging frameworks to hardware generators

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      DAC '22: Proceedings of the 59th ACM/IEEE Design Automation Conference
      July 2022
      1462 pages
      ISBN:9781450391429
      DOI:10.1145/3489517

      Copyright © 2022 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 23 August 2022

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      Overall Acceptance Rate 1,770 of 5,499 submissions, 32%

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!