Semantic Analysis for Case Splitting in C/C++ to RTL Equivalence Checking

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 designs that evolve over time, due to language enhancements and new standard libraries, which hampers their usability in equivalence checking between C/C++ and RTL designs.

Innovation Solution

A computer-implemented method for generating invariants through semantic analysis, which automatically produces case splitting candidates for equivalence checking, utilizing these invariants as hints, helper assertions, or cut points to derive structural properties of programs, thereby facilitating equivalence checking between software specifications and implementation models.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If conventional formal verification techniques are used, then equivalence checking between C/C++ and RTL designs can be performed, but the ability to synthesize software specifications written using advanced language features is limited

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

Solution Approach 1:

The patent introduces an intermediary formal verification model that acts as a bridge between the C/C++ software specification and the RTL implementation model. This intermediate model enables the translation and verification of advanced language features by converting them into a formal representation that can be systematically analyzed, thereby expanding language coverage while maintaining verification reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The verification process is segmented into distinct phases: generating the formal verification model from the C/C++ specification, performing semantic analysis to extract invariants, and conducting equivalence checking against the RTL model. This segmentation allows each phase to handle specific aspects of the verification, improving the system's ability to process advanced language features systematically.

Inventive Principle:
Principle #1Segmentation

2Manufacturing precision

If manual case splitting is performed in equivalence checking, then verification coverage can be improved, but the complexity and time required for verification increases

Engineering Contradiction:
Improveverification coverageVSAvoidverification time
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

The system performs self-service by automatically generating case splitting candidates through semantic analysis of the formal verification model. The tool autonomously identifies invariants and derives case splitting strategies without requiring manual intervention, thereby maintaining high verification coverage while significantly reducing the time and effort required compared to manual case splitting.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

Case splitting candidates are generated in advance as part of the formal verification model generation process, before the actual equivalence checking begins. This preliminary action prepares the verification framework with pre-analyzed invariants and case splitting strategies, enabling more efficient execution of the equivalence checking process.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If advanced language features are used in software specifications, then design functionality and adaptability improve, but the ability to perform formal verification and equivalence checking deteriorates

Engineering Contradiction:
Improvedesign functionalityVSAvoidformal verification capability
Core Design Contradiction:
Adaptability or versatilityVSEase of manufacture

Solution Approach 1:

The formal verification model serves as an intermediary that translates advanced C/C++ language features into a formal representation suitable for verification. This intermediary layer preserves the functionality and adaptability enabled by advanced language features while making the specification amenable to systematic formal verification and equivalence checking.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system changes the parameter representation by transforming high-level language constructs into formal verification parameters through semantic analysis. This parameter transformation enables the verification tool to handle advanced language features by converting them into a standardized formal representation that can be systematically analyzed.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10983758B1System, method, and computer program product for automatically inferring case-split hints in equivalence checking of an electronic design
Publication Date: 2021.04.20 CADENCE DESIGN SYST INC
  • US10983758B1 patent drawing
  • US10983758B1 patent drawing
  • US10983758B1 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 reference model including a software specification and an implementation model at a register transfer level. Embodiments may also include generating one or more invariants based upon, at least in part, the reference model, wherein generating one or more invariants includes applying a semantic analysis. Embodiments may further include automatically generating at least one case splitting candidate based upon, at least in part, the one or more generated invariants.