IP Library Granted Patent US 10,140,411
Granted Patent B2
US 10,140,411 · App. 15/356,791 · Granted Nov 27, 2018

Method and apparatus for performing parallel routing using a multi-threaded routing procedure

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 10,140,411
App. No.
15/356,791
Granted
Nov 27, 2018
Kind
B2
Abstract

A method for designing a system to be implemented on a target device, the method including generating bounding boxes on the target device for nets in the system where a bounding box identifies routing resources available for routing a corresponding net in the bounding box. 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.

Claims (32)

1. A method for designing a system on a target device, the method comprising:

assigning nets having bounding areas that cross a partition line on the target device to be routed; and

assigning remaining nets in a first partition on a first side of the partition line and remaining nets in a second partition on a second side of the partition line to be routed after the nets having bounding areas that cross the partition line have been routed, wherein at least one of the assignings is performed by a processor.

2. The method of claim 1 , wherein the nets having bounding areas that cross the partition line are assigned to be routed serially.

3. The method of claim 1 , wherein the remaining nets in the first partition and the second partition are assigned to be routed in parallel.

4. The method of claim 1 , wherein the partition line partitions the target device into equally sized areas.

5. The method of claim 1 , wherein the partition line partitions the target device to balance an amount of routing work for nets in each partition.

6. The method of claim 1 , wherein the partition line is created to intersect fewer than a predetermined number of bounding areas.

7. The method of claim 1 , wherein the remaining nets are routed in parallel and have bounding areas free from overlap.

8. The method of claim 1 further comprising routing nets with overlapping bounding areas serially.

9. The method of claim 1 , wherein each bounding area corresponds to an area on the target device.

10. The method of claim 1 , wherein each bounding area defines routing resources that can be used for routing corresponding nets in the each bounding area.

11. The method of claim 1 further comprising partitioning the target device with the partition line.

12. A non-transitory computer readable medium including sequences of instructions stored thereon for causing a computer to execute a method comprising:

assigning nets having bounding areas that cross a partition line on a target device to be routed; and

assigning remaining nets in a first partition on a first side of the partition line and remaining nets in a second partition on a second side of the partition line to be routed after the nets having bounding areas that cross the partition line have been routed.

13. The non-transitory computer readable medium of claim 12 , wherein the nets having bounding areas that cross the partition line are assigned to be routed serially.

14. The non-transitory computer readable medium of claim 12 , wherein the remaining nets in the first partition and the second partition are assigned to be routed in parallel.

15. The non-transitory computer readable medium of claim 12 , wherein the partition line partitions the target device into equally sized areas.

16. The non-transitory computer readable medium of claim 12 , wherein the partition line partitions the target device to balance an amount of routing work for nets in each partition.

17. The non-transitory computer readable medium of claim 12 , wherein the partition line is created to intersect fewer than a predetermined number of bounding areas.

18. The non-transitory computer readable medium of claim 12 , wherein the remaining nets are routed in parallel and have bounding areas free from overlap.

19. The non-transitory computer readable medium of claim 12 , wherein the method further comprises partitioning the target device with the partition line.

20. A method for designing a system on a target device, the method comprising:

identifying dependencies of nets in the system; and

assigning nets with a higher number of dependencies to be routed before nets with fewer or no dependencies, wherein at least one of the identifying dependencies of nets and the routing the assigned nets with a higher number of dependencies is performed by a processor.

21. The method of claim 20 further comprising:

identifying sets of nets such that nets in each set of the sets are free from dependencies from nets from other sets; and

routing the sets of nets in parallel, wherein at least one of the identifying sets of nets and the routing the sets of nets in parallel is performed by a processor.

22. The method of claim 20 , wherein the identifying dependencies of the nets in the system comprises determining whether a bounding area corresponding to a first net overlaps with a bounding area corresponding to a second net.

23. The method of claim 22 , wherein each bounding area corresponds to an area on the target device.

24. The method of claim 22 , wherein each bounding area defines routing resources that can be used for routing a corresponding net in the each bounding area.

Assignments (2)
SECURITY INTEREST Recorded Sep 12, 2025
From: ALTERA CORPORATION
To: BARCLAYS BANK PLC, AS COLLATERAL AGENT
Reel/Frame 073431/0309 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2016
From: BETZ, VAUGHN; SWARTZ, JORDAN; GOUTERMAN, VADIM
To: ALTERA CORPORATION
Reel/Frame 040386/0717 →