IP Library Granted Patent US 10,685,164
Granted Patent B1
US 10,685,164 · App. 16/239,310 · Granted Jun 16, 2020

Circuit design routing based on parallel run length rules

Inventors: Yi-Xiao Ding (Austin, TX); Wing-Kai Chow (Austin, TX); Gracieli Posser (Austin, TX); Mehmet Can Yildiz (Austin, TX); Zhuo Li (Austin, TX)
Assignee: Cadence Design Systems, Inc.
G06F30/394G06F2111/04G06F2111/20
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,685,164
App. No.
16/239,310
Granted
Jun 16, 2020
Kind
B1
Abstract

Various embodiments provide for circuit design routing based on parallel run length (PRL) rules. In particular, a plurality of PRL rules is accessed and used to generate a set of additional routing blockages around an existing routing blockage of the circuit design. The additional routing blockages can be positioned relative to the existing routing blockage. During routing, the set of additional routing blockages can be modeled into a capacity map, which is then used by global to generate routing guide(s) between at least two nodes of the circuit design. In doing so, the various embodiments can assist in routing a wire while avoiding violation of the plurality of PRL rules with respect to the existing blockage, can speed up performance of global routing, can make it easier for detailed routing to honor routing guides produced by global routing, and can speed up performance of detailed routing in resolving DRC violations.

Claims (45)

1. A method comprising:

accessing, by a hardware processor, routing blockage data associated with a circuit design, the routing blockage data describing a set of existing routing blockages within the circuit design;

accessing, by the hardware processor, a plurality of parallel run length rules from parallel run length rule data associated with the circuit design;

generating, based on the parallel run length rule data, a set of additional routing blockages associated with a particular routing blockage in the set of existing routing blockages, the set of additional routing blockages comprising:

a first additional routing blockage that is positioned adjacent to a boundary of the particular routing blockage; and

a second additional routing blockage that is positioned adjacent to a boundary of the first additional routing blockage;

generating, based on the set of existing routing blockages and the set of additional routing blockages, a capacity map for the circuit design; and

routing a network of the circuit design based on the capacity map.

2. The method of claim 1 , wherein the routing the network of the circuit design based on the capacity map comprises performing global routing on the circuit design based on the capacity map.

3. The method of claim 2 , further comprising performing detailed routing on the circuit design after the performing the global routing on the circuit design.

4. The method of claim 1 , further comprising performing layer assignment on the circuit design after the routing the network of the circuit design based on the capacity map.

5. The method of claim 1 , further comprising performing track assignment on the circuit design after the routing the network of the circuit design based on the capacity map.

6. The method of claim 1 , wherein the parallel run length rule data comprises a table describing the plurality of parallel run length rules.

7. The method of claim 1 , wherein a third additional routing blockage, in the set of additional routing blockages, is positioned adjacent to a boundary of the first additional routing blockage and is positioned relative to the second additional routing blockage such that routing is permitted within a space between the first and second additional routing blockages.

8. The method of claim 1 , wherein a plurality of additional routing blockages, in the set of additional routing blockages, is positioned adjacent to a perimeter of the particular routing blockage.

9. The method of claim 1 , wherein a parallel run length rule, in the plurality of parallel run length rules, describes a spacing between two parallel wires.

10. A device comprising:

a memory storing instructions; and

a hardware processor communicatively coupled to the memory and configured by the instructions to perform operations comprising:

accessing routing blockage data associated with a circuit design, the routing blockage data describing a set of existing routing blockages within the circuit design;

accessing a plurality of parallel run length rules from parallel run length rule data associated with the circuit design;

generating, based on the parallel run length rule data, a set of additional routing blockages associated with a particular routing blockage in the set of existing routing blockages, the set of additional routing blockages comprising:

a first additional routing blockage that is positioned adjacent to a boundary of the particular routing blockage; and

a second additional routing blockage that is positioned adjacent to a boundary of the first additional routing blockage;

generating, based on the set of existing routing blockages and the set of additional routing blockages, a capacity map for the circuit design; and

performing global routing on the circuit design, the global routing comprising routing a network of the circuit design based on the capacity map.

11. The device of claim 10 , wherein the operations further comprise:

performing detailed routing on the circuit design after the performing global routing on the circuit design.

12. The device of claim 10 , wherein the global routing further comprises:

performing layer assignment on the circuit design after the routing the network of the circuit design based on the capacity map.

13. The device of claim 10 , wherein the global routing further comprises:

performing track assignment on the circuit design after the routing the network of the circuit design based on the capacity map.

14. The device of claim 10 , wherein the parallel run length rule data comprises a table describing the plurality of parallel run length rules.

15. The device of claim 10 , wherein a third additional routing blockage, in the set of additional routing blockages, is positioned adjacent to a boundary of the first additional routing blockage and is positioned relative to the second additional routing blockage such that routing is permitted within a space between the first and second additional routing blockages.

16. The device of claim 10 , wherein a plurality of additional routing blockages, in the set of additional routing blockages, is positioned adjacent to a perimeter of the particular routing blockage.

17. The device of claim 10 , wherein a parallel run length rule, in the plurality of parallel run length rules, describes a spacing between two parallel wires.

18. A non-transitory computer-readable medium comprising instructions that, when executed by a hardware processor of a device, cause the device to perform operations comprising:

accessing a plurality of parallel run length rules from parallel run length rule data associated with the circuit design;

generating, based on the parallel run length rule data, a set of additional routing blockages associated with a particular routing blockage in a set of existing routing blockages within the circuit design;

generating, based on the set of existing routing blockages and the set of additional routing blockages, a capacity map for the circuit design, the set of additional routing blockages comprising:

a first additional routing blockage that is positioned adjacent to a boundary of the particular routing blockage; and

a second additional routing blockage that is positioned adjacent to a boundary of the first additional routing blockage; and

routing a network of the circuit design based on the capacity map.

19. The non-transitory computer-readable medium of claim 18 , wherein a third additional routing blockage, in the set of additional routing blockages, is positioned adjacent to a boundary of the first additional routing blockage and is positioned relative to the second additional routing blockage such that routing is permitted within a space between the first and second additional routing blockages.

20. The non-transitory computer-readable medium of claim 18 , wherein a plurality of additional routing blockages, in the set of additional routing blockages, is positioned adjacent to a perimeter of the particular routing blockage.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 3, 2019
From: DING, YI-XIAO; CHOW, WING-KAI; POSSER, GRACIELI; YILDIZ, MEHMET CAN; LI, ZHUO
To: CADENCE DESIGN SYSTEMS, INC.
Reel/Frame 047895/0685 →
Cited By (1)
US 12,412,020