Interactive Formal Verification Debugging Interface

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The complexity of integrated circuit designs has increased, making verification and debugging processes inefficient, with traditional formal verification tools lacking interactivity, which limits designer insight and effectiveness in identifying design flaws.

Innovation Solution

A computer-implemented method and system that displays cover traces or assertion counter-examples at a graphical user interface, allowing users to analyze them during debugging sessions, identifies dead-end states, and converts constraints to soft constraints to facilitate trace identification and display of unsatisfied constraints.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If formal verification tools are used to exhaustively analyze all possible input sequences, then verification completeness and reliability are improved, but the complexity of the verification process and time consumption increase significantly

Engineering Contradiction:
Improveverification completenessVSAvoidverification process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces an interactive debugging interface as an intermediary between the formal verification engine and the user. This interface allows users to manually examine counterexamples, set constraints, and guide the verification process, thereby managing the complexity of exhaustive analysis without sacrificing verification completeness. The interface acts as a mediator that translates complex verification results into actionable debugging information.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The verification system transitions from a static batch-mode operation to a dynamic interactive process. Users can dynamically adjust constraints, re-run verification with modified parameters, and iteratively debug design flaws. This dynamic approach allows the verification process to adapt to user insights and progressively narrow down issues without requiring complete re-verification of all input sequences.

Inventive Principle:
Principle #15Dynamics

2Reliability

If traditional batch-mode formal verification is used to ensure exhaustive analysis, then verification thoroughness is improved, but user interactivity and debugging efficiency deteriorate

Engineering Contradiction:
Improveverification thoroughnessVSAvoiduser interactivity
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent implements a feedback mechanism where the formal verification engine provides counterexamples to the user through an interactive interface, and user actions (such as setting constraints or modifying design assumptions) feed back into subsequent verification runs. This closed-loop feedback system maintains verification thoroughness while enabling users to actively engage with and debug issues based on the feedback received from each verification cycle.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system enables users to self-service the debugging process by allowing them to directly examine counterexamples, interpret verification results, and apply their own insights to guide further analysis. Rather than relying entirely on automated batch processing, users can independently investigate design flaws using the interactive interface, reducing the need for repeated automated runs while maintaining verification quality.

Inventive Principle:
Principle #25Self-service

3Device complexity

If users manually analyze verification results without interactive tools, then tool complexity is reduced, but debugging time and designer insight effectiveness increase

Engineering Contradiction:
Improvetool simplicityVSAvoiddebugging time
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The patent segments the debugging process into distinct interactive steps: viewing counterexamples, setting constraints, re-running verification, and analyzing results. This segmentation allows users to focus on specific aspects of the design flaw at each step rather than attempting to analyze all verification data simultaneously. The segmented approach reduces the perceived complexity of the tool while systematically reducing debugging time through structured interaction.

Inventive Principle:
Principle #1Segmentation

4Extent of automation

If exhaustive formal verification is performed without user intervention, then automated analysis capability is improved, but designer insight and debugging effectiveness worsen

Engineering Contradiction:
Improveautomated analysis capabilityVSAvoiddesigner insight effectiveness
Core Design Contradiction:
Extent of automationVSReliability

Solution Approach 1:

The patent applies partial automation by allowing the formal verification engine to automatically analyze design properties and generate counterexamples, while reserving the decision-making and insight-application steps for the designer. Rather than fully automating the debugging process, the system performs sufficient automated analysis to provide actionable information, then relies on partial human intervention to apply designer insights and complete the debugging process effectively.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10783304B1System, method, and computer program product for displaying debugging during a formal verification
Publication Date: 2020.09.22 CADENCE DESIGN SYST INC
  • US10783304B1 patent drawing
  • US10783304B1 patent drawing
  • US10783304B1 patent drawing

AI summary

The present disclosure relates to a method for electronic design. Embodiments may include displaying, at a graphical user interface, at least a portion of a cover trace or an assertion counter-example associated with an electronic design. Embodiments may also include allowing, at the graphical user interface, a user to analyze the cover trace or the assertion counter-example during a debugging session. Embodiments may further include identifying a dead-end state during the analysis and converting one or more constraints used in the debugging session to soft constraints. Embodiments may further include identifying at least one trace, based upon, at least in part, the soft constraints and displaying at least one unsatisfied constraint associated with the identified trace at the graphical user interface.