Debugging large test cases and customer-reported issues faster

Debugging large test cases and customer-reported issues faster

Debugging large test cases in SystemVerilog


Undo helps me to quickly identify root causes of defects in our SystemVerilog and VHDL  parsers / elaborators, either found in-house during development or brought to our attention through customer reports.

Debashis De, Senior Member Technical Staff, Verific Design Automation


I work on Verific Design Automation’s parsers and elaborators for VHDL and SystemVerilog. These building blocks are widely-used by R&D engineers creating verification and implementation tools for HDL languages at EDA, FPGA, and semiconductor companies like Siemens EDA, Cadence, Synopsys, IBM, Infineon, AMD, Real Intent, Ausdia, NVIDIA, NXP Semiconductor, Xilinx, Renesas, Ansys, Qualcomm, and the list goes on.

In this industry, time-to-resolution is critical, so customer-reported issues take priority. The pressure is on. Most of the time, customers need a fix within days.

I used to use GDB to debug these issues, but it was painful and time-consuming. I’d have to re-run the scenario with conditional breakpoints and re-run multiple times to get to the interesting point which needs investigating and wait for about 1 hour each time.

Sometimes I have to deal with memory corruption issues and these are non-trivial to debug. In fact, just recently, I had a corruption where a stale pointer was used. I was getting incorrect results and I needed to understand why.

So I got the test case, and instead of using GDB, I use Undo to run the test case and navigate back and forth in the execution history to find out where the object was deleted / modified – all in one debug cycle.

With GDB, I would have had to re-run the large test case again and again and the test takes about 1 hour to run every time; so, you can imagine how many hours (or days!) it would have taken me to get close to the root cause of the issue. With Undo, I can just step back in the execution history until I get to the source of the problem. This workflow saves me significant time when I have to deal with complex scenarios like these.


Learn more about Undo

Stay informed. Get the latest in your inbox.