IP Library › Granted Patent US 10,558,775
Granted Patent B2
US 10,558,775 · App. 15/848,556 · Granted Feb 11, 2020

Memory element graph-based placement in integrated circuit design

Inventors: Myung-Chul Kim (Travis, TX); Arjen Alexander Mets (Sleepy Hollow, NY); Gi-Joon Nam (Chappaqua, NY); Shyam Ramji (Lagrangeville, NY); Lakshmi N. Reddy (Mt. Kisco, NY); Alexander J. Suess (Hopewell Junction, NY); Benjamin Trombley (Wappingers Falls, NY); Paul G. Villarrubia (Austin, TX)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F17/505G06F17/5031G06F17/5068G06F17/5072G06F17/5045G06F2217/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,558,775
App. No.
15/848,556
Granted
Feb 11, 2020
Kind
B2
Abstract

A system and method to perform physical synthesis to transition a logic design to a physical layout of an integrated circuit include obtaining an initial netlist that indicates all components of the integrated circuit including memory elements and edges that interconnect the components. The method also includes generating a graph with at least one of the memory elements and the edges carrying one or more signals to the at least one of the memory elements or from the at least one of the memory elements. The components other than memory elements are not indicated individually on the graph. The netlist is updated based on the graph.

Claims (27)

1. A method of performing physical synthesis to transition a logic design to a physical layout of an integrated circuit, the method comprising:

obtaining, using a processor, an initial netlist that indicates all components of the integrated circuit including memory elements and edges that interconnect the components;

generating a graph, using the processor, with at least one of the memory elements and the edges carrying one or more signals to the at least one of the memory elements or from the at least one of the memory elements, wherein components other than memory elements are eliminated from the graph or are combined for inclusion on the graph;

performing wire-length modelling to determine routes of the edges in the graph; and

updating the netlist, using the processor, based on the graph, wherein the generating the graph includes representing only one memory element and the edges associated with the only one memory element, at least one of the edges associated with the only one memory element having a slack value below a threshold value, the slack value indicating a result of subtracting a time delay for the at least one of the edges from a required time delay for the at least one of the edges.

2. The method according to claim 1 , wherein the generating the graph includes representing all the memory elements in the graph.

3. The method according to claim 2 , wherein the generating the graph includes representing two or more of the components other than the memory elements together as nodes in the graph.

4. The method according to claim 2 , further comprising determining a changed placement for one or more of the memory elements in the graph iteratively for a specified set of iterations.

5. The method according to claim 4 , further comprising generating an interim netlist with all the components based on the changed placement for the one or more of the memory elements, wherein the updating the netlist includes adopting the interim netlist for a last iteration among the specified set of iterations.

6. The method according to claim 1 , further comprising moving the only one memory element iteratively to a new location until the slack values of all of the edges associated with the only one memory element exceed the threshold value.

7. The method according to claim 6 , wherein the updating the netlist includes adopting the new location of the only one memory element.

8. A system to perform physical synthesis to transition a logic design to a physical layout of an integrated circuit, the system comprising:

a memory device configured to store an initial netlist that indicates all components of the integrated circuit including memory elements and edges that interconnect the components; and

a processor configured to generate a graph with at least one of the memory elements and the edges carrying one or more signals to the at least one of the memory elements or from the at least one of the memory elements, wherein components other than memory elements are eliminated from the graph or are combined for inclusion the graph, to perform wire-length modelling to determine routes of the edges in the graph, and to update the netlist based on the graph, wherein the graph includes a representation of only one memory element and the edges associated with the only one memory element, at least one of the edges associated with the only one memory element having a slack value below a threshold value, the slack value indicating a result of subtracting a time delay for the at least one of the edges from a required time delay for the at least one of the edges.

9. The system according to claim 8 , wherein the graph includes a representation of all the memory elements in the graph.

10. The system according to claim 9 , wherein the graph includes a representation of two or more of the components other than the memory elements together as nodes in the graph.

11. The system according to claim 9 , wherein the processor is further configured to determine a changed placement for one or more of the memory elements in the graph iteratively for a specified set of iterations, to generate an interim netlist with all the components based on the changed placement for the one or more of the memory elements, and to update the netlist by adopting the interim netlist for a last iteration among the specified set of iterations.

12. The system according to claim 8 , wherein the processor is further configured to move the only one memory element iteratively to a new location until the slack values of all of the edges associated with the only one memory element exceed the threshold value and to update the netlist by adopting the new location of the only one memory element.

13. A computer program product for performing physical synthesis to transition a logic design to a physical layout of an integrated circuit, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to perform a method comprising:

obtaining an initial netlist that indicates all components of the integrated circuit including memory elements and edges that interconnect the components;

generating a graph with at least one of the memory elements and the edges carrying one or more signals to the at least one of the memory elements or from the at least one of the memory elements, wherein components other than memory elements are eliminated from the graph or are combined for inclusion on the graph;

performing wire-length modelling to determine routes of the edges in the graph; and

updating the netlist based on the graph, wherein the generating the graph includes representing only one memory element and the edges associated with the only one memory element, at least one of the edges associated with the only one memory element having a slack value below a threshold value, the slack value indicating a result of subtracting a time delay for the at least one of the edges from a required time delay for the at least one of the edges.

14. The computer program product according to claim 13 , wherein the generating the graph includes representing all the memory elements in the graph.

15. The computer program product according to claim 14 , wherein the generating the graph includes representing two or more of the components other than the memory elements together as nodes in the graph.

16. The computer program product according to claim 14 , further comprising determining a changed placement for one or more of the memory elements in the graph iteratively for a specified set of iterations and generating an interim netlist with all the components based on the changed placement for the one or more of the memory elements, wherein the updating the netlist includes adopting the interim netlist for a last iteration among the specified set of iterations.

17. The computer program product according to claim 13 , further comprising moving the only one memory element iteratively to a new location until the slack values of all of the edges associated with the only one memory element exceed the threshold value, wherein the updating the netlist includes adopting the new location of the only one memory element.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2017
From: KIM, MYUNG-CHUL; METS, ARJEN ALEXANDER; NAM, GI-JOON; RAMJI, SHYAM; REDDY, LAKSHMI N.; SUESS, ALEXANDER J.; TROMBLEY, BENJAMIN; VILLARRUBIA, PAUL G.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 044448/0649 →
Continuity (1)
Related Publication 20190188352A1 · Jun 20, 2019