Formal Verification versus Simulation

Is simulation still a viable option for functional verification?

Formal verification vs simulation is an important topic in modern digital design, ensuring that hardware systems behave as expected before they reach production. As designs grow in complexity, verification strategies must evolve to keep up with increasing requirements for reliability and efficiency.

Among the available techniques, simulation has long been the industry standard. However, with rising design complexity, it is worth re evaluating whether simulation alone is still sufficient.

formal verification vs simulation bug fixing cost comparison
Figure 1: Bug Fixing Cost vs. Development Phase

Formal Verification vs Simulation in Functional Verification

Simulation is a popular verification technique to identify bugs in hardware, because it scales even for very large and complex designs. However, checking the design behaviour for every possible input sequence is infeasible even for relatively small designs. 

Formal Verification vs Simulation Coverage Challenges

This shortcomming cannot be repaired by using coverage metrics that tell which parts of the design were active during a simulation run, because even a simulation suite with a 100% coverage may, actually, cover only a fraction of the design’s full behaviour.

Formal Verification vs Simulation Approaches

A possible solution for these issues is the integration of formal techniques into existing verification processes.
By design, formal techniques cover the complete design behaviour, but suffer from scalability issues.

To overcome the limitations of simulation, engineers are increasingly exploring complementary approaches. This has led to the adoption of hybrid verification methodologies that combine the strengths of different techniques. According to Siemens EDA, combining simulation and formal methods improves verification efficiency and bug detection.

A Modern Verification Flow

In a modernised verification flow,
1️⃣ Simulation Phase :  Simulation would be used to find those bugs that are easy and quick to detect

2️⃣ Formal Verification Phase : Then formal methods are employed to find all corner case bugs in critical design components

Your Thoughts?

What are your thoughts on that? We think, knowing about formal verification is essential for hardware engineers and developers who want to create reliable, secure, and compliant designs in an efficient way.

Why This Matters

Simulation remains a powerful and essential tool in functional verification, especially for handling large and complex designs. However, its inherent limitations make it insufficient when used in isolation.

By integrating formal verification techniques into the verification flow, engineers can significantly improve bug detection, especially for corner cases that are difficult to identify through simulation alone.

A combined approach not only enhances design reliability but also reduces the risk of costly errors later in the development cycle. As a result, understanding both simulation and formal verification is becoming increasingly important for modern hardware engineers.

Training Topics

  1. Abstraction vectors (time, functionality)
  2. AIP for protocols
  3. AIP orchestration
  4. BMC & IPG, invariants
  5. Codestyle
  6. Completeness
  7. Liveness property, safety property
  8. Non-determinism (abstraction technique)
  9. Response generation (abstraction technique)
  10. Scoreboard (abstraction technique)
  11. Signal cutting, blackboxing
  12. State space explosion and mitigation techniques
  13. SVA fundamentals
  14. Whitebox checking, blackbox checking, greybox checking
  15. Witness, vacuity, reachability

Become a leader in formal verification