Array Implication Graphs for Multi-Array Constraint Solving
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for functional verification of logic designs, particularly in electronic design automation, struggle with solving multi-array constraint problems where different array problems interact, leading to computational inefficiencies and increased complexity due to local conflicts and high memory requirements.
Innovation Solution
The approach involves generating an array implication graph to represent interactions between single-array constraint problems, allowing for the solution of multi-array problems by guiding the order of solving individual single-array problems and constraining their solutions, using artificial intelligence techniques for problem recognition and solving at the array-level.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If multi-array constraint problems are solved directly using existing methods, then the functional verification can be performed, but the computational complexity and memory requirements increase significantly
Solution Approach 1:
The patent segments the multi-array constraint problem into multiple single-array constraint problems by generating an array implication graph. Each node in the graph represents a single-array problem that can be solved independently, and the edges represent the constraint relationships between them. This segmentation reduces the overall computational complexity by breaking down the intractable multi-array problem into manageable single-array subproblems.
2Reliability
If multi-array constraint problems are solved directly, then the complete constraint satisfaction can be achieved, but the memory requirements increase
Solution Approach 1:
The array implication graph divides the constraint satisfaction problem into discrete single-array nodes that can be solved and stored separately. Instead of maintaining the entire multi-array constraint system in memory simultaneously, the system solves each single-array node independently and propagates results through the graph, significantly reducing peak memory requirements.
3Ease of manufacture
If single-array problems are solved independently without considering dependencies, then the solving process is simpler, but the solution compliance with constraints decreases
Solution Approach 1:
The array implication graph establishes feedback mechanisms where the solution of one single-array node constrains and informs the solving of related nodes. When a node is solved, its results are propagated through the graph edges to update constraints on connected nodes, ensuring that each subsequent solving step maintains compliance with all relevant constraints while preserving the simplicity of single-array solving methods.
Data Source
AI summary
In some aspects, a logic design undergoes functional verification, which includes generating a test stimulus to apply to the logic design. The test stimulus includes test values for variables representing signals in the logic design. Generating the test stimulus involves a first problem of solving for the test values of the variables subject to constraints on the test values. It is solved as follows. A specification of the logic design is accessed. An array implication graph is generated from the specification. The array implication graph represents the problem as a set of two or more single-array constraint problems. Each single-array constraint problem solves for the test values of a single array of the variables subject to the constraints within that single array. The array implication graph also represents dependencies between different single-array constraint problems. The problem is solved based on the dependencies represented in the array implication graph.


