ChiselTrace: Typed Behavioral Debugging in Chisel Through Signal Dependency Tracing

Conference Paper (2025)
Author(s)

J. Brand (Student TU Delft)

C. Cromjongh (TU Delft - Computer Engineering)

H. P. Hofstee (TU Delft - Computer Engineering, IBM Infrastructure)

Z. Al-Ars (TU Delft - Computer Engineering)

DOI related publication
https://doi.org/10.1109/NorCAS66540.2025.11231292 Final published version
More Info
expand_more
Publication Year
2025
Language
English
Bibliographical Note
Green Open Access added to TU Delft Institutional Repository as part of the Taverne amendment. More information about this copyright law amendment can be found at https://www.openaccess.nl. Otherwise as indicated in the copyright section: the publisher is the copyright holder of this work and the author uses the Dutch legislation to make this work public.
Publisher
IEEE
ISBN (print)
979-8-3315-1502-7
ISBN (electronic)
979-8-3315-1501-0
Event
2025 IEEE Nordic Circuits and Systems Conference (NorCAS) (2025-10-28 - 2025-10-29), Riga, Latvia
Downloads counter
63
Reuse Rights

Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.

Abstract

While modern HDLs such as Chisel (Constructing Hardware In a Scala Embedded Language) significantly improve the process of design entry, debugging these designs is often problematic, because the tools that aid debugging operate on translated code rather than the original HDL. Furthermore, engineers often resort to manual waveform debugging, undermining productivity gains promised by such a language. We present ChiselTrace, an open-source tool for Chisel that is capable of (dynamic) program slicing and automatic signal dependency tracing, allowing faults to be more easily traced back to their root cause. Where prior work focuses on data-flow analysis at the (compiled) Verilog level, ChiselTrace functions at the Chisel source level. Contributions include: modifications to the Chisel library to enable post-simulation analysis; a library capable of dynamic program slicing and dependence graph generation; and a front-end dependency graph viewer. We demonstrate debugging capabilities by tracing an injected fault in the ChiselWatt processor back to the source. We observe that using ChiselTrace's dynamic program dependence graph, the number of lines of code relevant to the fault path is reduced significantly. Project repository: https://github.com/jarlb/chiseltrace

Files

License info not available
warning

File under embargo until 17-05-2026