Ic physical design using a tiling engine
AssigneeSynopsys, Inc.
InventorsJohn Case, Mark William Bales
Life of this patent
Estimating the term…
Abstract
In general, embodiments of the present invention provide systems, methods and computer readable media for generating a tiling for a physical placement of a plurality of circuits. The method includes generating a tiling including a plurality of tiles, where each tile identifies a tile geometric area, and a list of one or more of the circuits to be placed in the tile geometric area. The tiling is based on a description of one or more user constraints, where each user constraint identifies a constraint geometric area, and a characteristic of circuits to be placed in the constraint geometric area.
Claims26
A computer system comprising a tiling engine configured to transform a circuit netlist and a set of user constraints to a physical layout representative of the circuit, the tiling engine comprising:
- a constraint translator configured to generate a list of constraint objects in accordance with the set of user constraints and a set of rules stored in a database, each constraint object defining a physical region and a list of circuit cells to be included in the physical region;
- and
- a tile generator configured to generate a constraint tree comprising a plurality of levels each associated with a different one of the constraint objects and defining at least one region in which a circuit cell is to be placed.
A computer-implemented method of transforming a circuit netlist and a set of user constraints to a physical layout representative of the circuit, the computer-implemented method comprising:
- generating a list of constraint objects, using the computer, in accordance with the set of user constraints and a set of rules stored in a database, each constraint object defining a physical region and a list of circuit cells to be included in the physical region;
- and
- generating a constraint tree, using the computer, comprising a plurality of levels each associated with a different one of the constraint objects and defining at least one region in which a circuit cell is to be placed.
A computer program product, stored on a non-transitory computer readable medium, comprising instructions that when executed on one or more computers cause the one or more computers to perform operations implementing a tiling engine for generating a tessellated partitioning of a placement area into geometric regions based on an input set of user constraints, the operations comprising:
- receiving, from a user constraint input interface, an input set of user constraints;
- generating a list of abstract constraint objects based at least in part on the input set of user constraints, wherein the properties of each abstract constraint object include a name, a geometric region over which the constraint applies, and an object list of cells to be placed within the region;
- wherein the list of abstract constraint objects includes a universe constraint representing the hierarchical boundary of the placement area;
- and wherein the properties of each abstract constraint object include a name, a geometric region over which the constraint applies, and an object list of cells to be placed within the region;
- and
- generating a set of tiles using the list of abstract constraint objects, wherein each tile within the set of tiles respectively describes a geometric region of the placement area, and wherein generating the set of tiles comprises constructing a binary tree in which the root node represents the universe constraint, each tree node level represents a result of applying one of the list of abstract constraint objects, and each of the set of tiles is respectively represented by one of the tree leaf nodes.
A system comprising:
- one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations implementing a tiling engine for generating a tessellated partitioning of a placement area into geometric regions based on an input set of user constraints, the operations comprising:
- receiving, from a user constraint input interface, an input set of user constraints;
- generating a list of abstract constraint objects based at least in part on the input set of user constraints, wherein the properties of each abstract constraint object include a name, a geometric region over which the constraint applies, and an object list of cells to be placed within the region;
- wherein the list of abstract constraint objects includes a universe constraint representing the hierarchical boundary of the placement area;
- and wherein the properties of each abstract constraint object include a name, a geometric region over which the constraint applies, and an object list of cells to be placed within the region;
- and
- generating a set of tiles using the list of abstract constraint objects, wherein each tile within the set of tiles respectively describes a geometric region of the placement area, and wherein generating the set of tiles comprises constructing a binary tree in which the root node represents the universe constraint, each tree node level represents a result of applying one of the list of abstract constraint objects, and each of the set of tiles is respectively represented by one of the tree leaf nodes.
Dependencies are inferred from the claim text.