Advanced modular cell placement system with neighborhood system driven optimization
First Claim
1. A method for optimizing the placement of cells on the surface of an integrated circuit device, said method comprising:
- (a) Supplying a netlist, said netlist comprising cells and nets connected in a predetermined manner so as to define an integrated circuit;
(b) forming a cluster of cells from said netlist, said cluster not comprising all cells from the netlist;
(c) for each cell within said cluster, assigning the cell an individual-cluster weight;
(d) dividing an abstract of the surface of the integrated circuit device into a plurality of regions, said plurality of regions comprising a first region and a second region;
(e) locating cells on the abstract of the surface of said integrated circuit device, such that the cells so located comprise each of the cells of the cluster as well as other cells;
(f) calculating a first sum of individual-cluster weights for all cells of said cluster located within said first region;
(g) calculating a first cluster affinity based on said first sum of individual-cluster weights;
(h) calculating a second sum of individual-cluster weights for all cells of said cluster located within a second region;
(i) calculating a second cluster affinity based on said second sum of individual-cluster weights; and
(j) determining whether to relocate a cell from said cluster from one region to another as a function of both said first cluster affinity and of said second cluster affinity, reassigning said cell in accordance with said determination, and placing said cell on at least one integrated circuit device as a function of said reassignment.
10 Assignments
0 Petitions
Accused Products
Abstract
A system for computing an affinity for relocating a cell on a surface of a semiconductor chip is disclosed herein. The cell is located within a region and belongs to a net of cells. The system initially computes a weight associated with all cells in the net. The sytem then sums the weights of all cells in the net containing the cell for all cells located inside the region and at positions greater than and less than edges of the region and computes the affinity for moving the cell to points on the surface greater than, equal to, and less than the current position of the cell based on the weight sums from said summing function. The computing function further comprises combining the affinities determined based on weight sums with other affinities. The summing function further comprises computing a relationship between the amount of rows and columns of regions on the semiconductor chip surface, and the affinity computation function comprises combining the relationship with the weight sums.
86 Citations
41 Claims
-
1. A method for optimizing the placement of cells on the surface of an integrated circuit device, said method comprising:
-
(a) Supplying a netlist, said netlist comprising cells and nets connected in a predetermined manner so as to define an integrated circuit; (b) forming a cluster of cells from said netlist, said cluster not comprising all cells from the netlist; (c) for each cell within said cluster, assigning the cell an individual-cluster weight; (d) dividing an abstract of the surface of the integrated circuit device into a plurality of regions, said plurality of regions comprising a first region and a second region; (e) locating cells on the abstract of the surface of said integrated circuit device, such that the cells so located comprise each of the cells of the cluster as well as other cells; (f) calculating a first sum of individual-cluster weights for all cells of said cluster located within said first region; (g) calculating a first cluster affinity based on said first sum of individual-cluster weights; (h) calculating a second sum of individual-cluster weights for all cells of said cluster located within a second region; (i) calculating a second cluster affinity based on said second sum of individual-cluster weights; and (j) determining whether to relocate a cell from said cluster from one region to another as a function of both said first cluster affinity and of said second cluster affinity, reassigning said cell in accordance with said determination, and placing said cell on at least one integrated circuit device as a function of said reassignment. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for optimizing the placement of interrelated cells on the surface of an integrated circuit device, wherein said surface has a region thereon, said method comprising:
-
(a) Supplying a netlist, said netlist comprising cells and nets connected in a predetermined manner so as to define an integrated circuit; (b) organizing a plurality of interrelated cells from said netlist into a cluster; (c) ordering the cells of said cluster, wherein the resulting order is not necessarily in order of cell size; (d) indexing said cells in accordance with said ordering such that each cell is assigned its own index value; (e) for each cell of said cells, assigning the cell an individual-cluster weight, wherein said individual-cluster weight is a function of the cell'"'"'s index value; (f) locating said cluster on an abstract of a surface of the integrated circuit device such that at least one of the cells is assigned to said region; (g) selecting a first cell from said cluster which is assigned to said region; (h) dividing the abstract of the surface of the integrated circuit device into a plurality of portions, said plurality of portions comprising a region portion which comprises the region, and a first portion which does not comprise the region; (i) calculating a first portion weight, wherein said first portion weight is a function of the individual-cluster weights of the cells of said cluster assigned to said first portion; (j) calculating a first cluster affinity, wherein said first cluster affinity is a function of the first portion weight; (k) reassigning the first cell from the region portion to another portion, wherein the portion to which the first cell is reassigned is a function of said first cluster affinity; and (l) placing said first cell on at least one integrated circuit device as a function of said reassignment. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. A machine-readable storage medium having instructions for a computer to process a netlist encoded therein, said netlist comprising cells and nets connected in a predetermined manner so as to define an integrated circuit, in order to optimize placement of cells on an integrated circuit device, comprising:
-
(a) An encoded instruction on said storage medium for accepting a netlist, said netlist comprising cells and nets connected in a predetermined manner so as to define an integrated circuit; (b) an encoded instruction on said storage medium for forming a cluster of cells from said netlist, said cluster not comprising all cells from the netlist; (c) an encoded instruction on said storage medium for assigning each cell within said cluster an individual-cluster weight; (d) an encoded instruction on said storage medium for dividing an abstract of the surface of the integrated circuit device into a plurality of regions, said plurality of regions comprising a first region and a second region; (e) an encoded instruction on said storage medium for locating cells on the surface of said integrated circuit device, such that the cells placed comprise each of the cells of the cluster as well as other cells; (f) an encoded instruction on said storage medium for calculating a first sum of individual-cluster weights for all cells of said cluster located within said first region; (g) an encoded instruction on said storage medium for calculating a first cluster affinity based on said first sum of individual-cluster weights; (h) an encoded instruction on said storage medium for calculating a second sum of individual-cluster weights for all cells of said cluster located within a second region; (i) an encoded instruction on said storage medium for calculating a second cluster affinity based on said second sum of individual-cluster weights; and (l) an encoded instruction on said storage medium for determining whether to relocate a cell from said cluster from one region to another as a function of both said first cluster affinity and of said second cluster affinity and assigning said cell in accordance with said determination.
-
-
27. A machine-readable storage medium having instructions for a computer to process a netlist encoded therein, said netlist comprising cells and nets connected in a predetermined manner so as to define an integrated circuit, in order to optimize placement of cells on an integrated circuit device, comprising:
-
(a) an encoded instruction on said storage medium for accepting a netlist, said netlist comprising cells and nets connected in a predetermined manner so as to define an integrated circuit; (b) an encoded instruction on said storage medium for organizing a plurality of interrelated cells from said netlist into a cluster; (c) an encoded instruction on said storage medium for ordering the cells of said cluster, wherein the resulting order is not necessarily in order of cell size; (d) an encoded instruction on said storage medium for indexing said cells in accordance with said ordering such that each cell is assigned its own index value; (e) an encoded instruction on said storage medium for assigning each cell of said cells an individual-cluster weight, wherein a cell'"'"'s individual-cluster weight is a function of the cell'"'"'s index value; (f) an encoded instruction on said storage medium for locating said cluster on an abstract of the surface of the integrated circuit device such that at least one of the cells is assigned to said region; (g) an encoded instruction on said storage medium for selecting a first cell from said cluster which is assigned to said region; (h) an encoded instruction on said storage medium for dividing the surface abstract into a plurality of portions, said plurality of portions comprising a region portion which comprises the region, and a first portion which does not comprise the region; (i) an encoded instruction on said storage medium for calculating a first portion weight, wherein said first portion weight is a function of the individual-cluster weights of the cells of said cluster assigned to said first portion; (j) an encoded instruction on said storage medium for calculating a first cluster affinity, wherein said first cluster affinity is a function of the first portion weight; and (k) an encoded instruction on said storage medium for moving the first cell from the region portion to another portion, wherein the portion to which the first cell is moved is a function of said first cluster affinity.
-
-
28. An integrated circuit device having its cell placement optimized with a method comprising the following steps:
-
(a) Accepting a netlist, said netlist comprising cells and nets connected in a predetermined manner so as to define an integrated circuit; (b) forming a cluster of cells from said netlist, said cluster not comprising all cells from the netlist; (c) for each cell within said cluster, assigning the cell an individual-cluster weight; (d) dividing an abstract of the surface of the integrated circuit device into a plurality of regions, said plurality of regions comprising a first region and a second region; (e) locating cells on the abstract of the surface of said integrated circuit device, such that the cells so located comprise each of the cells of the cluster as well as other cells; (f) calculating a first sum of individual-cluster weights for all cells of said cluster located within said first region; (g) calculating a first cluster affinity based on said first sum of individual-cluster weights; (h) calculating a second sum of individual-cluster weights for all cells of said cluster located within a second region; (i) calculating a second cluster affinity based on said second sum of individual-cluster weights; and (j) determining whether to relocate a cell from said cluster from one region to another as a function of both said first cluster affinity and of said second cluster affinity, reassigning said cell in accordance with said determination, and placing said cell on at least one integrated circuit device as a function of said reassignment.
-
-
29. An integrated circuit device having its cell placement optimized with a method comprising the following steps:
-
(a) Accepting a netlist, said netlist comprising cells and nets connected in a predetermined manner so as to define an integrated circuit; (b) organizing a plurality of interrelated cells from said netlist into a cluster; (c) ordering the cells of said cluster, wherein the resulting order is not necessarily in order of cell size; (d) indexing said cells in accordance with said ordering such that each cell is assigned its own index value; (e) for each cell of said cells, assigning the cell an individual-cluster weight, wherein said individual-cluster weight is a function of the cell'"'"'s index value; (f) locating said cluster on the abstract of a surface of the integrated circuit device such that at least one of the cells is assigned to said region; (g) selecting a first cell from said cluster which is assigned to said region; (h) dividing the abstract of the surface of the integrated circuit device into a plurality of portions, said plurality of portions comprising a region portion which comprises the region, and a first portion which does not comprise the region; (i) calculating a first portion weight, wherein said first portion weight is a function of the individual-cluster weights of the cells of said cluster assigned to said first portion; (j) calculating a first cluster affinity, wherein said first cluster affinity is a function of the first portion weight; (k) reassigning the first cell from the region portion to another portion, wherein the portion to which the first cell is reassigned is a function of said first cluster affinity; and (l) placing said first cell on at least one integrated circuit device as a function of said reassignment.
-
-
30. A method for optimizing the placement of interrelated cells on the surface of an integrated circuit device, wherein said surface has a region thereon, said method comprising:
-
(a) Supplying a netlist, said netlist comprising cells and nets connected in a predetermined manner so as to define an integrated circuit; (b) organizing a plurality of interrelated cells from said netlist into a cluster, wherein said cluster does not comprise all of the cells in the netlist; (c) for each cell of said plurality of interrelated cells, assigning the cell an individual-cluster weight; (d) locating said cluster on an abstract of the surface of the integrated circuit device such that at least one of the cells is assigned to said region; (e) selecting a first cell from said cluster which is assigned to said region; (f) dividing the abstract of the surface of the integrated circuit device into a plurality of portions, said plurality of portions comprising a region portion which comprises the region, a first portion which does not comprise the region, and a second portion which does not comprise the region and does not overlap said first portion; (g) calculating a first portion weight, wherein said first portion weight is a function of the individual-cluster weights of the cells of said cluster assigned to said first portion; (h) calculating a second portion weight, wherein said second portion weight is a function of the individual-cluster weights of the cells of said cluster assigned to said second portion; (i) calculating a region portion weight wherein said region portion weight is a function of the sum of the individual-cluster weights of the cells assigned to the region portion; (j) calculating a first cluster affinity, wherein said first cluster affinity is a function of the first portion weight and of the region portion weight; (k) calculating a second cluster affinity, wherein said second cluster affinity is a function of the second portion weight and the region portion weight; and (l) either leaving the first cell in the region portion or relocating the first cell from the region portion to another portion as a function of said first cluster affinity and said second cluster affinity and placing said first cell on at least one integrated circuit device as a function of its location on said surface abstract. - View Dependent Claims (31, 32, 33, 34, 35, 36, 37, 38, 39)
-
-
40. A machine-readable storage medium having instructions for a computer to process a netlist encoded therein, said netlist comprising cells and nets connected in a predetermined manner so as to define an integrated circuit, in order to optimize placement of cells on an integrated circuit device, comprising:
-
(a) an encoded instruction on said storage medium for accepting a netlist, said netlist comprising cells and nets connected in a predetermined manner so as to define an integrated circuit; (b) an encoded instruction on said storage medium for organizing a plurality of interrelated cells from said netlist into a cluster, wherein said cluster does not comprise all of the cells in the netlist; (c) an encoded instruction on said storage medium for, for each cell of said plurality of interrelated cells, assigning the cell an individual-cluster weight; (d) an encoded instruction on said storage medium for locating said cluster on an abstract of the surface of an integrated circuit device such that at least one of the cells is assigned to said region; (e) an encoded instruction on said storage medium for selecting a first cell from said cluster which is assigned to said region; (f) an encoded instruction on said storage medium for dividing the abstract of the surface of the integrated circuit device into a plurality of portions, said plurality of portions comprising a region portion which comprises the region, a first portion which does not comprise the region, and a second portion which does not comprise the region and does not overlap said first portion; (g) an encoded instruction on said storage medium for calculating a first portion weight, wherein said first portion weight is a function of the individual-cluster weights of the cells of said cluster assigned to said first portion; (h) an encoded instruction on said storage medium for calculating a second portion weight, wherein said second portion weight is a function of the individual-cluster weights of the cells of said cluster assigned to said second portion; (i) an encoded instruction on said storage medium for calculating a region portion weight wherein said region portion weight is a function of the sum of the individual-cluster weights of the cells assigned to the region portion; (j) an encoded instruction on said storage medium for calculating a first cluster affinity, wherein said first cluster affinity is a function of the first portion weight and of the region portion weight; (k) an encoded instruction on said storage medium for calculating a second cluster affinity, wherein said second cluster affinity is a function of the second portion weight and the region portion weight; and (l) an encoded instruction on said storage medium for either leaving the first cell in the region portion or moving the first cell from the region portion to another portion as a function of said first cluster affinity and said second cluster affinity.
-
-
41. An integrated circuit device having its cell placement optimized with a method comprising the following steps:
-
(a) Supplying a netlist, said netlist comprising cells and nets connected in a predetermined manner so as to define an integrated circuit; (b) organizing a plurality of interrelated cells from said netlist into a cluster, wherein said cluster does not comprise all of the cells in the netlist; (c) for each cell of said plurality of interrelated cells, assigning the cell an individual-cluster weight; (d) locating said cluster on an abstract of the surface of the integrated circuit device such that at least one of the cells is assigned to said region; (e) selecting a first cell from said cluster which is assigned to said region; (f) dividing the abstract of the surface of the integrated circuit device into a plurality of portions, said plurality of portions comprising a region portion which comprises the region, a first portion which does not comprise the region, and a second portion which does not comprise the region and does not overlap said first portion; (g) calculating a first portion weight, wherein said first portion weight is a function of the individual-cluster weights of the cells of said cluster assigned to said first portion; (h) calculating a second portion weight, wherein said second portion weight is a function of the individual-cluster weights of the cells of said cluster assigned to said second portion; (i) calculating a region portion weight wherein said region portion weight is a function of the sum of the individual-cluster weights of the cells assigned to the region portion; (j) calculating a first cluster affinity, wherein said first cluster affinity is a function of the first portion weight and of the region portion weight; (k) calculating a second cluster affinity, wherein said second cluster affinity is a function of the second portion weight and the region portion weight; and (l) either leaving the first cell in the region portion or relocating the first cell from the region portion to another portion as a function of said first cluster affinity and said second cluster affinity and placing said first cell on at least one integrated circuit device as a function of its location on said surface abstract.
-
Specification