C-Trace: An Open-Source RISC-V Trace Encoder and its Ecosystem
2026-06-10 , Poster Island B

Embedded tracing is essential for validating reliability, optimizing performance, and debugging complex embedded software. Despite rapid innovation in the RISC-V ecosystem, open and interoperable trace solutions have remained limited. C-Trace, developed in the context of the European TRISTAN project , addresses this gap with an open-source trace encoder and an extensible ecosystem approach. C-Trace introduces a modular trace-encoder architecture designed for efficient, continuous “live” observation. Beyond standard program-flow tracing, it supports hardware-assisted instrumentation that can automatically emit trace messages on access to selected control/status registers (CSRs) or on configurable watchpoints. This enables trace streams that carry richer runtime context (e.g., program counter, timestamps, direct data, and selected performance counters) and can support application use cases such as worst-case execution time (WCET) estimation, timing optimization, test-case prioritization, and integration-level coverage measurement. In addition to off-chip export, C-Trace can forward trace-triggered events internally to an on-chip CPU, enabling watchdog, runtime verification, or control-flow integrity (CFI) checking functionality. Finally, C-Trace is provided under a dual-licensing model (CERN-OHL-S and a non-copyleft commercial option) to balance open collaboration with industrial IP needs.

Simon Wegener completed his Master’s degree in computer science at the University of Saarland. He joined AbsInt in 2011, specializing in static analysis of binary code. Since then, he has contributed to a multitude of German and European research projects and authored or co-authored a number of peer-reviewed publications on timing analysis for safety-critical embedded systems. As part of TRISTAN, and together with five project partners, he worked on a tracing ecosystem for RISC-V.