Logic cell placement method in computer-aided-customization of universal arrays and resulting integrated circuit
First Claim
1. In a computer-programmed method of placing logic cells during the conversion of a universal array having a row region including rows of basic circuit units into a custom IC in which said array has more of said basic units in its row region than said IC requires for it'"'"'s implementation whereby the final IC includes some unused basic units, the improvement comprising the step of:
- allocating at least some of said unused basic units to specific rows of said row region with the center row when there are an odd number of rows and one of the center two rows when there are an even number of rows being allocated the most unused basic units and with the number of unsed basic units allocated to said rows decreasing monotonically with the distance from said center row(s); and
preventing said allocated unused basic units from being moved from the respective rows to which they are allocated.
2 Assignments
0 Petitions
Accused Products
Abstract
An improved automatic placement process for placing logic cells in a universal array. Unused basic units are assigned to rows to reduce the congestion of the wiring in high congestion regions of a universal array. These assigned unused basic units are allocated among rows in a pyramidal manner. Those unused basic units allocated to a given row are distributed along that row in a manner to reduce wiring congestion. During a pair exchange portion of the placement process, quality criteria used for deciding whether to exchange two logic cells on different rows include skipped rows in a node, y-span of a node, minimizing the number of logic cells in excess of two in a node on a row, making a longest row shorter and making longer a shortest row or one which is within a tolerance of being a shortest row.
-
Citations
16 Claims
-
1. In a computer-programmed method of placing logic cells during the conversion of a universal array having a row region including rows of basic circuit units into a custom IC in which said array has more of said basic units in its row region than said IC requires for it'"'"'s implementation whereby the final IC includes some unused basic units, the improvement comprising the step of:
-
allocating at least some of said unused basic units to specific rows of said row region with the center row when there are an odd number of rows and one of the center two rows when there are an even number of rows being allocated the most unused basic units and with the number of unsed basic units allocated to said rows decreasing monotonically with the distance from said center row(s); and preventing said allocated unused basic units from being moved from the respective rows to which they are allocated. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. In a computer programmed method for placing logic cells in a universal array having a row region including parallel rows of basic circuit units, the improvement comprising the step of:
establishing for each row, a maximum number of said basic units which are allows to be connected into the IC, said maximum number being equal to the number of said basic units actually present in that row minus a variable number which depends on (1) the location of the row within the row region and (2) the number of said basic units present in the universal array which are unused in the custom circuit being designed, said variable number having its largest value for the center row when the there are an odd number of rows and one of the center two rows when there are an even number of rows in said row region and having a value for other rows which decreaess monotonically with increasing distance of said other rows from said center row(s), the sum of said variable number over all rows being less than or equal to a predetermined portion of said unused basic units.
-
8. In a method of placing logic cells in a universal array having a row region including parallel rows of basic circuit units in which logic cells are initially assigned to rows and then moved from row to row or pair exchanged in accordance with evaluation criteria which include the number of skipped rows for a node and the number of rows spanned by the node, the improvement comprising:
including in said evaluation criteria the minimization of the number of cells in a node in excess of two on a row. - View Dependent Claims (9, 10)
-
11. In a computer programmed method of converting a logic specification for an IC into the mask necessary to convert a universal array into said IC wherein the universal array of of the type which includes pre-placed basic circuit units arranged in parallel rows in a row region and includes more of said basic units than said IC requires for its implementation such that the final IC includes unused basic units, the method being one which (1) automatically determines the placement of logic cells on the rows of the universal array, (2) automatically determines routes for conductors to properly interconnect the universal aray basic units to produce said IC and (3) automatically generates the masks necessary to convert the universal array to said IC, the improvement comprising the step of:
-
allocating at least some of said unused basic units to specific rows of said row region with the center row when there are an odd number of rows and one of the center two rows when there are an even number of rows being allocated the most unused basic units and with the number of unused basic units allocated to said row decreasing monotonically with the distance from said center row(s); and preventing said allocated unused basic units from being moved from the respective rows to which they are allocated.
-
-
12. A computer programmed method of converting a logic specification for an IC into the mask nessary to convert a universal array into said IC in which said array has a row region including parallel rows of basic circuit units and has more basic units in its row region than said IC requires for it'"'"'s implementation whereby the final IC includes some unused basic units, and wherein said universal array is of the type in which said basic units are pre-placed in parallel rows in said row region, the method comprising the steps of:
-
(1) assigning specific logic cells to specific rows of said universal array, said assigning step including allocating at least some of said unused basic units to specific rows of said row region with the center row when there are an odd number of rows and one of the center two rows when there are an even number of rows being allocated the most unused basic units and with the number of unused basic units allocated to said rows decreasing monotonically with the distance from said center row(s); (2) placing said logic cells assigned to each row at specific locations along that row; (3) routing customizing conductors to properly interconnect said basic units of said universal array to product said IC; (4) providing an output specifying the configuration of a mask for customizing said universal array to form said IC; and (5) generating said mask.
-
-
13. In a customized universal array IC of the type including a row region in which basic units are arranged in a plurality of parallel rows and in which some of said basic units are active and some are unused, the improvement comprising:
said unused basic units being distrubuted among said rows with the largest number of said unused basic units disposed in the center row when there are an odd number of rows and one of the center two rows when there are an even number of rows and with the number of unused basic units in each row decreasing monotonically with the distance of that row from said center row(s). - View Dependent Claims (14, 15, 16)
Specification