Claims Analysis
Total Claims: 10
Claim 1
Independent Claim
224 words
A method of revising a multilayer integrated circuit layout in accordance with a specified set of design rules, the steps of the method comprising: receiving data representing said integrated circuit layout, and storing said integrated circuit layout in a database which represents said integrated circuit layout as a set of cells, each cell representing a region of an identified layer of said integrated circuit layout; storing in said database cells representing all empty spaces between non-empty regions of each layer of said integrated circuit layout; storing in said database a representation of each boundary of each cell, each said boundary representation including adjacent cell data indicating which other cell is adjacent said each boundary; for each boundary representation in said database, storing edge data representing said boundary's endpoints, and storing a pointer in said boundary representation to said edge data, wherein the boundary representations of adjacent cells for boundaries that have identical endpoints point to identical edge data in said database; and adjusting, in accordance with a predefined set of design rules, said edge data in said database so as to adjust said cells' positions and sizes; wherein each adjustment of said edge data for one boundary of one cell automatically adjusts a corresponding boundary of said other cell adjacent to said one boundary by way of their shared edge data in said database.
Claim 2
Independent Claim
224 words
A method of revising a multilayer integrated circuit layout in accordance with a specified set of design rules, the steps of the method comprising: receiving data representing said integrated circuit layout, and storing said integrated circuit layout in a database which represents said integrated circuit layout as a set of cells, each cell representing a region of an identified layer of said integrated circuit layout; storing in said database cells representing all empty spaces between non-empty regions of each layer of said integrated circuit layout; storing in said database a representation of each boundary of each cell, each said boundary representation including adjacent cell data indicating which other cell is adjacent said each boundary; for each boundary representation in said database, storing edge data representing said boundary's endpoints, and storing a pointer in said boundary representation to said edge data, wherein the boundary representations of adjacent cells for boundaries that have identical endpoints point to identical edge data in said database; and adjusting, in accordance with a predefined set of design rules, said edge data in said database so as to adjust said cells' positions and sizes; wherein each adjustment of said edge data for one boundary of one cell automatically adjusts a corresponding boundary of said other cell adjacent to said one boundary by way of their shared edge data in said database.
Claim 3
Dependent Claim
108 words
The method of claim 1 wherein said adjusting step includes (A) selecting a cell from said database to process, and identifying said selected cell's top and bottom boundaries; (B) comparing said top and bottom boundaries of said selected cell with those of said predefined design rules that are applicable to the layout layer on which said selected cell is located and moving said top and bottom boundaries as required to meet each of said applicable predefined design rules by assigning move distances to said edge data corresponding to said top and bottom boundaries; and repeating said steps A and B for a sequence of cells in said database.
Claim 4
Dependent Claim
110 words
The method of claim 2 wherein; each said predefined design rule includes a length value; said comparing step includes, whenever required by one of said predefined design rules, tracing a line through a cell adjacent to one of said top and bottom boundaries of said selected cell; and said tracing step includes accessing the cell adjacent to said one boundary of said selected cell using said adjacent cell data in said boundary representation of said one boundary, locating a distal edge on said adjacent cell's boundary, computing the distance between said selected cell's boundary and the located distal edge, and comparing the computed distance with said design rule's length value.
Claim 5
Dependent Claim
32 words
The method of claim 3, wherein said tracing step is repeated recursively on successively adjacent cells in a specified direction until a cell meeting criteria specified by said design rule is located.
Claim 6
Dependent Claim
257 words
A computer aided design system for revising a multilayer integrated circuit layout, comprising: data receiving means for receiving data representing said integrated circuit layout; a design rule dictionary representing a set of design rules; a circuit layout database including: a cell table representing cells, each cell representing a region of an identified layer of said integrated circuit layout, said cell table including cells representing all empty spaces between non-empty regions of each layer of said integrated circuit layout; edge data representing all edges of all said cells in said cell table, said edge data including point data representing each edge's endpoints such that each point which is an edge endpoint of two or more edges is represented by a single, shared point datum; each said point datum representing a point location and a move value indicating movement of an edge's endpoint; adjacent cell data indicating adjacent cell data indicating, for each edge of each cell, which other cell is adjacent said cell at said edge; circuit layout compaction means for adjusting, in accordance with said design rules represented by said design rule dictionary, said point data in said database so as to adjust said cells' positions and sizes; wherein each adjustment of said point data for one edge of one cell automatically adjusts a corresponding edge of said other cell adjacent to said one edge by way of their shared point data in said database; and revised circuit layout generation means for generating a revised circuit layout in accordance with said adjusted point data in said database.
Claim 7
Dependent Claim
257 words
A computer aided design system for revising a multilayer integrated circuit layout, comprising: data receiving means for receiving data representing said integrated circuit layout; a design rule dictionary representing a set of design rules; a circuit layout database including: a cell table representing cells, each cell representing a region of an identified layer of said integrated circuit layout, said cell table including cells representing all empty spaces between non-empty regions of each layer of said integrated circuit layout; edge data representing all edges of all said cells in said cell table, said edge data including point data representing each edge's endpoints such that each point which is an edge endpoint of two or more edges is represented by a single, shared point datum; each said point datum representing a point location and a move value indicating movement of an edge's endpoint; adjacent cell data indicating adjacent cell data indicating, for each edge of each cell, which other cell is adjacent said cell at said edge; circuit layout compaction means for adjusting, in accordance with said design rules represented by said design rule dictionary, said point data in said database so as to adjust said cells' positions and sizes; wherein each adjustment of said point data for one edge of one cell automatically adjusts a corresponding edge of said other cell adjacent to said one edge by way of their shared point data in said database; and revised circuit layout generation means for generating a revised circuit layout in accordance with said adjusted point data in said database.
Claim 8
Dependent Claim
114 words
The computer aided design system of claim 5 wherein said circuit layout compaction means includes: (A) cell selection means for selecting cells from said database to process in a specified sequence, and for identifying each selected cell's top and bottom edges; and (B) design rule application means for comparing said top and bottom edges of each said selected cell with those of said predefined design rules that are applicable to the layout layer on which said each selected cell is located and moving said top and bottom edges as required to meet each of said applicable predefined design rules by assigning move distances to said edge data corresponding to said top and bottom edges.
Claim 9
Dependent Claim
83 words
The computer aided design system of claim 6 wherein; each design rule in said dictionary includes a length value; said design rule application means, whenever required by one of said design rules, locates the cell adjacent to said one edge of said each selected cell using said adjacent cell data, locates a distal edge of said adjacent cell, computes the distance between said selected cell's one edge and the located distal edge, and compares the computed distance with said design rule's length value.
Claim 10
Dependent Claim
34 words
The computer aided design system of claim 7, wherein design rule application means recursively locates successively adjacent cells in a specified direction until a cell meeting criteria specified by said design rule is located.