IP Library Granted Patent US 7,761,832
Granted Patent B2
US 7,761,832 · App. 11/941,418 · Granted Jul 20, 2010

Method for incremental, timing-driven, physical-synthesis optimization under a linear delay model

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 7,761,832
App. No.
11/941,418
Granted
Jul 20, 2010
Kind
B2
Abstract

A method, data processing system and computer program product for optimizing the placement of logic gates of a subcircuit in a physical synthesis flow. A Pyramids utility identifies and selects movable gate(s) for timing-driven optimization. A delay pyramid and a required arrival time (RAT) surface are generated for each net in the selected subcircuit. A slack pyramid for each net is generated from the difference between the RAT surface and delay pyramid of each net. The slack pyramids are grown and tested using test points to generate a worst-case slack region based on a plurality of slack pyramids in the selected subcircuit. The worst-case slack region is mapped on a placement region and a set of coordinates representing the optimal locations of the movable element(s) in the placement region are determined and outputted.

Claims (53)

1. In a computing device, a method for optimizing the timing-driven placement of one or more movable elements of a circuit in a physical synthesis flow, the method comprising:

identifying and selecting at least one movable element within a subcircuit based on at least one selection criteria;

generating a delay pyramid for each net in the subcircuit;

generating a required arrival time (RAT) surface for each net in the subcircuit;

generating a slack pyramid for each net in the subcircuit;

generating a worst-case slack region based on a plurality of slack pyramids in the subcircuit;

mapping the worst-case slack region on a placement region;

determining a set of coordinates representing an optimal location of the at least one movable element in the placement region based on the mapping of the worst-case slack region; and

outputting, by said computing device, the determined set of coordinates representing the optimal location of the at least one movable element.

2. The method of claim 1 , the method further comprises:

selecting test points on the placement region; and

extending the selected test points along an (x, y) line to determine a set of minimum-slack planes from among the slack pyramids generated from each net of the subcircuit;

wherein the minimum-slack planes are used to generate the worst-case slack region.

3. The method of claim 2 , wherein two test points are selected when the movable element is a sequential gate.

4. The method of claim 2 , wherein four test points are selected when the movable element is a combinational gate.

5. The method of claim 3 , wherein the selected two test points form a test line that is not aligned at a 45-degree angle to an x-axis or y-axis of the placement region.

6. A data processing system comprising:

a processor;

a system memory coupled to the processor; and

a Pyramids utility executing on the processor and having executable code for:

identifying and selecting at least one movable element within a subcircuit based on at least one selection criteria;

generating a delay pyramid for each net in the subcircuit;

generating a required arrival time (RAT) surface for each net in the subcircuit;

generating a slack pyramid for each net in the subcircuit;

generating a worst-case slack region based on a plurality of slack pyramids in the sub circuit;

mapping the worst-case slack region on a placement region;

determining a set of coordinates representing an optimal location of the at least one movable element in the placement region based on the mapping of the worst-case slack region; and

outputting the determined set of coordinates representing the optimal location of the at least one movable element.

7. The data processing system of claim 6 , the utility further having executable code for:

selecting test points on the placement region; and

extending the selected test points along an (x, y) line to determine a set of minimum-slack planes from among the slack pyramids generated from each net of the subcircuit;

wherein the minimum-slack planes are used to generate the worst-case slack region.

8. The data processing system of claim 7 , wherein two test points are selected when the movable element is a sequential gate.

9. The data processing system of claim 7 , wherein four test points are selected when the movable element is a combinational gate.

10. The data processing system of claim 8 , wherein the selected two test points form a test line that is not aligned at a 45-degree angle to an x-axis or y-axis of the placement region.

11. A computer program product comprising:

a computer storage medium; and

program code on the computer storage medium that when executed provides the functions of:

identifying and selecting at least one movable element within a subcircuit based on at least one selection criteria;

generating a delay pyramid for each net in the subcircuit;

generating a required arrival time (RAT) surface for each net in the subcircuit;

generating a slack pyramid for each net in the subcircuit;

generating a worst-case slack region based on a plurality of slack pyramids in the subcircuit;

mapping the worst-case slack region on a placement region;

determining a set of coordinates representing an optimal location of the at least one movable element in the placement region based on the mapping of the worst-case slack region; and

outputting the determined set of coordinates representing the optimal location of the at least one movable element.

12. The computer program product of claim 11 , the program code further provides the functions of:

selecting test points on the placement region; and

extending the selected test points along an (x, y) line to determine a set of minimum-slack planes from among the slack pyramids generated from each net of the subcircuit;

wherein the minimum-slack planes are used to generate the worst-case slack region.

13. The computer program product of claim 12 , wherein two test points are selected when the movable element is a sequential gate.

14. The computer program product of claim 12 , wherein four test points are selected when the movable element is a combinational gate.

15. The computer program product of claim 13 , wherein the selected two test points form a test line that is not aligned at a 45-degree angle to an x-axis or y-axis of the placement region.

Assignments (3)
MERGER AND CHANGE OF NAME Recorded Jun 16, 2021
From: MENTOR GRAPHICS CORPORATION; SIEMENS INDUSTRY SOFTWARE INC.
To: SIEMENS INDUSTRY SOFTWARE INC.
Reel/Frame 056597/0234 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2013
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: MENTOR GRAPHICS CORPORATION
Reel/Frame 029733/0156 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 16, 2007
From: ALPERT, CHARLES J.; LI, ZHUO; LUO, TAO; PAPA, DAVID A.; SZE, CHIN NGAI
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 020127/0161 →