Electronic Design Verification Using Stall Prevention Graph Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern electronic circuit designs, such as SoC devices, face challenges in verifying whether subsystems operate as intended and detecting system-level deadlocks, which are often difficult to identify and resolve due to complex interactions and layering of interconnects and intellectual property blocks, requiring improved verification techniques.

Innovation Solution

A method for detecting system-level deadlocks using stall prevention requirements in electronic circuit models, involving identifying blocks, determining dependencies, constructing graphs, and performing loop analyses to identify potential deadlocks, while also eliminating false deadlocks to improve verification efficiency and effectiveness.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional verification methods are used to verify subsystems and detect deadlocks in complex electronic circuit designs, then verification coverage can be achieved, but verification time and computational resources increase significantly

Engineering Contradiction:
Improveverification accuracyVSAvoidverification time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the verification process into two distinct phases: (1) constructing a static dependency graph that captures all potential deadlock scenarios without execution, and (2) performing loop analysis on the graph to detect actual deadlocks. This segmentation allows the system to pre-compute dependencies once and reuse them across multiple verification scenarios, dramatically reducing verification time while maintaining comprehensive coverage of complex SoC designs with multiple interconnects and IP blocks.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary action by constructing the dependency graph beforehand, capturing all possible interactions between blocks, interconnects, and protocols before actual verification execution. The graph encodes stall prevention requirements and resource dependencies in advance, enabling the verification engine to quickly query pre-computed information rather than analyzing entire transaction flows during verification, thus reducing runtime significantly.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If detailed analysis of all blocks and interconnects is performed to detect system-level deadlocks, then detection accuracy improves, but computational complexity and resource requirements increase

Engineering Contradiction:
Improvedeadlock detection accuracyVSAvoidverification system complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent introduces a dependency graph as an intermediary data structure that mediates between the complex hardware architecture (blocks, interconnects, protocols) and the verification engine. The graph abstracts detailed hardware interactions into standardized nodes (representing blocks) and edges (representing resource dependencies and stall conditions), enabling the verification system to analyze complex SoC designs with high accuracy without being overwhelmed by implementation details.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent transforms the verification problem from analyzing concrete transaction flows with specific data values to analyzing abstract dependency relationships represented as graph structures. By changing the parameter representation from detailed transaction sequences to symbolic dependency edges with stall prevention requirements, the system achieves high detection accuracy while reducing computational complexity through graph theory algorithms.

Inventive Principle:
Principle #35Parameter changes

3Ease of manufacture

If conventional verification approaches are used without structured analysis, then implementation is simpler, but false deadlocks cannot be eliminated and verification effectiveness decreases

Engineering Contradiction:
Improveverification implementation simplicityVSAvoidverification effectiveness
Core Design Contradiction:
Ease of manufactureVSReliability

Solution Approach 1:

The patent implements feedback through the loop analysis mechanism that systematically examines cycles in the dependency graph. When a potential deadlock is detected, the system traces back through the graph edges to identify the specific sequence of stall conditions and resource dependencies that created the cycle, providing feedback about the root cause. This structured feedback mechanism enables automatic elimination of false deadlocks by distinguishing between genuine resource conflicts and spurious detection artifacts, significantly improving verification effectiveness.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9633153B1Method, system, and computer program product for verifying an electronic design using stall prevention requirements of electronic circuit design models of the electronic design
Publication Date: 2017.04.25 CADENCE DESIGN SYST INC
  • US9633153B1 patent drawing
  • US9633153B1 patent drawing
  • US9633153B1 patent drawing

AI summary

Various mechanisms and approaches identify multiple cells in an electronic design and multiple sets of stall prevention requirements or multiple sets of transactions for the multiple cells and determine dependencies between stall prevention requirements. A graph is constructed to represent the dependencies and the stall prevention requirements or the transactions involved in the dependencies by using the stall prevention requirements or the transactions as the nodes and the dependencies as the arcs connecting the nodes in the graph. One or more loop analyses are performed on the graph to identify one or more loops as one or more potential deadlocks. False deadlocks may be eliminated from further processing. The analyses and deadlock detection may be independently performed for each cell in sequence or in parallel to divide and conquer a complex electronic system design.