Structural Overapproximation Coupled with SAT Solver for Verification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current verification techniques for processor and ASIC designs are resource-intensive, with formal verification requiring exponential computational resources and semi-formal methods offering incomplete coverage as design size increases, lacking effective methods to tightly couple structural overapproximation algorithms with structural satisfiability solvers.

Innovation Solution

A method that involves creating an initial design netlist abstraction, unfolding it by a selectable depth, verifying a composite target using a satisfiability solver, examining counterexamples to identify refinement pairs, and building a new abstraction with learned clauses and invariants, enabling synergistic coupling of overapproximation and satisfiability algorithms to reduce design size and resource consumption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If formal verification techniques are used to verify processor and ASIC designs, then verification completeness and reliability are improved, but computational resource consumption increases exponentially

Engineering Contradiction:
Improveverification completenessVSAvoidcomputational resource consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The verification process is segmented into multiple iterative phases: initial overapproximation verification, counterexample analysis, refinement pair identification, and incremental refinement. Each phase processes a portion of the design or a specific aspect, breaking down the exponentially complex problem into manageable polynomial-scale subproblems that are solved iteratively

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The verification system dynamically adapts its approach by switching between overapproximation mode (for quick rejection of incorrect designs) and refinement mode (for detailed verification). The complexity of verification grows polynomially with design size through dynamic refinement rather than statically requiring exponential resources from the outset

Inventive Principle:
Principle #15Dynamics

2Use of energy by moving object

If semi-formal verification techniques are applied to reduce resource consumption, then computational efficiency is improved, but verification coverage decreases as design size increases

Engineering Contradiction:
Improvecomputational efficiencyVSAvoidverification coverage
Core Design Contradiction:
Use of energy by moving objectVSReliability

Solution Approach 1:

The system employs feedback loops where counterexamples from overapproximation verification are analyzed to identify refinement pairs, which are then used to incrementally refine the abstraction. This feedback mechanism ensures that verification coverage improves with each iteration while maintaining polynomial computational efficiency, preventing coverage degradation as design size increases

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

Overapproximation verification is performed preliminarily before detailed verification. This preliminary action quickly identifies obvious design errors and eliminates unnecessary refinement work, allowing the system to maintain high verification coverage for critical paths while keeping overall computational efficiency polynomial rather than exponential

Inventive Principle:
Principle #10Preliminary action

3Productivity

If overapproximation is used to reduce design size for verification, then verification speed is improved, but verification accuracy decreases due to loss of design details

Engineering Contradiction:
Improveverification speedVSAvoidverification accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The level of abstraction dynamically adjusts through iterative refinement. Initial overapproximation provides coarse-grained verification speed, while subsequent refinements incrementally restore design details only where counterexamples indicate potential errors. This dynamic adjustment maintains verification speed while improving accuracy only where necessary

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

Refinement is applied locally to specific regions of the design identified by counterexamples rather than uniformly across the entire design. Refinement pairs target specific state variables and transitions that require higher precision, maintaining verification speed for the majority of the design while improving local accuracy where needed

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS7356792B2Method and system for enhanced verification by closely coupling a structural overapproximation algorithm and a structural satisfiability solver
Publication Date: 2008.04.08 GLOBALFOUNDRIES US INC
  • US7356792B2 patent drawing
  • US7356792B2 patent drawing
  • US7356792B2 patent drawing

AI summary

A method, system and computer program product for performing verification are disclosed. A first abstraction of an initial design netlist containing a first target is created and designated as a current abstraction, and the current abstraction is unfolded by a selectable depth. A composite target is verified using a satisfiability solver, and in response to determining that the verifying step has hit the composite target, a counterexample to is examined to identify one or more reasons for the first target to be asserted. One or more refinement pairs are built by examining the counterexample, and a second abstraction is built by composing the refinement pairs. One or more learned clauses and one or more invariants to the second abstraction and the second abstraction is chosen as the current abstraction. The current abstraction is verified with the satisfiability solver.