Patentable/Patents/US-8533652
US-8533652

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

PublishedSeptember 10, 2013
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

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.

Patent Claims
25 claims

Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.

Claim 1

Original Legal Text

1. A method for designing a system to be implemented on a target device, the method comprising: generating bounding boxes on the target device for a plurality of nets in the system, wherein a bounding box corresponds to an area on the target device; and routing the plurality of nets in parallel, wherein each net of the plurality of nets is routed within its corresponding bounding box, wherein at least one of the generating and the routing is performed by a processor.

Plain English Translation

A method for designing an electronic system on a target device (like a chip) involves two main steps. First, "bounding boxes" are created for each "net" (connection between components) on the device. A bounding box represents the available routing area for that net. Second, these nets are routed in parallel, meaning multiple nets are routed simultaneously. Each net's route is constrained to stay within its corresponding bounding box. At least one of these steps (bounding box generation or routing) is performed by a processor.

Claim 2

Original Legal Text

2. The method of claim 1 , wherein each bounding boxes defines routing resources that can be used for routing its corresponding net.

Plain English Translation

In the system routing method described above, each bounding box not only represents an area on the target device but also explicitly defines the specific routing resources (e.g., wires, vias) that are available and permitted for routing the corresponding net. This means the bounding box acts as a constraint, limiting the routing algorithm to only use pre-approved resources within that area for that particular net.

Claim 3

Original Legal Text

3. The method of claim 1 further comprising determining which nets of the plurality of nets in the system to be routed in parallel.

Plain English Translation

The system routing method described above also includes a step to determine which nets will be routed in parallel. This decision-making process identifies which nets from the total set of nets in the system are suitable for concurrent routing, optimizing the overall routing process by intelligently selecting which nets can be processed simultaneously.

Claim 4

Original Legal Text

4. The method of claim 3 , wherein the determining which nets of the plurality of nets in the system to be routed in parallel comprises: partitioning the target device with a partition line; assigning nets having bounding boxes that cross the partition line to be routed serially first; and assigning remaining nets in a first partition to be routed in parallel with remaining nets in a second partition.

Plain English Translation

The system routing method described above determines which nets to route in parallel by first dividing the target device into sections using a "partition line." Nets whose bounding boxes cross this line are assigned to be routed serially (one after the other) first. Then, the remaining nets within the first partition are assigned to be routed in parallel with the remaining nets in the second partition, optimizing parallel routing while addressing cross-partition dependencies.

Claim 5

Original Legal Text

5. The method of claim 3 , wherein the determining which nets of the plurality of nets in the system to be routed in parallel comprises: partitioning the target device with a partition line, wherein the partition line partitions the target device into equally sized areas; and assigning nets in a first partition to be routed in parallel with nets in a second partition.

Plain English Translation

The system routing method described above determines which nets to route in parallel by dividing the target device into equally sized sections using a "partition line." Then, the nets within the first section are assigned to be routed in parallel with the nets in the second section. The partition line ensures a balanced workload distribution for parallel processing, enhancing efficiency.

Claim 6

Original Legal Text

6. The method of claim 3 , wherein the determining which nets of the plurality of nets in the system to be routed in parallel comprises: partitioning the target device with a partition line, wherein the partition line partitions the target device balances an amount of routing work for nets in each partition; and assigning nets in a first partition to be routed in parallel with nets in a second partition.

Plain English Translation

The system routing method described above determines which nets to route in parallel by dividing the target device using a "partition line" that balances the routing workload between each partition. This means the partition line is positioned to ensure a roughly equal amount of routing effort is required in each section. Nets within the first partition are then routed in parallel with nets in the second partition.

Claim 7

Original Legal Text

7. The method of claim 3 , wherein the determining which nets of the plurality of nets in the system to be routed in parallel comprises: partitioning the target device with a partition line, wherein the partition line partitions the target device such that an amount of routing work to be done for nets in each partition is balanced, and wherein the partition line intersect a fewest number of bounding boxes; and assigning nets in a first partition to be routed in parallel with nets in a second partition.

Plain English Translation

The system routing method described above determines which nets to route in parallel by dividing the target device using a "partition line" which balances the routing workload in each partition, AND also minimizes the number of bounding boxes that the partition line intersects. Nets within the first partition are then routed in parallel with nets in the second partition. Minimizing bounding box intersections reduces dependencies between partitions, enabling more efficient parallel routing.

Claim 8

Original Legal Text

8. The method of claim 3 , wherein the determining which nets in the system to be routed in parallel comprises: identifying dependencies of the nets; identifying sets of nets such that nets in each of the sets are free from dependencies from nets from other sets; assigning a different thread to route each of the sets of nets; and routing the sets of nets in parallel.

Plain English Translation

The system routing method described above determines which nets to route in parallel by identifying dependencies between the nets. It groups nets into independent sets, where nets within a set don't rely on the routing of nets in other sets. Each of these independent sets is then assigned to a different thread and routed in parallel. This approach allows for maximal concurrency by eliminating inter-thread dependencies.

Claim 9

Original Legal Text

9. The method of claim 8 further comprising assigning nets with a greatest number of dependencies to be routed before nets with fewer or no dependencies.

Plain English Translation

The system routing method described above, which routes independent sets of nets in parallel, further prioritizes nets with the most dependencies to be routed first, before nets with fewer or no dependencies. This approach ensures that critical nets are resolved early, potentially simplifying the routing of subsequent, less-dependent nets.

Claim 10

Original Legal Text

10. The method of claim 1 , wherein the plurality of nets routed in parallel have bounding boxes free from overlap.

Plain English Translation

In the system routing method described above, the nets that are routed in parallel have bounding boxes that do not overlap with each other. This non-overlapping constraint simplifies the routing process by avoiding potential conflicts or interference between simultaneously routed nets, leading to faster and more reliable parallel routing.

Claim 11

Original Legal Text

11. The method of claim 1 further comprising routing nets with overlapping bounding boxes serially.

Plain English Translation

In addition to routing nets with non-overlapping bounding boxes in parallel, the system routing method described above also routes nets with overlapping bounding boxes serially (one at a time). This ensures that potential conflicts arising from shared routing resources are avoided, maintaining routing integrity even when parallel routing isn't possible.

Claim 12

Original Legal Text

12. A non-transitory computer readable medium including sequences of instructions stored thereon for causing a computer to execute a method comprising: generating bounding boxes on a target device for nets in a system, wherein a bounding box corresponds to an area on the target device; and routing a plurality of nets in parallel, wherein each net of the plurality of nets is routed within its corresponding bounding box.

Plain English Translation

A non-transitory computer-readable medium (like a hard drive or flash drive) contains instructions that, when executed by a computer, cause the computer to design an electronic system. The design process involves generating "bounding boxes" for each "net" (connection between components) on a target device. A bounding box represents the available routing area for that net. Instructions then cause the computer to route multiple nets in parallel, with each net's route staying within its assigned bounding box.

Claim 13

Original Legal Text

13. The non-transitory computer readable medium of claim 12 , wherein each bounding boxes defines routing resources that can be used for routing its corresponding net.

Plain English Translation

The non-transitory computer readable medium with routing instructions described above ensures each bounding box defines the specific routing resources (e.g., wires, vias) available and permitted for routing its corresponding net. Thus, the bounding box constrains the routing algorithm to utilize only pre-approved resources within that area for that specific net.

Claim 14

Original Legal Text

14. The non-transitory computer readable medium of claim 12 , wherein each of the nets comprises a source and a sink.

Plain English Translation

The non-transitory computer readable medium with routing instructions described above recognizes that each "net" comprises at least a source and a sink (destination). This is a standard model for electrical connections, where a signal originates from a source and travels to a destination (sink).

Claim 15

Original Legal Text

15. The non-transitory computer readable medium of claim 12 , wherein the plurality of nets routed in parallel have bounding boxes free from overlap.

Plain English Translation

The non-transitory computer readable medium with routing instructions described above specifies that the multiple nets routed in parallel have bounding boxes that do not overlap. This avoids routing conflicts by only routing independent nets simultaneously.

Claim 16

Original Legal Text

16. The non-transitory computer readable medium of claim 12 , wherein the method further comprises routing nets with overlapping bounding boxes serially.

Plain English Translation

The non-transitory computer readable medium with routing instructions described above, besides routing nets with non-overlapping bounding boxes in parallel, also handles nets with overlapping bounding boxes. These overlapping nets are routed serially (one after the other) to prevent potential conflicts and ensure accurate routing.

Claim 17

Original Legal Text

17. The non-transitory computer readable medium of claim 12 , wherein the method further comprises routing a subset of connections of a net serially to produce a partial routing tree divided into two or more portions, wherein each portion is within a partition of the target device and each of the partial routing tree portions is sent to a separate thread to route a subset of remaining net connections within that partition in parallel, and wherein routing of each thread is constrained to lie within a device partition it has been assigned.

Plain English Translation

The non-transitory computer readable medium with routing instructions described above routes a subset of connections of a net serially to produce a partial routing tree divided into two or more portions. Each portion is within a partition of the target device. Each of these partial routing tree portions is sent to a separate thread to route a subset of remaining net connections within that partition in parallel. Routing of each thread is constrained to lie within a device partition it has been assigned.

Claim 18

Original Legal Text

18. The non-transitory computer readable medium of claim 12 , wherein the method further comprises: partitioning the target device with a partition line; assigning nets having bounding boxes that cross the partition line to be routed serially first; and assigning remaining nets in a first partition to be routed in parallel with remaining connections in a second partition.

Plain English Translation

The non-transitory computer readable medium with routing instructions described above partitions the target device with a partition line, assigns nets having bounding boxes that cross the partition line to be routed serially first, and assigns remaining nets in a first partition to be routed in parallel with remaining connections in a second partition. This method prioritizes nets that span partitions, routing them before parallel routing within partitions.

Claim 19

Original Legal Text

19. A routing unit comprising: a bounding box unit operable to identify bounding boxes on a target device for nets, wherein a bounding box corresponds to an area on the target device; and a scheduling unit operable to schedule routing a plurality of nets in parallel, wherein each net of the plurality of nets is routed within its corresponding bounding box.

Plain English Translation

A routing unit (a hardware or software component) includes a bounding box unit and a scheduling unit. The bounding box unit identifies bounding boxes for nets on a target device, where each bounding box represents an area for routing. The scheduling unit then schedules multiple nets to be routed in parallel, ensuring each net's route stays within its assigned bounding box.

Claim 20

Original Legal Text

20. The routing unit of claim 19 , wherein each bounding boxes defines routing resources available for routing its corresponding net.

Plain English Translation

The routing unit described above ensures that each bounding box defines the specific routing resources (e.g., wires, vias) that are available for routing the corresponding net. This bounding box acts as a routing constraint.

Claim 21

Original Legal Text

21. The routing unit of claim 19 , wherein the plurality of nets scheduled to be routed in parallel have bounding boxes free from overlap.

Plain English Translation

The routing unit described above only schedules nets with non-overlapping bounding boxes to be routed in parallel. This eliminates the possibility of routing conflicts.

Claim 22

Original Legal Text

22. The routing unit of claim 19 , wherein the scheduling unit is operable to schedule routing nets with overlapping bounding boxes serially.

Plain English Translation

The routing unit described above schedules nets with overlapping bounding boxes to be routed serially (one at a time). This avoids conflicts in shared routing resources.

Claim 23

Original Legal Text

23. The routing unit of claim 19 , wherein the scheduling unit is operable to schedule routing the plurality of nets based upon positions of the bounding boxes relative to one or more partition lines.

Plain English Translation

The routing unit described above schedules the parallel routing of nets based on the positions of their bounding boxes relative to one or more partition lines on the target device. This allows the scheduling to optimize routing across partitioned regions.

Claim 24

Original Legal Text

24. The routing unit of claim 19 further comprising a work assessment unit operable to estimate an amount of work required for routing each net of the plurality of nets based upon a number of fanouts in each net.

Plain English Translation

The routing unit described above includes a work assessment unit that estimates the amount of routing work required for each net based on the number of fanouts (connections) in that net. This provides a measure of complexity for each net.

Claim 25

Original Legal Text

25. The routing unit of claim 19 , wherein the scheduling unit is operable to schedule routing the plurality of nets based upon the amount of work required for routing each of the nets.

Plain English Translation

The routing unit described above schedules the parallel routing of nets based on the estimated amount of routing work required for each net. This aims to balance the workload across different routing threads.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

September 13, 2012

Publication Date

September 10, 2013

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, FAQs, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Method and apparatus for performing parallel routing using a multi-threaded routing procedure” (US-8533652). https://patentable.app/patents/US-8533652

© 2026 Nomic Interactive Technology LLC. Machine-readable context available at /api/llm-context/US-8533652. See llms.txt for full attribution policy.