
Automated debugging finds the root cause of unexpected behavior. It is becoming a major use case for agentic systems in design automation.
Debugging is still the most expensive part of verification. Verification is also the most expensive step in modern chip and system design.
Teams used to focus mainly on RTL bugs. Now, many root causes are in the software test infrastructure. This includes virtual/HLS models, reference models, and the end-to-end test stack (tests on firmware and sometimes an OS).
So how can engineers—or AI agents—localize bugs across these different domains?
Agentic Debugging on the Test Stack
Agentic RTL debugging is fairly mature in hardware/software verification workflows. Software-side agentic debugging is not.
The main challenge is exploration without constant human guidance. RTL simulators make this easier because they record detailed state history. Standard software debugging often does not record enough history, and it relies on interactive tools like gdb.
Gdb is powerful, but it is not designed for agent-driven discovery. Its command set is too low-level for planning. It also pushes debugging forward in time, while agentic debugging often needs to work backward from a failure.
Static code analysis alone is usually not enough. Agents also need recorded runtime context.
Undo for Agentic Software Debug
Undo provides recording-backed debugging for software. It is widely used in networking and other application teams. It is also used in EDA, HLS, and virtual modeling.
Because Undo records execution, it can step backward. That helps with non-deterministic bugs like data races.
Undo also exposes this capability through an MCP server. An agent can combine the recording with static code understanding to trace backward and propose root causes.
A joint Undo/Anthropic demo at C++Con showed this in practice. The system traced a Python interpreter crash and even surfaced surprising non-bug behavior. Even with humans in the loop, it was much faster than standard workflows.
Integrating with RTL Debug
A single unified hardware+software debug flow would be ideal, but it is still uncommon.
A practical approach is divide-and-conquer. When a failure shows up in testing, run Undo-based agentic software debug on the software stack. Do this alongside a virtual reference model of the hardware. This works well for debugging reference models, HLS models, and test software early in the cycle.
Later, if RTL debugging points to the HW/SW interface, replay the same scenario in the software model. Then trace backward to find possible software causes.
Cross-domain agentic bug localization can significantly improve team efficiency.
Undo will exhibit at DAC 2026. You can see their full plan or visit booth 858.
发表回复
要发表评论,您必须先登录。