IP Library Granted Patent US 9,256,706
Granted Patent B2
US 9,256,706 · App. 14/476,320 · Granted Feb 9, 2016

Knowledge-based analog layout generator

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 9,256,706
App. No.
14/476,320
Granted
Feb 9, 2016
Kind
B2
Abstract

A computer-implemented method for generating a layout of a design includes invoking the computer to receive a schematic representation of the design, generating a connection graph associated with the design, comparing the connection graph with a plurality of connection graphs stored in a database and selecting a layout associated with the matching connection graph in generating the layout of the design.

Claims (140)

1. A computer-implemented method for generating a layout of a design, the method comprising:

invoking the computer to receive a schematic representation of the design, the schematic representation comprising a plurality of devices and associated terminals coupled to one another by a plurality of nets;

generating a connection graph associated with the schematic representation of the design via the computer, said generating the connection graph comprising:

calculating interconnection codes between pairs of devices;

converting the devices and nets connecting the terminals to respective nodes and edges; and

associating the interconnection codes to the edges of the connection graph;

comparing the connection graph to a plurality of connection graphs stored in a database to identify a match via the computer; and

selecting a layout associated with the matching connection graph in generating the layout of the design via the computer.

2. The method of claim 1 , further comprising:

migrating the generated layout to a new technology;

verifying the migrated layout; and

updating the database with the verified layout.

3. The method of claim 1 , wherein an interconnection code between a pair of devices is a sum of values of terminal connection indices between the terminal of the pair of devices.

4. The method of claim 3 , wherein the values of the terminal connection indices are powers of 2.

5. The method of claim 1 wherein generating the connection graph further comprises:

extracting symmetry and proximity constraints from the existing design;

and annotating the symmetry and proximity constraints in the connection graph.

6. The method of claim 5 , wherein generating the connection graph further comprises: tagging device types on the nodes of the connection graph.

7. The method of claim 6 , wherein generating the connection graph further comprises:

annotating attributes associated with noises, power consumption, or speed to the nodes of the connection graph.

8. The method of claim 7 , wherein comparing the connection graph associated with the design to the plurality of connection graphs stored in the database comprises:

selecting a connection graph of the plurality of connection graphs stored in the database;

selecting a first node in the connection graph stored in the database and a first node in the connection graph associated with the design, the first node in the connection graph stored in the database and the first node in the connection graph associated with the design being a same device type;

comparing the interconnection codes associated with the respective first nodes;

in the event that the first interconnection codes are equal, identifying the first node in the connection graph stored in the database as a first design pattern; and

adding the first design pattern to a set of design patterns.

9. The method of claim 8 , wherein comparing the connection graph further comprises:

selecting a second node in the connection graph stored in the database and a second node in the connection graph associated with the design, the second node in the connection graph stored in the database and the second node in the connection graph associated with the design being a same device type;

comparing the interconnection codes associated with the respective second nodes; in the event that the second interconnection codes are equal, identifying the second node in the connection graph stored in the database as a second design pattern;

adding the second design pattern to the set of design patterns; and

repeating the above steps for all nodes in all of the connection graphs stored in the database and in the connection graph associated with the design.

10. The method of claim 9 , wherein comparing the connection graph further comprises:

transforming the second interconnection codes to corresponding terminal connection indices; and

deriving a set of terminal connections associated with a node by mapping each terminal connection index to a corresponding terminal connection.

11. The method of claim 9 , wherein comparing the connection graph further comprises:

reducing the set of design patterns to a set of vertices representing design patterns common to the existing connection graph and the target connection graph;

generating a pattern graph from the set of vertices;

dividing the pattern graph into a plurality of groups each having a maximal independent set of vertices;

hierarchically merging two of the groups while maintaining a maximum reusability of a legacy layout;

repeating the hierarchically merging until a single group is obtained to generate the layout of the design.

12. The method of claim 11 , wherein reducing the set of design patterns to the set of vertices comprises:

in the event that the set of vertices comprises two vertices having no interconnection, eliminating one of the two vertices that has a lower reusability index.

13. The method of claim 11 , reducing the set of design patterns to the set of vertices further comprises, in the event that the single group comprises a plurality of vertices:

selecting the one having the highest reusability index as the target layout.

14. The method of claim 13 , further comprising:

migrating the layout to a target technology;

verifying the migrated layout; and

storing the verified layout and associated schematics/netlists in the database.

15. A non-transitory computer readable storage medium comprising instructions which when executed by a processor cause the processor to:

receive a schematic representation of the design in one or more computer readable media, the schematic representation comprising a plurality of devices and associated terminals coupled to one another by a plurality of nets;

generate a connection graph associated with the schematic representation of the design, the instructions for generating the connection graph causing the processor to:

calculate interconnection codes between pairs of devices;

convert the devices and nets connecting the terminals to respective nodes and edges; and

associate the interconnection codes to the edges of the connection graph;

compare the connection graph to a plurality of connection graphs stored in a database to identify a match; and

select a layout associated with the matching connection graph in generating the layout of the design.

16. The computer readable storage medium of claim 15 , wherein the instructions further cause the processor to:

migrate the identified pattern to a new technology;

verify the migrated pattern; and

update the database with the verified pattern.

17. The computer readable storage medium of claim 15 , wherein an interconnection code between a pair of devices is a sum of values of terminal connection indices between the terminals of the pair of device.

18. The computer readable storage medium of claim 17 , wherein the values of the terminal connection indices are powers of 2.

19. The computer readable storage medium of claim 15 , wherein the instructions causing the processor to generate the connection graph further causing the processor to:

extract symmetry and proximity constraints from the existing design;

annotate the symmetry and proximity constraints in the connection graph.

20. The computer readable storage medium of claim 19 , wherein the instructions causing the processor to generate the connection graph further causing the processor to:

tag device types on the nodes.

21. The computer readable storage medium of claim 20 , wherein the instructions causing the processor to compare the connection graph further causing the processor to:

select a connection graph of the connection graphs stored in the database;

select a first node in the connection graph stored in the database and a first node in the connection graph associated with the design, the first node in the connection graph stored in the database and the first node in the connection graph associated with the design being a same device type;

compare the interconnection codes associated with the respective first nodes;

in the event that the first interconnection codes are equal, identify the first node in the connection graph stored in the database as a first design pattern; and add the first design pattern to a set of design patterns.

22. The computer readable storage medium of claim 21 , wherein the instructions causing the processor to compare the connection graph further causing the processor to:

select a second node in the connection graph stored in the database and a second node in the connection graph associated with the design, the second node in the connection graph stored in the database and the second node in the connection graph associated with the design being a same device type;

compare the interconnection codes associated with the respective second nodes;

in the event that the second interconnection codes are equal, identify the second node in the connection graph stored in the database as a second design pattern;

add the second design pattern to the set of design patterns; and

repeat the above steps for all nodes in all of the connection graphs stored in the database and in the connection graph associated with the design.

23. The computer readable storage medium of claim 22 , wherein the instructions causing the processor to compare the connection graph further causing the processor to:

transform the second interconnection codes to corresponding terminal connection indices; and

derive a set of terminal connections associated with a node by mapping each terminal connection index to a corresponding terminal connection.

24. The computer readable storage medium of claim 22 , wherein the instructions causing the processor to compare the connection graph further causing the processor to:

reduce the set of design patterns to a set of vertices representing design patterns common to the existing connection graph and the target connection graph;

generate a pattern graph from the set of vertices;

divide the pattern graph into a plurality of groups each having a maximal independent set of vertices;

hierarchically merge two of the groups while maintaining a maximum reusability of a legacy layout;

repeat the hierarchically merging until a single group is obtained to generate the layout of the design.

25. The computer readable storage medium of claim 22 , wherein reduce the set of design patterns to the set of vertices comprises:

in the event that the set of vertices comprises two vertices having no interconnection, eliminate one of the two vertices that has a lower reusability index.

26. The computer readable storage medium of claim 22 , wherein the instructions causing the processor to compare the connection graph further causing the processor to:

select the one having the highest reusability index as the layout;

migrate the layout to a new technology;

verify the migrated layout; and

store the verified layout and associated schematics/netlists in the database.

27. A computer system configured to:

receive a schematic representation of the design, the schematic representation comprising a plurality of devices and associated terminals coupled to one other by a plurality of nets;

generate a connection graph associated with the schematic representation of the design by;

calculating interconnection codes between pairs of devices;

converting the devices and nets connecting the terminals to respective nodes and edges; and

associating the interconnection codes to the edges of the connection graph;

compare the connection graph to the plurality of connection graphs stored in the database to identify a match; and

select a layout associated with the matching connection graph in generating the layout of the design.

28. The system of claim 27 , wherein the system is further configured to:

migrate the identified pattern to a new technology;

verify the migrated pattern; and

update the database with the verified pattern.

29. The system of claim 27 , wherein an interconnection code between a pair of devices is a sum of values of terminal connection indeices between the terminals of the pair of devices.

30. The system of claim 29 wherein the values of the terminal connection indices are powers of 2.

31. The system of claim 27 , wherein the system is further configured to:

extract symmetry and proximity constraints from the existing design;

annotate the symmetry and proximity constraints in the connection graph.

32. The system of claim 31 , wherein the system is further configured to:

tag device types on the nodes.

33. The system of claim 32 , wherein the system is further configured to:

select a connection graph in the plurality of connection graphs stored in the database;

select a first node in the selected connection graph and a first node in the connection graph associated with the database, the first node in the selected connection graph and the first node in the connection graph associated with the design being a same device type;

compare the interconnection codes associated with the respective first nodes;

in the event that the first interconnection codes are equal, identify the first node in the selected connection graph as a first design pattern; and

add the first design pattern to a set of design patterns.

34. The system of claim 33 , wherein the system is further configured to:

select a second node in the selected connection graph and a second node in the connection graph associated with the design, the second node in the selected connection graph and the second node in the connection graph associated with the design being a same device type;

compare the interconnection codes associated with the respective second nodes;

in the event that the second interconnection codes are equal, identify the second node in the selected connection graph as a second design pattern;

add the second design pattern to the set of design patterns; and

repeat the above steps for all nodes in all of the connection graphs stored in the database and in the connection graph associated with the design.

35. The system of claim 34 , wherein the system is further configured to:

transform the second interconnection codes to corresponding terminal connection indices; and

derive a set of terminal connections associated with a node by mapping each terminal connection index to a corresponding terminal connection.

36. The system of claim 34 , wherein the system is further configured to:

reduce the set of design patterns to a set of vertices representing design patterns common to the existing connection graph and the target connection graph;

generate a pattern graph from the set of vertices;

divide the pattern graph into a plurality of groups each having a maximal independent set of vertices;

hierarchically merge two of the groups while maintaining a maximum reusability of a legacy layout;

repeat the hierarchically merging until a single group is obtained to generate the layout of the design.

37. The system of claim 34 , wherein the system is further configured to:

in the event that the set of vertices comprises two vertices having no interconnection, eliminate one of the two vertices that has a lower reusability index.

38. The system of claim 33 , wherein the system is further configured to:

select the one having the highest reusability index as the layout of the design; migrate the layout of the design to a new technology;

verify the migrated layout; and

store the verified layout and associated schematics/netlists in the database.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2016
From: SYNOPSYS TAIWAN CO., LTD.
To: SYNOPSYS, INC.
Reel/Frame 038320/0364 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 16, 2014
From: CHEN, TUNG-CHIEH; WU, PO-HSUN; LIN, PO-HUNG; HO, TSUNG-YI
To: SYNOPSYS TAIWAN CO., LTD.
Reel/Frame 033752/0754 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 11, 2014
From: CHEN, TUNG-CHIEH; WU, PO-HSUN; LIN, PO-HUNG; HO, TSUNG-YI
To: SYNOPSYS TAIWAN CO., LTD.; SYNOPSYS, INC.
Reel/Frame 033723/0325 →