US20040117751A1 - Estimating free space in ic chips - Google Patents
Estimating free space in ic chips Download PDFInfo
- Publication number
- US20040117751A1 US20040117751A1 US10/316,594 US31659402A US2004117751A1 US 20040117751 A1 US20040117751 A1 US 20040117751A1 US 31659402 A US31659402 A US 31659402A US 2004117751 A1 US2004117751 A1 US 2004117751A1
- Authority
- US
- United States
- Prior art keywords
- space
- node
- free
- readable program
- computer readable
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
Definitions
- This invention relates to integrated circuit (IC) fabrication, and particularly to estimating free space in a routed design of an IC chip.
- Chip fabrication processes often require a uniform distribution of metal or polysilicon on layers of a chip.
- Metal wires and polysilicon features on a layer in a routed chip design are often concentrated in groups, leaving spaces on the layer. Consequently, material filling is a post-routing step in the chip design that requires that some of the unoccupied free space in the design be filled with “dummy” material to ensure a uniform distribution of the material over the layer.
- the distribution of dummy material requires identifying and storing representations of free space in the design.
- identification of free space on a layer of a routed IC design was accomplished by a grid-subtraction algorithm, which removed a grid location from a space if the grid location intersects a database object.
- a uniform x-y grid of a layer of the routed design was created.
- Each grid cell was initially assumed to be a free-space cell representing a possible location for adding dummy metal.
- a database is created during chip design process, which defines polygons representing metal wires, pins, vias, etc. in the layout.
- the grid-subtraction algorithm operates on the polygons in the database to delete each free-space cell that intersects with a database polygon. Selection of the actual shape and location for metal filling is then determined from the grid coordinates of the free-space cells and the routed design.
- One disadvantage of the grid-subtraction algorithm is that it is computationally intensive. More particularly, the uniform size of the grid cells usually resulted in numerous contiguous free-space grid cells. Contiguous cells could be merged, but merging is a computationally intensive operation. Alternatively, the plural contiguous free-space cells could be processed as individual cells, but that resulted in extensively long GDS2 files for the layout. Long GDS2 files require computationally intensive filling and design checking operations, and subsequent checking and fabrication operations are less efficient. Accordingly, there is a need for a process and apparatus for estimating free space on layers of a routed IC design that is more efficient and less computationally intensive and that is useful with polysilicon layers as well as metal layers.
- a first embodiment of the invention is a process for estimating free space on a layer of a routed integrated circuit design.
- a hierarchical search tree such as a quadtree or octree, contains nodes defining respective rectangular spaces on the layer of the design and polygons representing free space within the respective rectangular space. Feature polygons representing occupied space within the rectangular space are subtracted from the free space polygon in the tree node. The free spaces are summed to estimate the free space on the layer.
- a database defines the feature polygons on the layer.
- a first node is created in the search tree defining a rectangular space of the layer. Initially the free space polygon in the node is set equal to the rectangular space.
- Feature polygons from the database are considered sequentially such that if a polygon intersects a node of the tree, its definition is subtracted from the free space polygon defined by the node.
- a cost factor is identified for the node, and the process is repeated with additional polygons until either the cost factor exceeds a predetermined maximum value or no further polygons exist in the database.
- the node if the cost factor for a node exceeds the predetermined value, the node is fractured into child nodes, each defining a rectangular space that is a respective portion of the parent rectangular space.
- the tree recursively divides the rectangular space into quadrants, and the polygon definitions in the parent node are assigned to respective child nodes. The process is repeated for each child node until either the cost factor for each node is not greater than the predetermined maximum value or a dimension of the rectangular space of the child node reaches a predetermined minimum value.
- a second embodiment of the invention is a computer readable program containing computer readable code that causes a computer to define a hierarchical search tree and carry out the processes of the invention on a database or file defining at least a layer of the routed integrated circuit chip.
- FIG. 1 is a flow chart of a process of estimating free space on layers of a routed IC design in accordance with the presently preferred embodiment of the present invention.
- FIG. 2 illustrates the operation of the process illustrated in FIG. 1 on an IC layer layout.
- the present invention is directed to finding free space on metal and polysilicon layers in a fully routed chip design. While the invention is useful for either (or both) metal and polysilicon layers, it will be described in connection with a metal layer, such as for a process to find free space as candidates for metal filling. Those skilled in the art will recognize that the invention is equally applicable to polysilicon layers to find free space as candidates for polysilicon filling.
- Each metal layer of a fully routed IC design can be considered as containing hundreds or even thousands of rectangular polygons of metal representing wires, pins, vias, etc. Free space on the metal layer is composed of that space not occupied by these polygons.
- the present invention is directed to estimating the free space in the design.
- the present invention employs a data structure in the form of an expanding quadtree.
- a node of the tree corresponds to a rectangular space, defining a layer or a portion of a layer of the chip design. Initially, the entire space represented by the node is considered a free space.
- Polygons representing occupied space on the layer and which intersect the node are removed from the free space in the node.
- the free space of the layer is identified from the sum of the remaining rectangular spaces defined by the nodes.
- a quadtree is a well-known hierarchical data structure, often used in image data compression.
- the data structure in the form of nodes of the quadtree, corresponds to a rectangular area which may be subdivided or fractured into four child nodes, each corresponding to a quadrant of the parent node's rectangle.
- Each node includes data concerning the rectangle to which the node corresponds and identification of polygons that correspond to free space remaining within the rectangle.
- the node data includes (i) a Bbox, which represents a bounding box rectangle (the rectangle to which the node corresponds), (ii) a Plist, which is a list of polygons representing free space within the node, and (iii) a computational cost factor, C.
- FIG. 1 is a flowchart illustrating the process of estimating free space on a layer of an IC design.
- FIG. 2 illustrates images represented by data in nodes of an expanding quadtree during execution of the process of FIG. 1.
- the expanding quadtree is a hierarchical search tree implementing the data tracking structure of the present invention.
- the process begins at step 100 in FIG. 1 with a database containing a description of the fully routed IC design.
- an expanding quadtree is created for the layer and is initialized with a single node containing the Bbox defining the bounding box rectangle equal to the size of the entire layer.
- the same rectangle is also inserted into the list of free-space polygons, Plist of the node.
- This data is symbolized in FIG. 2 as rectangle 200 representing the area of the entire layer under consideration.
- the cost factor, C is initialized to zero.
- the design database 100 is queried for a feature polygon in the design.
- the polygon defines metal features (wires, vias, pins, etc.) occupying some rectangular space on the layer. If, at step 106 , a feature polygon exists, then at step 108 the quadtree is searched to identify each node with which the polygon intersects.
- the polygon in the database is subtracted from the polygons in the Plist for each of the intersecting nodes. More particularly, each free-space polygon of each intersecting node is checked for intersection with the feature polygon from database 100 . If an intersection exists, the free-space polygon in the Plist is removed and replaced with one or more polygons resulting from the subtraction of the database polygon from the Plist polygon.
- polygon 200 representing that the entire layer is free space.
- a feature polygon 202 is found in the database and it intersects free-space polygon 200 . Therefore, polygon 200 is removed from the Plist and replaced with free-space polygon 204 , which contains additional vertices that represent the subtraction of polygon 202 from polygon 200 .
- step 110 the feature polygon found in the design is checked for intersection with each rectangle in the Plist and is subtracted from the rectangle(s) with which it intersects. Initially, there is one node in the quad-tree, and it contains one rectangle in its Plist, namely the bounding box of the design. Since the first polygon found in the design database intersects with this rectangle, it is subtracted from the rectangle, and the rectangle is replaced by the polygon resulting from the subtraction. As the process iterates, this procedure is repeated for more feature polygons in the database, with each subtraction increasing the complexity (number of vertices) of the free-space polygon(s) remaining in the Plist.
- the free-space polygon(s) 200 (FIG. 2) in the Plist may become replaced by a free-space identifying polygon 206 containing multiple vertices representing several database polygons 202 a , 202 b.
- the cost factor of the node captures this computational cost:
- Nav is the average number of vertices per polygon in the list
- Klist is a constant representing the cost of list traversal per member
- Llist is the length of the list
- the Function is based on the algorithm used for the polygon subtraction operation.
- the value of the cost factor C is updated at step 112 after each successive polygon in the design has been subtracted. Each subtraction operation may increase the number of vertices, thereby increasing Nav, and/or the length of the list, Llist. Consequently, the value the cost factor, C, may increase with each subtraction operation.
- the calculated value of cost factor, C is compared to a predetermined, user-defined critical cost factor, Ccrit. If C is greater than Ccrit, the size of the bounding box defined by the Bbox is compared to a predetermined, user-defined minimum dimension box, Dmin. If, at step 116 Bbox>Dmin, the node is fractured into four child nodes at step 118 .
- the Bbox in each child node is set to the rectangle of one of the four equal-sized quadrants of the Bbox in the parent node.
- each polygon in the Plist in the parent node is assigned to a child node's Plist based on the quadrant within which the polygon falls.
- free-space polygon 206 in FIG. 2 is fractured into four child nodes containing Plists defining free-space polygons 208 , 210 , 212 and 214 .
- Definitions of feature polygons 202 in polygon 206 in the parent node are assigned to the child node polygons based on the quadrant within which the feature falls.
- feature polygon 202 a from polygon 206 is placed in polygon 214 in the child node because feature polygon 202 a is in the quadrant of polygon 206 corresponding to the child node containing polygon 214 .
- each child node Bbox matches one of the four quadrants of the parent node rectangle, and its Plist contains the polygons defining the free space within the Bbox of the node.
- step 122 the cost factor C of each child node is computed.
- the process loops back to step 114 for the child nodes so that if any child node has a cost factor C greater than Ccrit, the fracture process is repeated through steps 116 - 122 on the child node.
- the child node containing a Plist defining polygon 214 is fractured into grandchild nodes containing Plists defining polygons 216 , 218 , 220 and 222 .
- the process is recursively followed until either the value of C for all nodes drops to below Ccrit, or the Bbox of the node has reached the predetermined minimum value, Dmin.
- the process then loops back to step 104 to select another polygon from the database.
- the leaf nodes (those nodes having no child nodes) whose Bboxes intersect with the polygon are found using the regular quad-tree search algorithm, and the feature polygon is then subtracted from the rectangles in the Plists of the intersecting node in the manner explained in connection with steps 106 - 122 .
- the process continues from step 106 to step 124 .
- the remaining polygons in the Plist in each leaf node represent the free space for the rectangle of the node's Bbox.
- the Plists of all leaf nodes are summed to define all of the free space in the layer.
- the process may then be repeated for each remaining metal layer, as well as for each polysilicon layer of the chip layout. It is preferred, however, that a hierarchical tree be constructed for each layer for which free space is to be located and that the database polygons are processed in the hierarchical trees for all affected layers of the design in parallel. The preferred technique permits a single pass through the database to identify all free space on affected layers.
- the grid-subtraction technique previously used to identify and fill free space on an IC layer used uniform-sized grid blocks to identify whether or not the block was free space. If a feature in the design database intersected only a part of a grid block, the entire grid block was identified as “occupied”. As a result, free space within a grid block identified as “occupied” was not available for metal or polysilicon filling. While the resolution of the grid layout for the grid-subtraction technique might be increased to reduce the amount of free space falsely identified as occupied, the increased resolution also increased the amount of merging that might be required for filling purposes, and/or the length of the GSD2 file.
- the polygon subtraction technique of the present invention permits identification of maximal-sized free-space polygons meeting user-defined cost factors.
- the invention will create child nodes to define free space in small regions of a layer containing high concentrations of features, whereas other nodes define free space in large sparsely populated regions.
- the region defined by a node is dependent on the complexity of features in the region, not the size of the region.
- GSD2 file length is minimized.
- the invention minimizes merging, minimizing computational costs by dividing nodes. Consequently, the time required to identify free space on a chip using a tool operating in accordance with the present invention is significantly reduced over that required by grid-subtraction algorithms requiring merging of cells, and the length of a GDS2 file for a chip processed in accordance with the present invention is significantly shorter than that for a chip processed using a grid-subtraction algorithm that does not merge cells.
- the present invention provides a technique for estimating free space on a routed IC chip, which is more efficient and is less computational than prior tools. Additionally, the technique according to the present invention operates on polysilicon layers as well as metal layers, allowing for uniform distribution of both metal and polysilicon on respective layers of the chip.
- a computer readable program on a computer memory such as a hard disk of a computer system, contains computer readable code that causes a computer to define the expanding hierarchical tree, such as a quadtree, octree, or the like, and to perform the processes herein described.
Abstract
Description
- This invention relates to integrated circuit (IC) fabrication, and particularly to estimating free space in a routed design of an IC chip.
- Chip fabrication processes often require a uniform distribution of metal or polysilicon on layers of a chip. Metal wires and polysilicon features on a layer in a routed chip design are often concentrated in groups, leaving spaces on the layer. Consequently, material filling is a post-routing step in the chip design that requires that some of the unoccupied free space in the design be filled with “dummy” material to ensure a uniform distribution of the material over the layer. The distribution of dummy material requires identifying and storing representations of free space in the design.
- Prior to the present invention, identification of free space on a layer of a routed IC design was accomplished by a grid-subtraction algorithm, which removed a grid location from a space if the grid location intersects a database object. Using the grid-subtraction algorithm, a uniform x-y grid of a layer of the routed design was created. Each grid cell was initially assumed to be a free-space cell representing a possible location for adding dummy metal. A database is created during chip design process, which defines polygons representing metal wires, pins, vias, etc. in the layout. The grid-subtraction algorithm operates on the polygons in the database to delete each free-space cell that intersects with a database polygon. Selection of the actual shape and location for metal filling is then determined from the grid coordinates of the free-space cells and the routed design.
- One disadvantage of the grid-subtraction algorithm is that it is computationally intensive. More particularly, the uniform size of the grid cells usually resulted in numerous contiguous free-space grid cells. Contiguous cells could be merged, but merging is a computationally intensive operation. Alternatively, the plural contiguous free-space cells could be processed as individual cells, but that resulted in extensively long GDS2 files for the layout. Long GDS2 files require computationally intensive filling and design checking operations, and subsequent checking and fabrication operations are less efficient. Accordingly, there is a need for a process and apparatus for estimating free space on layers of a routed IC design that is more efficient and less computationally intensive and that is useful with polysilicon layers as well as metal layers.
- A first embodiment of the invention is a process for estimating free space on a layer of a routed integrated circuit design. A hierarchical search tree, such as a quadtree or octree, contains nodes defining respective rectangular spaces on the layer of the design and polygons representing free space within the respective rectangular space. Feature polygons representing occupied space within the rectangular space are subtracted from the free space polygon in the tree node. The free spaces are summed to estimate the free space on the layer.
- In some embodiments, a database defines the feature polygons on the layer. A first node is created in the search tree defining a rectangular space of the layer. Initially the free space polygon in the node is set equal to the rectangular space. Feature polygons from the database are considered sequentially such that if a polygon intersects a node of the tree, its definition is subtracted from the free space polygon defined by the node. A cost factor is identified for the node, and the process is repeated with additional polygons until either the cost factor exceeds a predetermined maximum value or no further polygons exist in the database.
- In some embodiments, if the cost factor for a node exceeds the predetermined value, the node is fractured into child nodes, each defining a rectangular space that is a respective portion of the parent rectangular space. The tree recursively divides the rectangular space into quadrants, and the polygon definitions in the parent node are assigned to respective child nodes. The process is repeated for each child node until either the cost factor for each node is not greater than the predetermined maximum value or a dimension of the rectangular space of the child node reaches a predetermined minimum value.
- A second embodiment of the invention is a computer readable program containing computer readable code that causes a computer to define a hierarchical search tree and carry out the processes of the invention on a database or file defining at least a layer of the routed integrated circuit chip.
- FIG. 1 is a flow chart of a process of estimating free space on layers of a routed IC design in accordance with the presently preferred embodiment of the present invention.
- FIG. 2 illustrates the operation of the process illustrated in FIG. 1 on an IC layer layout.
- The present invention is directed to finding free space on metal and polysilicon layers in a fully routed chip design. While the invention is useful for either (or both) metal and polysilicon layers, it will be described in connection with a metal layer, such as for a process to find free space as candidates for metal filling. Those skilled in the art will recognize that the invention is equally applicable to polysilicon layers to find free space as candidates for polysilicon filling.
- Each metal layer of a fully routed IC design can be considered as containing hundreds or even thousands of rectangular polygons of metal representing wires, pins, vias, etc. Free space on the metal layer is composed of that space not occupied by these polygons. The present invention is directed to estimating the free space in the design. Broadly, the present invention employs a data structure in the form of an expanding quadtree. A node of the tree corresponds to a rectangular space, defining a layer or a portion of a layer of the chip design. Initially, the entire space represented by the node is considered a free space. Polygons representing occupied space on the layer and which intersect the node are removed from the free space in the node. The free space of the layer is identified from the sum of the remaining rectangular spaces defined by the nodes.
- A quadtree is a well-known hierarchical data structure, often used in image data compression. In the present invention, the data structure, in the form of nodes of the quadtree, corresponds to a rectangular area which may be subdivided or fractured into four child nodes, each corresponding to a quadrant of the parent node's rectangle. Each node includes data concerning the rectangle to which the node corresponds and identification of polygons that correspond to free space remaining within the rectangle. More particularly, the node data includes (i) a Bbox, which represents a bounding box rectangle (the rectangle to which the node corresponds), (ii) a Plist, which is a list of polygons representing free space within the node, and (iii) a computational cost factor, C.
- FIG. 1 is a flowchart illustrating the process of estimating free space on a layer of an IC design. FIG. 2 illustrates images represented by data in nodes of an expanding quadtree during execution of the process of FIG. 1. The expanding quadtree is a hierarchical search tree implementing the data tracking structure of the present invention. The process begins at
step 100 in FIG. 1 with a database containing a description of the fully routed IC design. Atstep 102, an expanding quadtree is created for the layer and is initialized with a single node containing the Bbox defining the bounding box rectangle equal to the size of the entire layer. The same rectangle is also inserted into the list of free-space polygons, Plist of the node. This data is symbolized in FIG. 2 asrectangle 200 representing the area of the entire layer under consideration. The cost factor, C, is initialized to zero. - At
step 104, thedesign database 100 is queried for a feature polygon in the design. The polygon defines metal features (wires, vias, pins, etc.) occupying some rectangular space on the layer. If, atstep 106, a feature polygon exists, then atstep 108 the quadtree is searched to identify each node with which the polygon intersects. Atstep 110, the polygon in the database is subtracted from the polygons in the Plist for each of the intersecting nodes. More particularly, each free-space polygon of each intersecting node is checked for intersection with the feature polygon fromdatabase 100. If an intersection exists, the free-space polygon in the Plist is removed and replaced with one or more polygons resulting from the subtraction of the database polygon from the Plist polygon. - In FIG. 2, initially there is only one node and its Plist contains only polygon200 representing that the entire layer is free space. A
feature polygon 202 is found in the database and it intersects free-space polygon 200. Therefore,polygon 200 is removed from the Plist and replaced with free-space polygon 204, which contains additional vertices that represent the subtraction ofpolygon 202 frompolygon 200. - In the execution of
step 110, the feature polygon found in the design is checked for intersection with each rectangle in the Plist and is subtracted from the rectangle(s) with which it intersects. Initially, there is one node in the quad-tree, and it contains one rectangle in its Plist, namely the bounding box of the design. Since the first polygon found in the design database intersects with this rectangle, it is subtracted from the rectangle, and the rectangle is replaced by the polygon resulting from the subtraction. As the process iterates, this procedure is repeated for more feature polygons in the database, with each subtraction increasing the complexity (number of vertices) of the free-space polygon(s) remaining in the Plist. After processing a several feature polygons from the database, the free-space polygon(s) 200 (FIG. 2) in the Plist may become replaced by a free-space identifying polygon 206 containing multiple vertices representingseveral database polygons - At
step 112, the computational cost factor, C, of processing a polygon fromdatabase 100 is updated. Initially, C=0. There are two principal factors that contribute to the computational cost of processing a polygon from the design database at a node, namely, (i) the complexity of the polygon(s) in the Plist, and ii) the length of the Plist. The cost factor of the node captures this computational cost: - C=(Function(Nav)+Klist)*Llist,
- where Nav is the average number of vertices per polygon in the list, Klist is a constant representing the cost of list traversal per member, Llist is the length of the list and the Function is based on the algorithm used for the polygon subtraction operation. The value of the cost factor C is updated at
step 112 after each successive polygon in the design has been subtracted. Each subtraction operation may increase the number of vertices, thereby increasing Nav, and/or the length of the list, Llist. Consequently, the value the cost factor, C, may increase with each subtraction operation. - At
step 114, the calculated value of cost factor, C, is compared to a predetermined, user-defined critical cost factor, Ccrit. If C is greater than Ccrit, the size of the bounding box defined by the Bbox is compared to a predetermined, user-defined minimum dimension box, Dmin. If, atstep 116 Bbox>Dmin, the node is fractured into four child nodes atstep 118. The Bbox in each child node is set to the rectangle of one of the four equal-sized quadrants of the Bbox in the parent node. Atstep 120, each polygon in the Plist in the parent node is assigned to a child node's Plist based on the quadrant within which the polygon falls. - For example, free-
space polygon 206 in FIG. 2 is fractured into four child nodes containing Plists defining free-space polygons feature polygons 202 inpolygon 206 in the parent node are assigned to the child node polygons based on the quadrant within which the feature falls. Thus,feature polygon 202 a frompolygon 206 is placed inpolygon 214 in the child node becausefeature polygon 202 a is in the quadrant ofpolygon 206 corresponding to the childnode containing polygon 214. - In the case of a feature polygon extending over two or more child node rectangles, such as
feature polygon 202 d, the polygon inparent node 200 is fractured along edges of the quadrant and the resultingpolygons respective portions 202 d-1 and 202 d-2 offeature 202 d. Thus, each child node Bbox matches one of the four quadrants of the parent node rectangle, and its Plist contains the polygons defining the free space within the Bbox of the node. - At
step 122, the cost factor C of each child node is computed. The process loops back to step 114 for the child nodes so that if any child node has a cost factor C greater than Ccrit, the fracture process is repeated through steps 116-122 on the child node. Thus, in FIG. 2, the child node containing aPlist defining polygon 214 is fractured into grandchild nodes containingPlists defining polygons - When the next feature polygon from the design database is to be processed, the leaf nodes (those nodes having no child nodes) whose Bboxes intersect with the polygon are found using the regular quad-tree search algorithm, and the feature polygon is then subtracted from the rectangles in the Plists of the intersecting node in the manner explained in connection with steps106-122. When every polygon in the database for the layer has been processed, the process continues from
step 106 to step 124. The remaining polygons in the Plist in each leaf node represent the free space for the rectangle of the node's Bbox. Atstep 124, the Plists of all leaf nodes are summed to define all of the free space in the layer. - In some embodiments, the process may then be repeated for each remaining metal layer, as well as for each polysilicon layer of the chip layout. It is preferred, however, that a hierarchical tree be constructed for each layer for which free space is to be located and that the database polygons are processed in the hierarchical trees for all affected layers of the design in parallel. The preferred technique permits a single pass through the database to identify all free space on affected layers.
- While the invention has been described in connection with a 2-dimensional space, an analogous approach can be used for a 3-dimensional space. Instead of flat 2-dimensional polygons, the process would use representations of 3-dimensional solids, and each fracture would break the solid into a number of simpler solids using an expanding tree that is fractionable into a plurality of simple 3-dimensional parts. For example, an octree, or the like, could be used to fracture the solid into eight 3-dimensional simple parts. The number of simpler parts into which a given 3-dimensional node might be fractured may be any selected number based on the lengths of the sides of the parts and the complexity of the tree.
- The grid-subtraction technique previously used to identify and fill free space on an IC layer used uniform-sized grid blocks to identify whether or not the block was free space. If a feature in the design database intersected only a part of a grid block, the entire grid block was identified as “occupied”. As a result, free space within a grid block identified as “occupied” was not available for metal or polysilicon filling. While the resolution of the grid layout for the grid-subtraction technique might be increased to reduce the amount of free space falsely identified as occupied, the increased resolution also increased the amount of merging that might be required for filling purposes, and/or the length of the GSD2 file. The polygon subtraction technique of the present invention permits identification of maximal-sized free-space polygons meeting user-defined cost factors. Thus, the invention will create child nodes to define free space in small regions of a layer containing high concentrations of features, whereas other nodes define free space in large sparsely populated regions. Thus, the region defined by a node is dependent on the complexity of features in the region, not the size of the region.
- With the present invention, GSD2 file length is minimized. The invention minimizes merging, minimizing computational costs by dividing nodes. Consequently, the time required to identify free space on a chip using a tool operating in accordance with the present invention is significantly reduced over that required by grid-subtraction algorithms requiring merging of cells, and the length of a GDS2 file for a chip processed in accordance with the present invention is significantly shorter than that for a chip processed using a grid-subtraction algorithm that does not merge cells.
- The present invention provides a technique for estimating free space on a routed IC chip, which is more efficient and is less computational than prior tools. Additionally, the technique according to the present invention operates on polysilicon layers as well as metal layers, allowing for uniform distribution of both metal and polysilicon on respective layers of the chip. In preferred forms of the invention a computer readable program on a computer memory, such as a hard disk of a computer system, contains computer readable code that causes a computer to define the expanding hierarchical tree, such as a quadtree, octree, or the like, and to perform the processes herein described.
- Although the present invention has been described with reference to preferred embodiments, workers skilled in the art will recognize that changes may be made in form and detail without departing from the spirit and scope of the invention.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/316,594 US6757883B1 (en) | 2002-12-11 | 2002-12-11 | Estimating free space in IC chips |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/316,594 US6757883B1 (en) | 2002-12-11 | 2002-12-11 | Estimating free space in IC chips |
Publications (2)
Publication Number | Publication Date |
---|---|
US20040117751A1 true US20040117751A1 (en) | 2004-06-17 |
US6757883B1 US6757883B1 (en) | 2004-06-29 |
Family
ID=32505983
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/316,594 Expired - Fee Related US6757883B1 (en) | 2002-12-11 | 2002-12-11 | Estimating free space in IC chips |
Country Status (1)
Country | Link |
---|---|
US (1) | US6757883B1 (en) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050055660A1 (en) * | 2003-09-09 | 2005-03-10 | Donaldson Alice L. | Mesh plane generation and file storage |
US20060225016A1 (en) * | 2005-03-30 | 2006-10-05 | Fujitsu Limited | Method and apparatus for laying out cells in a semiconductor device |
US11151757B2 (en) | 2019-12-10 | 2021-10-19 | Capital One Services, Llc | Augmented reality system with color-based fiducial marker utilizing local adaptive technology |
US11184150B2 (en) | 2019-04-18 | 2021-11-23 | Capital One Services, Llc | Transmitting encoded data along transmission mediums based on colorspace schemes |
US11200751B2 (en) | 2019-07-25 | 2021-12-14 | Capital One Services, Llc | Augmented reality system with color-based fiducial marker |
US11302036B2 (en) | 2020-08-19 | 2022-04-12 | Capital One Services, Llc | Color conversion between color spaces using reduced dimension embeddings |
US11314958B2 (en) | 2019-03-18 | 2022-04-26 | Capital One Services, LLC. | Detecting in an environment a matrix having a least prevalent color |
US11342943B2 (en) * | 2019-10-25 | 2022-05-24 | Capital One Services, Llc | Data encoding with error-correcting code pursuant to colorspace schemes |
US11417075B2 (en) | 2019-11-14 | 2022-08-16 | Capital One Services, Llc | Object detection techniques using colorspace conversions |
US11429826B2 (en) | 2019-03-18 | 2022-08-30 | Capital One Services, Llc | Matrix barcode having a plurality of colors, an ultraviolet layer, and infrared layer for conveying spatial information |
US11487979B2 (en) | 2019-03-18 | 2022-11-01 | Capital One Services, Llc | Matrix barcode having a plurality of colors and an infrared layer for conveying spatial information |
US11487960B2 (en) | 2019-03-18 | 2022-11-01 | Capital One Services, Llc | Matrix barcode having a plurality of colors and an ultraviolet layer for conveying spatial information |
US11522688B2 (en) | 2019-10-03 | 2022-12-06 | Capital One Services, Llc | Encoded data along tape based on colorspace schemes |
US11551047B2 (en) | 2019-11-04 | 2023-01-10 | Capital One Services, Llc | Programmable logic array and colorspace conversions |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9218506B2 (en) * | 2013-03-12 | 2015-12-22 | University Of Connecticut | Methods and systems for preventing hardware trojan insertion |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4468728A (en) * | 1981-06-25 | 1984-08-28 | At&T Bell Laboratories | Data structure and search method for a data base management system |
US4918614A (en) * | 1987-06-02 | 1990-04-17 | Lsi Logic Corporation | Hierarchical floorplanner |
US5625564A (en) * | 1995-01-13 | 1997-04-29 | Cadence Design Systems, Inc. | System and method for hierarchical device extraction |
US5963728A (en) * | 1996-08-14 | 1999-10-05 | International Business Machines Corporation | Method to partition clock sinks into nets |
-
2002
- 2002-12-11 US US10/316,594 patent/US6757883B1/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4468728A (en) * | 1981-06-25 | 1984-08-28 | At&T Bell Laboratories | Data structure and search method for a data base management system |
US4918614A (en) * | 1987-06-02 | 1990-04-17 | Lsi Logic Corporation | Hierarchical floorplanner |
US5625564A (en) * | 1995-01-13 | 1997-04-29 | Cadence Design Systems, Inc. | System and method for hierarchical device extraction |
US5963728A (en) * | 1996-08-14 | 1999-10-05 | International Business Machines Corporation | Method to partition clock sinks into nets |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050055660A1 (en) * | 2003-09-09 | 2005-03-10 | Donaldson Alice L. | Mesh plane generation and file storage |
US7096451B2 (en) * | 2003-09-09 | 2006-08-22 | International Business Machines Corporation | Mesh plane generation and file storage |
US20060225016A1 (en) * | 2005-03-30 | 2006-10-05 | Fujitsu Limited | Method and apparatus for laying out cells in a semiconductor device |
US7185303B2 (en) * | 2005-03-30 | 2007-02-27 | Fujitsu Limited | Method and apparatus for laying out cells in a semiconductor device |
US11487979B2 (en) | 2019-03-18 | 2022-11-01 | Capital One Services, Llc | Matrix barcode having a plurality of colors and an infrared layer for conveying spatial information |
US11314958B2 (en) | 2019-03-18 | 2022-04-26 | Capital One Services, LLC. | Detecting in an environment a matrix having a least prevalent color |
US11429826B2 (en) | 2019-03-18 | 2022-08-30 | Capital One Services, Llc | Matrix barcode having a plurality of colors, an ultraviolet layer, and infrared layer for conveying spatial information |
US11487960B2 (en) | 2019-03-18 | 2022-11-01 | Capital One Services, Llc | Matrix barcode having a plurality of colors and an ultraviolet layer for conveying spatial information |
US11184150B2 (en) | 2019-04-18 | 2021-11-23 | Capital One Services, Llc | Transmitting encoded data along transmission mediums based on colorspace schemes |
US11200751B2 (en) | 2019-07-25 | 2021-12-14 | Capital One Services, Llc | Augmented reality system with color-based fiducial marker |
US11522688B2 (en) | 2019-10-03 | 2022-12-06 | Capital One Services, Llc | Encoded data along tape based on colorspace schemes |
US11342943B2 (en) * | 2019-10-25 | 2022-05-24 | Capital One Services, Llc | Data encoding with error-correcting code pursuant to colorspace schemes |
US11551047B2 (en) | 2019-11-04 | 2023-01-10 | Capital One Services, Llc | Programmable logic array and colorspace conversions |
US11417075B2 (en) | 2019-11-14 | 2022-08-16 | Capital One Services, Llc | Object detection techniques using colorspace conversions |
US11151757B2 (en) | 2019-12-10 | 2021-10-19 | Capital One Services, Llc | Augmented reality system with color-based fiducial marker utilizing local adaptive technology |
US11302036B2 (en) | 2020-08-19 | 2022-04-12 | Capital One Services, Llc | Color conversion between color spaces using reduced dimension embeddings |
Also Published As
Publication number | Publication date |
---|---|
US6757883B1 (en) | 2004-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6757883B1 (en) | Estimating free space in IC chips | |
US6996793B1 (en) | Methods and apparatus for storing and manipulating diagonal interconnect lines of a multidimensional integrated circuit design | |
US5533148A (en) | Method for restructuring physical design images into hierarchical data models | |
US6959304B1 (en) | Method and apparatus for representing multidimensional data | |
CA2190486C (en) | Method of clustering multi-dimensional related data in a computer database by combining the two vertices of a graph connected by an edge having the highest score | |
US7499045B2 (en) | Graphics image generation | |
US20040017941A1 (en) | System and method for bounding and classifying regions within a graphical image | |
US7100128B1 (en) | Zone tree method and mechanism | |
US6981235B1 (en) | Nearest neighbor mechanism | |
US5319743A (en) | Intelligent and compact bucketing method for region queries in two-dimensional space | |
US5629861A (en) | Nested maximum space computation and efficient generation of nested shape complementation | |
Freivalds et al. | Disconnected graph layout and the polyomino packing approach | |
CN100367284C (en) | Boundary data inside/outside judgment method and program thereof | |
Lin et al. | Module placement with boundary constraints using B*-trees | |
US8136058B2 (en) | Method and system for representing geometrical layout design data in electronic design systems | |
US4969114A (en) | Method for determining an intuitively defined spatial relationship among physical entities | |
US6444483B1 (en) | Method and apparatus of producing partial-area mask data files | |
CN115796111A (en) | File processing method suitable for agf, computer equipment and readable storage medium | |
US9373193B2 (en) | Method and apparatus for detecting and avoiding conflicts of space entity element annotations | |
US6850638B1 (en) | System for naming faces and vertices in an adaptive hierarchical subdivision surface | |
JPH076229A (en) | Three-dimensional computer graphics data- processing method for facetting, segmentation and sorting of point assembly representing, especially, surface and surve | |
KR100663606B1 (en) | Method of calculating multi-conditioned optimum path using coordinates | |
CN117351368B (en) | Natural village boundary acquisition method and device, electronic equipment and storage medium | |
CN116612207B (en) | Method and system for annotation and dilution of space point elements of vector map of open-air mining area | |
US10956368B2 (en) | Device and method for comparing geometric files |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: LSI LOGIC CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SHROWTY, VIKRAM;RAMAN, SANTHANAKRIS;REEL/FRAME:013582/0940 Effective date: 20021211 |
|
FEPP | Fee payment procedure |
Free format text: PAYER NUMBER DE-ASSIGNED (ORIGINAL EVENT CODE: RMPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
AS | Assignment |
Owner name: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AG Free format text: PATENT SECURITY AGREEMENT;ASSIGNORS:LSI CORPORATION;AGERE SYSTEMS LLC;REEL/FRAME:032856/0031 Effective date: 20140506 |
|
AS | Assignment |
Owner name: LSI CORPORATION, CALIFORNIA Free format text: CHANGE OF NAME;ASSIGNOR:LSI LOGIC CORPORATION;REEL/FRAME:033102/0270 Effective date: 20070406 |
|
AS | Assignment |
Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LSI CORPORATION;REEL/FRAME:035390/0388 Effective date: 20140814 |
|
AS | Assignment |
Owner name: LSI CORPORATION, CALIFORNIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031);ASSIGNOR:DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT;REEL/FRAME:037684/0039 Effective date: 20160201 Owner name: AGERE SYSTEMS LLC, PENNSYLVANIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031);ASSIGNOR:DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT;REEL/FRAME:037684/0039 Effective date: 20160201 |
|
REMI | Maintenance fee reminder mailed | ||
LAPS | Lapse for failure to pay maintenance fees | ||
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20160629 |
|
AS | Assignment |
Owner name: BELL SEMICONDUCTOR, LLC, ILLINOIS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;BROADCOM CORPORATION;REEL/FRAME:044887/0109 Effective date: 20171208 |
|
AS | Assignment |
Owner name: CORTLAND CAPITAL MARKET SERVICES LLC, AS COLLATERA Free format text: SECURITY INTEREST;ASSIGNORS:HILCO PATENT ACQUISITION 56, LLC;BELL SEMICONDUCTOR, LLC;BELL NORTHERN RESEARCH, LLC;REEL/FRAME:045216/0020 Effective date: 20180124 |
|
AS | Assignment |
Owner name: BELL NORTHERN RESEARCH, LLC, ILLINOIS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CORTLAND CAPITAL MARKET SERVICES LLC;REEL/FRAME:059720/0223 Effective date: 20220401 Owner name: BELL SEMICONDUCTOR, LLC, ILLINOIS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CORTLAND CAPITAL MARKET SERVICES LLC;REEL/FRAME:059720/0223 Effective date: 20220401 Owner name: HILCO PATENT ACQUISITION 56, LLC, ILLINOIS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CORTLAND CAPITAL MARKET SERVICES LLC;REEL/FRAME:059720/0223 Effective date: 20220401 |