Claims
- 1. A method of determining the position of devices in a circuit layout comprising:
(a) defining a matrix having at least one row or one column of cells; (b) defining a plurality of devices in the matrix, with each device received in at least one cell; (c) establishing for each device a set of size constraints that expresses the size of the device; (d) for a plurality of devices contained completely in a column, determining the position of one of the devices in the column and establishing a constraint for each other device in the column that expresses its position with respect to the position of the one device in the column; (e) for a plurality of devices contained completely in a row, determining the position of one of the devices in the row and establishing a constraint for each other device in the row that expresses its position with respect to the position of the one device in the row; (f) establishing for each pair of adjacent devices a spacing constraint that expresses a spacing therebetween; (g) solving the constraints established in steps (c)-(f) as a set of simultaneous equations to determine a value of a variable of each constraint; and (h) generating a layout of the devices in accordance with the values determined in step (g).
- 2. The method of claim 1, further including, prior to step (g), establishing, for each pair of devices requiring symmetry matching, a set of symmetry constraints with respect to a symmetry line disposed therebetween.
- 3. The method of claim 2, wherein the step of establishing a set of symmetry constraints for each pair of devices requiring symmetry matching includes:
determining a number of cells that include and are between the pair of devices; designating a side of a cell positioned between opposing sides of the pair of devices as the symmetry line when the number of cells is even; and designating an imaginary line positioned at a center of a cell between the pair of devices as the symmetry line when the number of cells is odd.
- 4. The method of claim 3, wherein the step of establishing a set of symmetry constraints for each pair of devices requiring symmetry matching further includes:
determining a first distance between the symmetry line and one of the pair of devices; determining a second distance between the symmetry line and the other of the pair of devices; designating the greater of the first and second distances as a symmetry distance; establishing the symmetry constraint for the one device as the difference between the location of the symmetry line and the symmetry distance; and establishing the symmetry constraint for the other device as the sum of location of the symmetry line and the symmetry distance.
- 5. The method of claim 1, wherein the set of size constraints for each device includes:
a constraint that expresses a distance between a left side and a right side of the device; a constraint that expresses a distance between a top edge and a bottom edge of the device; a constraint that expresses a distance between one side of the device and a position intermediate the left and right sides of the device; and a constraint that expresses a distance between one edge of the device and a position intermediate the top and bottom edges of the device.
- 6. The method of claim 1, further including, prior to step (g), establishing a set of position constraints for each device defined in a plurality of cells.
- 7. The method of claim 6, wherein the set of position constraints for the device includes:
when the device spans a plurality of columns, a constraint that expresses a location of a right side of the device with respect to the location of the right side of the rightmost cell of the plurality of cells and another constraint that expresses a location of a left side of the device with respect to the location of the left side of the leftmost cell of the plurality of cells; and when the device spans a plurality of rows, a constraint that expresses a location of a top edge of the device with respect to the location of the top edge side of the topmost cell of the plurality of cells and another constraint that expresses a location of a bottom edge of the device with respect to the location of the bottom edge side of the bottommost cell of the plurality of cells.
- 8. A computer readable medium having stored thereon instructions which, when executed by a processor, cause the processor to perform the steps of:
(a) define a matrix having at least one row or one column of cells; (b) define a plurality of devices in the matrix, with each device received in at least one cell; (c) establish for each device a set of size constraints that expresses the size of the device; (d) if a plurality of devices is contained completely in a column, determine the position of one of the devices in the column and establish a constraint for each other device in the column that expresses its position with respect to the position of the one device; (e) if a plurality of devices is contained completely in a row, determine the position of one of the devices in the row and establish a constraint for each other device in the column that expresses its position with respect to the position of the one device; (f) establish for each pair of adjacent devices a spacing constraint that expresses a spacing therebetween; (g) solve the constraints established in steps (c)-(f) as a set of simultaneous equations to determine a value of a variable of each constraint; and (h) generate a layout of the devices in accordance with the values determined in step (g).
- 9. The computer readable medium of claim 8, wherein, for each pair of devices requiring symmetry matching, the instructions cause the processor to perform the further step of:
determining a set of symmetry constraints with respect to a symmetry line disposed therebetween.
- 10. The computer readable medium of claim 9, wherein the step of determining the set of symmetry constraints includes:
determining a number of cells that contain and are between the pair of devices; designating a side of a cell positioned between opposing sides of the pair of devices as the symmetry line when the number of cells is even; and designating an imaginary line positioned at a center of a cell and between the pair of devices as the symmetry line when the number of cells is odd.
- 11. The computer readable medium of claim 10, wherein the step of determining the set of symmetry constraints for each pair of devices requiring symmetry matching further includes:
determining a first distance between the symmetry line and one of the pair of devices; determining a second distance between the symmetry line and the other of the pair of devices; designating the greater of the first and second distances as a symmetry distance; establishing the symmetry constraint for the one device as the difference between the location of the symmetry line and the symmetry distance; and establishing the symmetry constraint for the other device as the sum of location of the symmetry line and the symmetry distance.
- 12. The computer readable medium of claim 9, wherein the set of size constraints for each device includes:
a constraint that expresses a distance between a left side and a right side of the device; a constraint that expresses a distance between a top edge and a bottom edge of the device; a constraint that expresses a distance between one side of the device and a position intermediate the left and right sides of the device; and a constraint that expresses a distance between one edge of the device and a position intermediate the top and bottom edges of the device.
- 13. The computer readable medium of claim 9, wherein the instructions cause the processor to perform the further step of:
establish a set of position constraints for each device defined in a plurality of cells.
- 14. The computer readable medium of claim 13, wherein the set of position constraints includes:
when the device spans a plurality of columns, a constraint that expresses a location of a right side of the device with respect to the location of the right side of the rightmost cell of the plurality of cells and another constraint that expresses a location of a left side of the device with respect to the location of the left side of the leftmost cell of the plurality of cells; and when the device spans a plurality of rows, a constraint that expresses a location of a top edge of the device with respect to the location of the top edge side of the topmost cell of the plurality of cells and another constraint that expresses a location of a bottom edge of the device with respect to the location of the bottom edge side of the bottommost cell of the plurality of cells.
- 15. A method of determining the position of devices in a circuit layout comprising:
(a) defining an array of cells; (b) defining a plurality of device outlines in the array, with each device outline received in at least one cell; (c) establishing a set of size constraints that express the size of each device; (d) for each column and each row of cells having a plurality of device outlines contained completely therein, determining the position of one of the device outlines and establishing a constraint for each other device outline that expresses its position with respect to the position of the one device outline; (e) establishing a spacing constraint for each pair of adjacent device outlines that expresses a spacing therebetween; (f) simultaneously solving the constraints established in steps (c)-(e); and (g) generating a layout of the device outlines in accordance with the solution determined in step (f).
- 16. The method of claim 15, further including, prior to step (f), establishing, for each pair of devices requiring symmetry matching, a set of symmetry constraints with respect to a symmetry line disposed therebetween.
- 17. The method of claim 15, further including, prior to step (f), establishing a set of position constraints for each device defined in a plurality of cells.
- 18. The method of claim 17, wherein the set of position constraints includes:
for each device that spans a plurality of columns, a constraint that expresses a location of a right side of the device with respect to the location of the right side of the rightmost cell of the plurality of cells and another constraint that expresses a location of a left side of the device with respect to the location of the left side of the leftmost cell of the plurality of cells; and for each device that spans a plurality of rows, a constraint that expresses a location of a top edge of the device with respect to the location of the top edge side of the topmost cell of the plurality of cells and another constraint that expresses a location of a bottom edge of the device with respect to the location of the bottom edge side of the bottommost cell of the plurality of cells.
- 19. The method of claim 15, wherein the set of size constraints for each device includes:
a constraint that expresses a distance between a left side and a right side of the device; a constraint that expresses a distance between a top edge and a bottom edge of the device; a constraint that expresses a distance between one side of the device and a position intermediate the left and right sides of the device; and a constraint that expresses a distance between one edge of the device and a position intermediate the top and bottom edges of the device.
CROSS REFERENCE TO RELATED APPLICATION
[0001] This application claims priority from U.S. Provisional Patent Application Serial No. 60/346,677, filed Jan. 8, 2002.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60346677 |
Jan 2002 |
US |