Multi-threaded FPGA Routing with Bounding Box Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing parallel routing algorithms for FPGAs and ASICs are not deterministic, leading to inconsistent results and require significant overhead for data synchronization, which hampers efficiency and testing reliability.

Innovation Solution

A multi-threaded routing procedure that generates bounding boxes around net terminals to limit the search scope in the routing resource graph, allowing nets with non-intersecting boxes to be routed in parallel, thereby optimizing resource utilization and reducing synchronization overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If parallel routing algorithms are used to utilize multi-core processors, then routing throughput is improved, but synchronization overhead and data broadcasting requirements increase significantly

Engineering Contradiction:
Improverouting throughputVSAvoidsynchronization overhead
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the routing problem into independent segments by assigning different nets to different threads. Each thread processes its assigned nets independently without requiring synchronization with other threads, eliminating the need for data broadcasting and synchronization overhead while maintaining parallel processing throughput

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary partitioning of nets into groups that can be processed independently by different threads. By pre-organizing the routing tasks before parallel execution, the system avoids the need for runtime synchronization and data exchange between threads, thus maintaining high throughput without synchronization overhead

Inventive Principle:
Principle #10Preliminary action

2Productivity

If parallel routing algorithms are used to reduce routing time, then productivity is improved, but determinism is lost resulting in inconsistent routing results

Engineering Contradiction:
Improverouting speedVSAvoiddeterminism
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the routing problem into independent net groups processed by different threads. Each thread executes the same deterministic routing algorithm on its assigned nets, ensuring that given the same input, each thread produces consistent results. This segmentation allows parallel execution to maintain determinism while achieving speedup

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the parameter of thread execution from shared-state parallel processing to independent parallel processing. Each thread operates with its own copy of necessary data structures and processes nets independently, ensuring deterministic behavior while maintaining parallel execution speed

Inventive Principle:
Principle #35Parameter changes

3Productivity

If bounding boxes are used to limit search scope, then routing efficiency is improved, but routing flexibility is reduced

Engineering Contradiction:
Improverouting efficiencyVSAvoidrouting flexibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent segments the routing search space into bounding boxes for different net groups processed by different threads. Each thread searches only within its assigned bounding box, improving efficiency by avoiding unnecessary searches. The segmentation allows the system to maintain flexibility for each individual net while achieving overall efficiency through parallel processing

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies partial action by limiting each thread's search to its specific bounding box rather than the entire routing resource graph. This partial search scope is sufficient for finding valid routes for each net group while dramatically improving efficiency. The system accepts that each thread performs a more focused (partial) search rather than a complete search

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS11755810B2Method and apparatus for performing parallel routing using a multi-threaded routing procedure
Publication Date: 2023.09.12 ALTERA CORP
  • US11755810B2 patent drawing
  • US11755810B2 patent drawing
  • US11755810B2 patent drawing

AI summary

A method for designing a system to be implemented on a target device includes generating bounding boxes on the target device for nets in the system where a bounding box identifies routing resources available for routing its corresponding net. The nets in the system are assigned to a plurality of threads to be routed. The threads are executed so that a plurality of the nets are routed in parallel within their corresponding bounding box.