IP Library Granted Patent US 10,318,686
Granted Patent B2
US 10,318,686 · App. 15/391,511 · Granted Jun 11, 2019

Methods for reducing delay on integrated circuits by identifying candidate placement locations in a leveled graph

Inventors: Shounak Dhar (Austin, TX); Mahesh A. Iyer (Fremont, CA); Love Singhal (San Jose, CA); Nikolay Rubanov (Morgan Hill, CA); Saurabh Adya (San Jose, CA)
Assignee: Intel Corporation
G06F17/505G06F17/5031G06F17/5054G06F17/5072G06F2217/84
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,318,686
App. No.
15/391,511
Granted
Jun 11, 2019
Kind
B2
Abstract

Configuration data for an integrated circuit may be generated using logic design equipment to implement an circuit design on the integrated circuit. Implementing the circuit design may include placing functional blocks at optimal locations that increase the maximum operating frequency of the integrated circuit implementing the optimal circuit design. Logic design equipment may perform timing analysis on an initially placed circuit design that includes initially placed functional blocks. The timing analysis may identify one or more critical paths that may be shortened by moving the critical functional blocks within the circuit design to candidate placement locations. A levelized graph representing possible candidate locations and paths between the possible candidate locations may be traversed in a breadth-first search to generate a shortest updated critical path. The critical functional blocks may be moved to candidate locations corresponding to the updated critical path. The process of shortening critical paths may be iteratively performed.

Claims (45)

1. A method of operating design tools running on a logic design system to implement a circuit design, the method comprising:

with the logic design system, placing a plurality of functional blocks in the circuit design;

with the logic design system, identifying a critical path linking the plurality of functional blocks;

with the logic design system, identifying candidate placement locations for each of the plurality of functional blocks in the critical path;

with the logic design system, generating a levelized graph that represents possible paths linking the candidate placement locations for a first functional block in the plurality of functional blocks to the candidate placement locations for a second functional block in the plurality of functional blocks;

with the logic design system, analyzing the levelized graph to identify an updated critical path;

with the logic design system, moving the first functional block to one of its candidate placement locations to implement the updated critical path; and

configuring an integrated circuit at least partially based on the updated critical path.

2. The method of claim 1 , further comprising:

updating the placement of the plurality of functional blocks according to the updated critical path.

3. The method of claim 2 , further comprising:

determining whether the updated critical path improves the performance of the circuit design; and

in response to determining that the updated critical path improves the performance of the circuit design, caching the updated placement of the plurality of functional blocks.

4. The method of claim 3 , further comprising:

in response to determining that the updated critical path improves the performance of the circuit design, identifying a new critical path in the circuit design.

5. The method of claim 1 , wherein identifying the critical path linking the plurality of functional blocks comprises evaluating an amount of delay slack for each interconnection in the circuit design, and wherein the critical path linking the plurality of functional blocks exhibits a cumulative amount of delay slack that is below a predetermined threshold.

6. The method of claim 1 , further comprising:

computing hard delay limits for side paths that are connected to the plurality of functional blocks.

7. The method of claim 6 , further comprising:

relaxing the computed hard delay limits to increase a number of the candidate placement locations.

8. A method of operating design tools running on a logic design system to implement a circuit design, the method comprising:

with the logic design system, placing a plurality of functional blocks in the circuit design;

with the logic design system, identifying a critical path linking the plurality of functional blocks;

with the logic design system, identifying candidate placement locations for each of the plurality of functional blocks in the critical path;

with the logic design system, generating a levelized graph that represents possible paths linking the candidate placement locations for a first functional block in the plurality of functional blocks to the candidate placement locations for a second functional block in the plurality of functional blocks;

with the logic design system, identifying a shortened critical path within the levelized graph by solving a shortest path problem associated with the levelized graph;

with the logic design system, moving the first functional block to one of its candidate placement locations based on the shortened critical path; and

configuring an integrated circuit using the circuit design obtained at least partially via solving the shortest path problem.

9. The method of claim 8 , further comprising:

moving an additional functional block that is directly connected to a given one of the plurality of functional blocks closer to the given one of plurality of functional blocks to increase a number of the candidate placement locations for the given one of the plurality of functional blocks.

10. The method of claim 8 , wherein a first additional functional block is located at one of the candidate placement locations for a given one of the plurality of functional blocks, and wherein a second additional functional block is directly connected to the first additional functional block, the method further comprising:

moving the second additional functional block closer to the first additional functional block to increase a number of the candidate placement locations for the given one of the plurality of functional blocks.

11. The method of claim 8 , further comprising:

computing a hard delay limit for a side path that is connected to an additional functional block that is located in a given one of the candidate placement locations.

12. The method of claim 11 , further comprising:

eliminating the given one of the candidate placement locations if moving the additional functional block violates the computed hard delay limit.

13. The method of claim 8 , wherein the levelized graph includes a plurality of levels each corresponding to a respective one of the plurality of functional blocks, wherein a first level in the plurality of levels includes the identified candidate placement locations for the first functional block in the plurality of functional blocks, and wherein a second level in the plurality of levels includes the identified candidate placement locations for the second functional block in the plurality of functional blocks, the method further comprising:

eliminating a path in the levelized graph connecting a given candidate placement location in the first level to the given candidate placement location in the second level.

14. The method of claim 8 , wherein:

the levelized graph includes a plurality of levels each corresponding to a respective one of the plurality of functional blocks;

a first level in the plurality of levels includes the identified candidate placement locations for the first functional block in the plurality of functional blocks;

a second level in the plurality of levels includes the identified candidate placement locations for the second functional block in the plurality of functional blocks;

the critical path has a starting point in the first level and has an end point in the second level; and

identifying the shortened critical path within the levelized graph comprises solving for a shortest path linking the first level to the second level.

15. The method of claim 14 , wherein solving for the shortest path linking the first level to the second level comprises performing a breadth-first search.

Assignments (3)
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 Jan 19, 2024
From: INTEL CORPORATION
To: ALTERA CORPORATION
Reel/Frame 066353/0886 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 22, 2017
From: DHAR, SHOUNAK; IYER, MAHESH A.; SINGHAL, LOVE; RUBANOV, NIKOLAY; ADYA, SAURABH
To: INTEL CORPORATION
Reel/Frame 041341/0519 →
Continuity (2)
Provisional Application 62406877 · Oct 11, 2016
Related Publication 20180101624A1 · Apr 12, 2018