IP Library › Granted Patent US 12,271,672
Granted Patent B1
US 12,271,672 · App. 18/804,644 · Granted Apr 8, 2025

Deterministic parallel routing approach for accelerating pathfinder-based algorithms

Inventor: Umair Farooq Siddiqi (Dhahran, SA)
Assignee: KING FAHD UNIVERSITY OF PETROLEUM AND MINERALS
G06F30/347G06F30/394G06F30/396
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,271,672
App. No.
18/804,644
Granted
Apr 8, 2025
Kind
B1
Abstract

A field-programmable gate array (FPGA) routing tool within a computer-aided design system. The tool includes an input device for receiving a netlist containing nets with source nodes, sink nodes, and intermediate nodes at fixed positions. The tool further includes a processing circuitry configured with a design router responsible for constructing non-overlapping routing trees for all nets, ensuring connections from source nodes to sink nodes without exceeding fixed routing resource capacity of the FPGA. The design router utilizes incremental routing, which applies deterministic parallel routing to a window of initial iterations with high routing workload and sequential routing to subsequent iterations. Additionally, a display device is provided to continuously exhibit interconnections and routing utilization during the determination of routing trees.

Claims (44)

1. A field programmable gate array (FPGA) routing tool in a computer-aided design system, comprising:

an input device for receiving a netlist having nets with source nodes, sink nodes, and a plurality of intermediate nodes at fixed positions; and

processing circuitry configured with

a design router for building non-overlapping routing trees for all nets, including finding a routing tree for each net that connects the source nodes to the sink nodes without exceeding a capacity of fixed routing resources available on the FPGA;

the design router with incremental routing that:

applies deterministic parallel routing to a window of initial iterations having a high routing workload, where the window of initial iterations covers a range from a first iteration to an i-th iteration, and

applies sequential routing to all iterations after the i-th iteration; and

a display device to continuously display interconnections and a routing utilization while the routing trees are being determined.

2. The routing tool of claim 1 , wherein the window of initial iterations is a window of first K iterations, where K is a positive integer smaller than a predefined threshold.

3. The routing tool of claim 1 , wherein the design router applies parallel routing that includes

divide the nets (N) into N P blocks of substantially equal sizes; and

sequentially route all nets belonging to the block assigned to it.

4. The routing tool of claim 3 , wherein the design router applies parallel routing that further includes

divide the nets into two sets: C HF , and C LF , where C HF contains the nets having high fanout and C LF contains the nets having small fanout, wherein the high fanout nets are those nets whose fanout is more than or equal to a fanout threshold value.

5. The routing tool of claim 4 , wherein the design router applies the sequential routing that includes

partition the nets in C LF into three sets: C U , C L , and C LU , where C U and C L contain non-overlapping nets, and C LU contains nets that lie in both partitions C U and C L , and

perform sequential routing of nets in a union of {C HF and C LU } using a connection router C 0 .

6. The routing tool of claim 5 , wherein the design router applies net partitioning that includes

find a cutline that separates the nets into upper and lower halves based on their bounding boxes while ensuring that each partition has nearly equal number of branches to route.

7. The routing tool of claim 6 , wherein the design router applies net partitioning that includes

find the cutline's vertical axis, denoted by I, which is equal to an index where one-to-one difference between elements of an array “Workload-after” and an array “Workload-before” is minima.

8. The routing tool of claim 7 , wherein the design router applies net partitioning that includes

insert all nets whose bounding boxes lie completely on an upper side of the cutline into C U , and the nets whose bounding boxes lie on a lower side of the cutline into C L , and the nets whose bounding boxes crosses the cutline are inserted in C LU .

9. A non-transitory computer-readable storage medium including computer executable instructions, wherein the instructions, when executed by a computer, cause the computer to perform a method for routing a field programmable gate array (FPGA) by a routing tool in a computer-aided design system, the method comprising:

receiving, by an input device, a netlist having nets with source nodes, sink nodes, and a plurality of intermediate nodes at fixed positions; and

building, by processing circuitry, non-overlapping routing trees for all nets, including determining a routing tree for each net that connects the source nodes to the sink nodes without exceeding a capacity of fixed routing resources available on the FPGA;

applying, by the processing circuitry, deterministic parallel routing to a window of initial iterations having a high routing workload, where the window of initial iterations covers a range from a first iteration to an i-th iteration, and applying sequential routing to all iterations after the i-th iteration;

and

continuously displaying, by a display device, a interconnections and a routing utilization while the routing trees are being determined.

10. The non-transitory computer-readable storage medium of claim 9 , wherein the window of initial iterations is a window of first K iterations, where K is a positive integer smaller than a predefined threshold.

11. The non-transitory computer-readable storage medium of claim 9 , wherein the applying parallel routing that includes

dividing the nets (N) into N P blocks of substantially equal sizes; and

sequentially routing all nets belonging to the block assigned to it.

12. The non-transitory computer-readable storage medium of claim 11 , wherein the applying parallel routing that further includes

dividing the nets into two sets: C HF , and C LF , where CH F contains the nets having high fanout and C LF contains the nets having small fanout, wherein the high fanout nets are those nets whose fanout is more than or equal to a fanout threshold value.

13. The non-transitory computer-readable storage medium of claim 12 , wherein the applying the sequential routing that includes

partitioning the nets in C LF into three sets: C U , C L , and C LU , where C U and C L contain non-overlapping nets, and C LU contains nets that lie in both partitions C U and C L ; and

performing sequential routing of nets in a union of {C HF and C LU } using a connection router C 0 .

14. The non-transitory computer-readable storage medium of claim 13 , wherein the applying net partitioning that includes

finding a cutline that separates the nets into upper and lower halves based on their bounding boxes while ensuring that each partition has nearly equal number of branches to route.

15. The non-transitory computer-readable storage medium of claim 14 , wherein the applying net partitioning that includes

finding the cutline's vertical axis, denoted by I, which is equal to an index where one-to-one difference between elements of an array “Workload-after” and an array “Workload-before” is minima.

16. The non-transitory computer-readable storage medium of claim 15 , wherein the applying net partitioning that includes

inserting all nets whose bounding boxes lie completely on an upper side of the cutline into C U , and the nets whose bounding boxes lie on a lower side of the cutline into C L , and the nets whose bounding boxes crosses the cutline are inserted in C LU .

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 14, 2024
From: SIDDIQI, UMAIR FAROOQ
To: KING FAHD UNIVERSITY OF PETROLEUM AND MINERALS
Reel/Frame 068284/0975 →
References Cited (15)
US 8201130B1 · Kalman et al. · 2012 [cited by applicant]
US 11093672B2 · Khan · 2021 [cited by examiner]
US 20200257838A1 · Khan et al. · 2020 [cited by applicant]
CN 103886137B · 2017 [cited by applicant]
J. S. Swartz et al., “A Fast Routability-Driven Router for FPGAs,” FPGA 98, Monterey, CA, USA, 1998 ACM, pp. 140-149. (Year: 1998). [cited by examiner]
M. Gort et al., “Deterministic Multi-Core Parallel Routing for FPGAs,” 2010 IEEE, pp. 78-86. (Year: 2010). [cited by examiner]
M. Stojilovic, “Parallel FPGA Routing: Survey and Challenges,” 2017 27th Int'l Conference on Field Programmable Logic and Applications (FPL), Ghent, Belgium, 8 pages. (Year: 2017). [cited by examiner]
C. H. Hoo et al., “ParaDRo: A Parallel Deterministic Router Based on Spatial Partitioning and Scheduling,” 2018 ACM FPGA'18, Session 2: CAD, Feb. 25-27, Monterey, CA, USA, pp. 67-76. (Year: 2018). [cited by examiner]
K. E. Murray et al., “VTR 8: High-performance CAD and Customizable FPGA Architecture Modelling,” ACM Transactions on Reconfigurable Technology and Systems, vol. 13, No. 2, Article 9, May 2020, 60 pages. (Year: 2020). [cited by examiner]
K. E. Murray et al., “Air: A Fast but Lazy Timing-Driven FPGA Router,” 2020 IEEE, 5C-2, pp. 338-344. (Year: 2020). [cited by examiner]
D. Wang et al., “ParaRA: A Shared Memory Parallel FPGA Router Using Hybrid Partitioning Approach,” IEEE Trans. on Computer-Aided Design of Integrated Circuits and Systems, vol. 39, No. 4, Apr. 2020, pp. 830-842. (Year: … [cited by examiner]
Y. Zhou et al., “Accelerating FPGA Routing Through Algorithmic Enhancements and Connection-aware Parallelization,” ACM Trans. on Reconfigurable Technology and Systems, vol. 13, No. 4, Article 18, Aug. 2020, 26 pages. (Y… [cited by examiner]
C. H. Hoo et al., “ParaFRo: A Hybrid Parallel FPGA Router using Fine Grained Synchronization and Partitioning,” 2016 16th Int'l Conference on Field Programmable Logic and Application (FPL), Lausanne, Switzerland, 11 pag… [cited by examiner]
Minghua Shen, et al., “Combining Static and Dynamic Load Balance in Parallel Routing for FPGAs”, IEEE Journal & Magazine, vol. 40, Issue 9, Oct. 15, 2020. 4 pages, Abstract only. [cited by applicant]
Marcel Gort, et al., “Accelerating FPGA Routing Through Parallelization and Engineering Enhancements Special Section on PAR-CAD 2010”, IEEE transactions on computer-aided design of integrated circuits and systems, vol. … [cited by applicant]