Array Implication Graphs for Multi-Array Constraint Solving

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvefunctional verification capabilityVSAvoidcomputational complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

2Reliability

If multi-array constraint problems are solved directly, then the complete constraint satisfaction can be achieved, but the memory requirements increase

Engineering Contradiction:
Improveconstraint satisfactionVSAvoidmemory requirements
Core Design Contradiction:
ReliabilityVSQuantity of substance

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.

Inventive Principle:
Principle #1Segmentation

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

Engineering Contradiction:
Improvesolving process simplicityVSAvoidconstraint compliance
Core Design Contradiction:
Ease of manufactureVSManufacturing precision

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.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS12475285B1Solving multiple array problems interacting with each other in constraint solving for functional verification of logic designs
Publication Date: 2025.11.18 SYNOPSYS INC
  • US12475285B1 patent drawing
  • US12475285B1 patent drawing
  • US12475285B1 patent drawing

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.