Bridging the Gap: When Formal Verification Catches What Simulation Misses

In the intricate world of semiconductor design verification, the interplay between formal verification and simulation-based approaches continues to evolve. A recent case study highlights the complementary nature of these methodologies and underscores the importance of a comprehensive verification strategy.

The Scenario

During a routine IP verification using formal tools and SystemVerilog Assertions (SVA), a bug was uncovered that had previously eluded detection in subsystem-level simulation. This discovery prompted a deeper investigation into the verification process and the tools employed.

Formal Verification's Unique Strength

Formal verification's ability to exhaustively explore state spaces within specified bounds allowed it to uncover a corner case that simulation had missed. This strength stems from formal tools' capacity to:

  1. Examine all possible states and input combinations
  2. Operate without the need for specific test vectors
  3. Explore deep states that might be challenging to reach through simulation alone

Bridging Formal and Simulation

To leverage this formal verification insight in the simulation environment, the team converted the formal traces (counter-examples) into SVA cover sequences. We at AsFigo develop and deploy such apps for customers (one such example is Waves2UVM). 

This innovative approach allowed them to:

1. Create targeted checks for specific scenarios uncovered by formal verification

2. Run these sequences against existing simulation dumps to identify which tests, if any, covered the problematic scenario

Unexpected Findings

Upon analyzing 1000+ simulation dump files with the new cover sequence, an intriguing result emerged: 32 tests actually covered the scenario in question. This revelation led to a critical question: Why didn't these tests fail if they encountered the buggy scenario?



Investigating Silent Passes

Several factors could contribute to tests covering but not exposing the bug:

1. Incomplete checkers in the simulation environment

2. Assertions were turned off in these tests ($assertoff/TCL commands)

Path Forward

 To resolve this discrepancy and strengthen the verification process, the team outlined several steps:

1. Enhance simulation checkers based on formal properties

2. Perform detailed timing analysis of simulation runs

3. Isolate the scenario in focused test cases

4. Review and align constraints between formal and simulation environments

Conclusion

This case study illustrates the value of integrating formal verification and simulation approaches. By converting formal insights into simulation-compatible checks, verification teams can:

1. Identify coverage gaps in simulation test suites

2. Create more robust, targeted tests

3. Improve bug detection and reproduction capabilities

As chip designs grow more complex, such synergistic approaches become increasingly crucial. By leveraging the strengths of both formal and simulation methodologies, verification teams can build more comprehensive and efficient verification strategies, ultimately leading to higher quality semiconductor designs.

Comments

Popular posts from this blog

Opensource testbench generator for VHDL designs, OSVVM included!

Porting a complete UVC to Verilator + UVM - an anecdote!

Meet the team behind SystemVerilog Assertions Handbook