IP Library Granted Patent US 11,755,810
Granted Patent B2
US 11,755,810 · App. 17/027,277 · Granted Sep 12, 2023

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

Inventors: Vaughn Betz (Toronto, CA); Jordan Swartz (Toronto, CA); Vadim Gouterman (Toronto, CA)
Assignee: Altera Corporation
G06F30/394
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 11,755,810
App. No.
17/027,277
Granted
Sep 12, 2023
Kind
B2
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.

Claims (29)

1. A method, comprising:

determining a number of processors to be used to perform operations on partitions, wherein respective partitions of the partitions correspond to a respective subset of one or more cells of a plurality of cells, wherein the respective subset of the one or more cells are identified by a respective boundary box that logically separates the respective subset of one or more cells from a remaining subset of the plurality of cells, wherein the plurality of cells form a programmable logic fabric corresponding to a target programmable logic device, wherein the plurality of cells are configurable to implement a system design;

performing a first respective timing analysis on a first partition of the partitions separate from and at least partially in parallel with a second respective timing analysis of a second partition of the partitions; and

outputting results of a plurality of timing analyses and a file comprising the system design.

2. The method of claim 1 , wherein the one or more cells correspond to one or more digital signal processing (DSP) blocks, input/output (I/O) elements, pins, logic gates, or any combination thereof.

3. The method of claim 1 , wherein the boundary box prevents timing model calculations of the respective subset of the one or more cells from being based on the remaining subset of the plurality of cells disposed outside the partition.

4. The method of claim 1 , comprising determining routing based on the respective boundary box separate from routing of another boundary box.

5. The method of claim 1 , wherein a constraint of the boundary box affects a placement, a routing, or both, associated with the partition.

6. The method of claim 1 , comprising counting a number of connections or fanouts before performing the first respective timing analysis.

7. The method of claim 1 , comprising repeating the first respective timing analysis after performing routing operations.

8. The method of claim 1 , wherein the first respective timing analysis is based on an indication of signal delay.

9. The method of claim 1 , comprising performing routing operations based on relative placement of the partitions to each other.

10. The method of claim 1 , wherein the file comprises a timing file output corresponding to the system design.

11. A system, comprising:

a tangible, non-transitory, and machine-readable medium, comprising machine-readable instructions stored thereon that, when executed by a processor, cause the system to:

determine a number of processors to be used to perform operations on partitions, wherein respective partitions of the partitions correspond to a respective subset of one or more cells of a plurality of cells, wherein the respective subset of the one or more cells are identified by a respective boundary box that logically separates the respective subset of one or more cells from a remaining subset of the plurality of cells, wherein the plurality of cells form a programmable logic fabric corresponding to a target field programmable gate array (FPGA), wherein the plurality of cells are configurable to implement a system design;

perform parallel timing analysis at least in part by performing a first respective timing analysis on a first partition of the partitions separate from and at least partially in parallel with a second respective timing analysis of a second partition of the partitions; and

output results of the parallel timing analysis and a file comprising the system design.

12. The system of claim 11 , wherein the machine-readable instructions, when executed by the processor, cause the system to program the target FPGA.

13. The system of claim 11 , wherein performing the parallel timing analysis on the partitions involves considering constraints associated with the target FPGA.

14. The system of claim 11 , wherein the machine-readable instructions, when executed by the processor, cause the system to output the file comprising a netlist as the system design for use in subsequent operations.

15. The system of claim 11 , wherein the machine-readable instructions, when executed by the processor, cause the processor to perform iterations of routing after performing the parallel timing analysis.

16. A tangible, non-transitory, and machine-readable medium, comprising machine-readable instructions stored thereon that, when executed by a processor, cause the processor to:

determine a number of processors to be used to perform operations on partitions, wherein respective partitions of the partitions correspond to a respective subset of one or more cells of a plurality of cells, wherein the respective subset of the one or more cells are identified by a respective boundary box that logically separates the respective subset of one or more cells from a remaining subset of the plurality of cells, wherein the plurality of cells form a programmable logic fabric corresponding to a target programmable logic device, wherein the plurality of cells are configurable to implement a system design; and

execute instructions such that respective partitions are used in respective timing analyses at a same time by respective processors of the number of processors.

17. The machine-readable medium of claim 16 , wherein the machine-readable instructions cause the processor to generate a file comprising a netlist based at least in part on results from a timing analysis of the timing analyses, and wherein the netlist defines an arrangement of look-up tables, logic array blocks, registers, memory blocks, digital signal processing blocks, input/output elements, or any combination thereof.

18. The machine-readable medium of claim 15 , wherein the machine-readable instructions cause the processor to perform routing operations based at least in part on relative placement of the partitions to each other.

19. The machine-readable medium of claim 15 , wherein the timing analysis comprises analyzing signal delays.

20. The method of claim 1 , wherein performing the first respective timing analysis on the first partition comprises analyzing signal delays corresponding to the respective subset of the one or more cells independent of signal delays corresponding to the remaining subset of the plurality of cells.

Assignments (1)
SECURITY INTEREST Recorded Sep 12, 2025
From: ALTERA CORPORATION
To: BARCLAYS BANK PLC, AS COLLATERAL AGENT
Reel/Frame 073431/0309 →
Cited By (1)
US 12,614,013