Formal Verification Equivalence Checking C++ to RTL

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional formal verification techniques are limited in synthesizing software specifications written using advanced language features, particularly in C++ or SystemC, which reduces their usability in evolving designs, and struggle with C/C++ versus register transfer level (RTL) sequential equivalence checking due to challenges in stimulating inputs and comparing outputs effectively.

Innovation Solution

A computer-implemented method that uses case split hints derived from abstract interpretation techniques to decompose the design state space into smaller partitions, performing abstraction operations to eliminate irrelevant design elements and model checking to determine accuracy, combining over-approximation and under-approximation techniques for automatic partitioning and refinement of abstract models.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If conventional formal verification techniques are used to check equivalence between C/C++ software specifications and RTL implementation models, then the verification process can be performed, but the techniques are limited in synthesizing software specifications with advanced language features and struggle with stimulating inputs and comparing outputs effectively

Engineering Contradiction:
Improvelanguage coverageVSAvoidequivalence checking accuracy
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent applies segmentation by dividing the design state space into smaller partitions using case split hints. This decomposition allows the verification system to handle complex C/C++ specifications with advanced language features by breaking them into manageable segments, thereby improving both language coverage and verification reliability without being overwhelmed by the complexity of the entire design space

Inventive Principle:
Principle #1Segmentation

2Productivity

If the design state space is decomposed into smaller partitions using case split hints, then the equivalence checking becomes more manageable, but the complexity of generating and processing case split hints increases

Engineering Contradiction:
Improveverification speedVSAvoidproof decomposition complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements self-service by using abstract interpretation techniques to automatically generate case split hints from the software specification itself. The system extracts relevant information and partitioning strategies directly from the C/C++ code without requiring external guidance or manual intervention, thereby improving verification productivity while managing the complexity of proof decomposition through automated analysis

Inventive Principle:
Principle #25Self-service

3Productivity

If abstraction operations are performed to eliminate irrelevant design elements, then the model checking becomes more efficient, but the accuracy of the abstract model may be reduced

Engineering Contradiction:
Improvemodel checking efficiencyVSAvoidmodel accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The patent applies local quality by performing selective abstraction operations that eliminate only the specific design elements irrelevant to the particular property being verified. Rather than applying uniform abstraction across the entire model, the system tailors the abstraction to each verification context, maintaining high model accuracy where needed while improving efficiency by removing only necessary irrelevant details

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10984161B1System, method, and computer program product for sequential equivalence checking in formal verification
Publication Date: 2021.04.20 CADENCE DESIGN SYST INC
  • US10984161B1 patent drawing
  • US10984161B1 patent drawing
  • US10984161B1 patent drawing

AI summary

The present disclosure relates to a computer-implemented method for use in a formal verification of an electronic design. Embodiments may include receiving a reference model including a software specification, an implementation model at a register transfer level, and a property that analyzes equivalence between the reference model and the implementation model. The method may further include generating one or more case split hints based upon the reference model, that may be used to decompose the design state space into smaller partitions and performing an abstraction operation on a portion of design logic associated with one or more partitions in order to eliminate design elements that are irrelevant to a particular property. Embodiments may also include performing model checking on the abstract models to determine their accuracy.