Filling vacant areas of an integrated circuit design
First Claim
Patent Images
1. A method comprising:
- for a first layer of an integrated circuit design, creating a first rectangle to cover a region of the integrated circuit design;
determining where the first rectangle overlaps a previously drawn second rectangle on the first layer;
using at least one computer processor, oversizing the second rectangle to obtain a third rectangle;
using at least one computer processor, subtracting the third rectangle from the first rectangle to form a fourth rectangle, fifth rectangle, and sixth rectangle, wherein the fourth, fifth, and sixth rectangles each have a smaller area than the first rectangle and the fourth, fifth, and sixth rectangles overlap;
if the sixth rectangle has a smaller width than a first minimum width, discarding the sixth rectangle while keeping the fourth and fifth rectangles;
starting with an edge of the fourth rectangle, growing an island that extends from the edge to a limit line at a second minimum width;
discarding portions of the fourth and fifth rectangles beyond the limit line to obtain a first shape comprising rectangles; and
finding a second shape on a second layer, different from the first layer, that overlaps the first shape.
1 Assignment
0 Petitions
Accused Products
Abstract
Vacant areas of a layer of an integrated circuit design are filled with shapes connected to the appropriate nets.
-
Citations
20 Claims
-
1. A method comprising:
-
for a first layer of an integrated circuit design, creating a first rectangle to cover a region of the integrated circuit design; determining where the first rectangle overlaps a previously drawn second rectangle on the first layer; using at least one computer processor, oversizing the second rectangle to obtain a third rectangle; using at least one computer processor, subtracting the third rectangle from the first rectangle to form a fourth rectangle, fifth rectangle, and sixth rectangle, wherein the fourth, fifth, and sixth rectangles each have a smaller area than the first rectangle and the fourth, fifth, and sixth rectangles overlap; if the sixth rectangle has a smaller width than a first minimum width, discarding the sixth rectangle while keeping the fourth and fifth rectangles; starting with an edge of the fourth rectangle, growing an island that extends from the edge to a limit line at a second minimum width; discarding portions of the fourth and fifth rectangles beyond the limit line to obtain a first shape comprising rectangles; and finding a second shape on a second layer, different from the first layer, that overlaps the first shape. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer program product stored using a nontransitory computer-readable medium, the computer program product comprising:
-
code for, for a first layer of an integrated circuit design, creating a first rectangle to cover a region of the integrated circuit design; code for determining where the first rectangle overlaps a previously drawn second rectangle on the first layer; code for oversizing the second rectangle to obtain a third rectangle; code for subtracting the third rectangle from the first rectangle to form a fourth rectangle, fifth rectangle, and sixth rectangle, wherein the fourth, fifth, and sixth rectangles each have a smaller area than the first rectangle; code for, if the sixth rectangle has a smaller width than a first minimum width, discarding the sixth rectangle while keeping the fourth and fifth rectangles; code for, starting with an edge of the fourth rectangle, growing an island that extends from the edge to a limit line at a second minimum width; code for discarding portions of the fourth and fifth rectangles beyond the limit line to obtain a first shape comprising rectangles; and code for finding a second shape on a second layer, different from the first layer, that overlaps the first shape. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification