Formal Circuit Liveness Checking With Loop-Length Counterexamples
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Verifying liveness properties in complex semiconductor circuits using formal verification is inefficient and prone to errors due to the time-consuming and resource-intensive process of finding counter-examples, which often requires manual effort and is tedious.
Innovation Solution
Implementing a method and system that sets a loop length for formal verification to efficiently find bugs by using a verification algorithm that executes for different loop lengths, allowing for parallel processing through multiple threads and displaying results in tabs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If formal verification is used to verify liveness properties of complex circuits, then verification accuracy is improved, but verification time and computational resources increase significantly
Solution Approach 1:
The patent segments the verification process by dividing the state space exploration into different loop length iterations. Instead of attempting to verify all possible loop lengths simultaneously, the system divides the verification into discrete iterations where each iteration checks for counter-examples with a specific loop length, progressively increasing the length in subsequent iterations. This segmentation makes the otherwise intractable problem manageable and enables parallel processing of different loop length ranges.
Solution Approach 2:
The patent applies preliminary action by first checking for counter-examples with smaller loop lengths before proceeding to larger loop lengths. The system performs preliminary verification with constrained loop length ranges, and only when no counter-examples are found does it proceed to expand the search to larger loop lengths. This preliminary checking approach allows the system to quickly identify obvious bugs while preparing for more comprehensive verification if needed.
2Measurement precision
If manual effort is used to find counter-examples in liveness property verification, then verification precision is maintained, but productivity decreases
Solution Approach 1:
The patent implements self-service by enabling the formal verification system to automatically explore the state space and find counter-examples without requiring manual intervention. The system autonomously performs loop length iteration, state space exploration, and counter-example identification. The automated process maintains verification precision by systematically checking liveness properties while significantly improving productivity through computer-based exhaustive search capabilities.
Solution Approach 2:
The patent applies parameter changes by dynamically adjusting the loop length parameter during verification. The system changes the loop length parameter across different iterations, starting from smaller values and progressively increasing to larger values. This parameter variation enables the system to efficiently search the state space while maintaining the ability to find counter-examples of different complexities, thereby balancing precision and productivity.
3Reliability
If exhaustive search is performed to find counter-examples, then bug detection completeness is improved, but computational resources are consumed excessively
Solution Approach 1:
The patent applies dynamics by making the loop length parameter dynamic rather than fixed. The system adaptively adjusts the loop length across different iterations, starting with smaller lengths and progressively increasing to larger lengths. This dynamic approach allows the verification process to balance completeness and resource consumption by exploring the state space in a structured, progressive manner rather than attempting exhaustive search at maximum depth from the outset.
Solution Approach 2:
The patent implements periodic action through iterative verification cycles with different loop length ranges. The system performs verification in periodic iterations, where each iteration focuses on a specific loop length range. This periodic structure allows the system to systematically cover the entire state space while consuming computational resources in manageable increments, improving bug detection completeness without overwhelming resource requirements.
4Difficulty of detecting and measuring
If loop length is increased to find more complex bugs, then bug detection capability is improved, but verification time increases
Solution Approach 1:
The patent segments the bug detection process by dividing it into iterations focused on different loop length ranges. Each iteration is specialized for detecting bugs with specific loop length characteristics. This segmentation allows the system to methodically increase detection capability for more complex bugs while managing verification time by processing different loop length ranges in separate, manageable iterations rather than attempting to detect all bug types simultaneously.
Data Source
AI summary
Systems and methods of debugging a design under test (DUT) using formal verification are disclosed. In one aspect, a method includes receiving the DUT from a user and a command to find a counter-example of a liveness property of the DUT and a verification trace including a sequence of states structures as a stem followed by a loop. The method further includes receiving a length of the loop from the user and executing a verification algorithm based on the length of the loop. The method further includes determining that the counter-example is found when the execution of the verification algorithm ends after traversing the stem and the loop.


