Natural Language Assertion Processor for IC Verification
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The complexity of integrated circuit designs outpaces verification process improvements due to the disparity between hardware description languages and verification languages, making it difficult for users to read and understand assertions, which hinders the effective use and interpretation of assertions during verification.
Innovation Solution
A method that translates natural language assertions into verification language assertions using a natural language parser and synthesis techniques, and then translates these back into interpreted natural language assertions, allowing for user review and verification, with optional caching for efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If verification languages use formal assertions to increase controllability and observability, then verification capability is improved, but readability and user acceptance deteriorate
Solution Approach 1:
The patent introduces an intermediary translation layer that converts formal verification language assertions into natural language equivalents. This mediator enables users to read and understand verification assertions in their native language while maintaining the formal verification capabilities, thus resolving the contradiction between verification capability and readability
Solution Approach 2:
The system changes the linguistic parameters of assertions by translating them from formal verification language to natural language. This parameter transformation maintains the logical meaning and verification functionality while improving accessibility and readability for users who are not experts in formal verification languages
2Adaptability or versatility
If assertions are written in designer-specific language, then assertion functionality is improved, but understandability by other users deteriorates
Solution Approach 1:
The patent creates a copy of the assertion in natural language that preserves the original functionality and meaning. This copy allows other users to understand and interpret the assertion without requiring knowledge of the designer-specific formal language, thus maintaining functionality while improving understandability
Solution Approach 2:
The translation system acts as an intermediary that bridges the gap between designer-specific assertion language and user-friendly natural language. This mediator ensures that the original assertion functionality is preserved while making the information accessible to users who do not speak the formal verification language
3Ease of operation
If natural language assertions are translated into verification language, then user review capability is improved, but processing complexity increases
Solution Approach 1:
The patent replaces manual translation processes with an automated computational system. This substitution of mechanical manual work with algorithmic processing reduces the operational complexity for users while introducing computational complexity in the background, thus improving user review capability without significantly increasing user-facing complexity
Solution Approach 2:
The system performs self-service translation where the verification language assertions are automatically converted to natural language without requiring user intervention in the translation process. This automation handles the processing complexity internally while presenting a simple user interface for review
Data Source
AI summary
A method of processing natural language assertions (NLAs) can include identifying an NLA and then translating that NLA into a verification language assertion (VLA) using a natural language parser (NLP) and synthesis techniques. This VLA can be translated into an interpreted NLA (NLA*) using a VLA parser and pattern matching techniques. At this point, the process can allow user review of the NLA* and the NLA. When the user determines that the NLA* and the NLA are the same or have insignificant difference, then verification can be performed using the VLA. The results of the verification can then be back annotated on the NLA. In one fully-automatic embodiment, in addition to comparing the NLA and the NLA*, the VLA and a VLA* (generated from the NLA*) can be compared, thereby providing yet another test of accuracy for the user during verification.


