Formal Bug Hunting via Simulation-Guided Trace Generation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Formal verification in electronic circuit design is inefficient due to its exhaustive nature, which makes it unscalable for large designs, and often neglects complex paths, requiring manual intervention and uncontrolled trace generation.

Innovation Solution

A computer-implemented method for formal deep bug hunting that involves obtaining a start state for the device under test (DUT), selecting a subset of variables, generating a sequence of random values using a random number generator (RNG), and performing formal verification exploration, with features like dedicated seeds for RNGs and user-defined distribution decisions to control probability assignment.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If formal verification exhaustively checks all possible scenarios, then verification completeness is improved, but computational complexity and time required increase significantly

Engineering Contradiction:
Improveverification completenessVSAvoidcomputational complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the formal verification process into two distinct phases: (1) a simulation phase that generates representative traces using randomization and biasing techniques, and (2) a formal verification phase that uses these traces as starting points for targeted exploration. This segmentation allows the system to avoid exhaustively checking all possible scenarios while maintaining verification effectiveness by focusing on the most relevant state spaces identified during simulation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies preliminary action by conducting simulation-based trace generation before formal verification. The simulation phase pre-explores the state space, generates representative traces, and identifies promising starting points. These preliminary results then guide the formal verification phase, which builds upon the simulation's insights rather than starting from scratch, thereby reducing the overall computational burden while maintaining thoroughness.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If formal verification uses exhaustive search, then verification thoroughness is improved, but scalability to large designs deteriorates

Engineering Contradiction:
Improveverification thoroughnessVSAvoidscalability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent introduces dynamics by making the verification approach adaptive rather than static. The system dynamically adjusts its behavior based on simulation results: it uses randomization and biasing during simulation to explore diverse state spaces, then leverages the generated traces to dynamically guide formal verification toward the most critical regions. This dynamic adaptation enables scalability to large designs by focusing computational resources on the most relevant areas identified through simulation.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent introduces simulation-generated traces as an intermediary between random simulation and formal verification. These traces serve as a bridge that captures essential behavioral patterns from simulation while providing structured starting points for formal verification. This intermediary mechanism enables the system to scale to large designs by translating the exploratory power of simulation into the rigor of formal verification without requiring exhaustive search.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of operation

If formal verification generates traces manually, then trace control and relevance are improved, but time consumption and labor requirements increase

Engineering Contradiction:
Improvetrace controlVSAvoidtime consumption
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The patent applies self-service by enabling the verification system to automatically generate and select its own traces without manual intervention. The simulation phase automatically generates traces using randomization and biasing, and the formal verification phase automatically uses these traces as starting points. This automation eliminates the need for manual trace crafting while maintaining high trace relevance through the systematic use of simulation-guided exploration.

Inventive Principle:
Principle #25Self-service

4Measurement precision

If simulation uses random value generation with biasing, then scenario representativeness is improved, but control over generated values decreases

Engineering Contradiction:
Improvescenario representativenessVSAvoidcontrol over values
Core Design Contradiction:
Measurement precisionVSEase of operation

Solution Approach 1:

The patent introduces feedback by using the results of simulation (trace generation with biasing) to guide and constrain subsequent formal verification. The simulation phase generates representative traces using controlled randomization, and these traces then serve as feedback that shapes the formal verification exploration. This feedback mechanism allows the system to maintain scenario representativeness while regaining control through the structured use of simulation results to guide formal verification toward specific state spaces.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11080448B1Method and system for formal bug hunting
Publication Date: 2021.08.03 CADENCE DESIGN SYST INC
  • US11080448B1 patent drawing
  • US11080448B1 patent drawing
  • US11080448B1 patent drawing

AI summary

A method for formal deep bug hunting in a device under test (DUT) may include obtaining a selection of a start state for the DUT; obtaining a selection of one or a plurality of variables that are declared as random variables; for each of said one or a plurality of random variables, generating a sequence of random values in a generation order using a random number generator (RNG); and performing formal verification exploration of the DUT starting at the start state and consecutively assigning each of said one or a plurality of random variables a value from the sequence of values in the generation order.