Formal Verification Model Generation via Intermediate Representation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional formal verification methods are limited in synthesizing software specifications written using advanced language features, leading to reduced usability in evolving designs, and the generated verification models are tightly integrated with implementation models, making standalone verification impossible.

Innovation Solution

A computer-implemented method that generates a formal verification model by receiving a specification model, creating an intermediate representation, applying semantic preserving program transformations, and synthesizing a semantically transformed model using machine-generated transformations and symbolic execution, allowing for equivalence checking and assertion-based verification.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If conventional formal verification methods are used to synthesize software specifications, then verification can be performed, but language coverage is limited and usability is reduced in evolving designs

Engineering Contradiction:
Improvelanguage coverageVSAvoidverification model complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediate representation (IR) as a mediator between the software specification and the formal verification model. This IR serves as a language-agnostic intermediate form that decouples the verification process from specific programming language features, thereby improving language coverage without proportionally increasing verification model complexity. The IR acts as a buffer that translates diverse language constructs into a unified formal representation.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If the verification model is tightly integrated with the implementation model for equivalence checking, then equivalence checking can be performed, but standalone verification becomes impossible

Engineering Contradiction:
Improveverification accuracyVSAvoidverification flexibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent segments the verification process into distinct components: the software specification, the intermediate representation, and the formal verification model. This segmentation allows the formal verification model to be generated independently from the implementation model, enabling standalone verification while maintaining verification accuracy. The intermediate representation serves as a bridge that preserves the necessary information for both equivalence checking and independent formal verification.

Inventive Principle:
Principle #1Segmentation

3Adaptability or versatility

If advanced language features are used in software specifications, then design functionality is enhanced, but synthesis capability is reduced

Engineering Contradiction:
Improvedesign capabilityVSAvoidsynthesis ease
Core Design Contradiction:
Adaptability or versatilityVSEase of manufacture

Solution Approach 1:

The intermediate representation serves as a mediator that translates advanced language features into a simplified, synthesis-friendly form. By introducing this intermediate layer, the system can accept software specifications with sophisticated language constructs while automatically transforming them into a representation that is easier to synthesize into formal verification models, thus resolving the contradiction between design capability and synthesis ease.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10789404B1System, method, and computer program product for generating a formal verification model
Publication Date: 2020.09.29 CADENCE DESIGN SYST INC
  • US10789404B1 patent drawing
  • US10789404B1 patent drawing
  • US10789404B1 patent drawing

AI summary

The present disclosure relates to a method for use in a formal verification of an electronic design. Embodiments may include receiving, using a processor, a specification model associated with an electronic design and generating, using a parser, an intermediate representation based upon, at least in part, the specification model. Embodiments may also include applying a machine generated semantic preserving program transformation to the intermediate representation to create a semantically transformed specification model and synthesizing the semantically transformed specification model to generate a formal verification model.