Explain your project
In my current project, I’m working on SoC-level verification of an automotive chip.
The SoC consists of multiple IP blocks — such as UART, SPI, DDR, and others — all
interconnected through a Network-on-Chip (NoC) fabric. The main master in the
system is a processor core, which is responsible for driving most of the
transactions and configurations."
"C-based testcases are used to program the processor, which in turn initiates
transactions to configure and control the slave blocks. On the verification side,
we use SystemVerilog UVM to build high-end checkers, monitors, and coverage
mechanisms to validate data integrity and protocol compliance at the interconnect
and IP interfaces."
"The core objective of the project is to verify the connectivity and integration
correctness between all these IPs at the SoC level. This includes checking the
routing paths, address decoding, access control, and proper functional interaction
among blocks via the NoC.
what is the debug flow?
When I debug testcases in my project, I follow a systematic approach that begins
with parsing the simulation logs. I first review the logs to analyze any errors,
warnings, or protocol violations — this often provides initial insights into the
failure. If the logs contain enough information to identify the root cause (such as
assertion failures, scoreboard mismatches, or timeout messages), I address the
issue directly based on the log trace."
"If the bug is more complex or not clearly explained by the logs, I move to
waveform analysis using Verdi. I use Verdi’s GUI and backtrace features to trace
the affected signal through the design hierarchy — starting from the output and
working backward toward the driver or control logic. This helps me determine
whether the issue lies within the testbench or the DUT."
"If it’s a testbench issue — like incorrect stimulus, timing mismatch, or a
coverage gap — I update the sequence, monitor, or scoreboard logic accordingly. But
if it’s traced back to the RTL (e.g., incorrect signal control, protocol
violation), I prepare a debug note with waveform snapshots and signal annotations,
and escalate it to the RTL team with a clear description of the failing scenario
and conditions
what are the testcases I debugged?