1460930809-e2a02d13-52d9-48ad-901c-1281ec192e86

1. A computer implemented method of forming an integrated circuit (IC) layout, the method comprising:
using the computer, automatically forming a constraint tree when the computer is invoked to receive a first layout of the IC, the constraint tree comprising a plurality of constraint nodes describing placement constraints based on the first layout, wherein the placement constraints comprise:
one or more matching constraints,
one or more symmetry constraints, and
one or more other constraints; and

generating, using the computer, a second layout of the IC, the second layout of the IC conforming with the constraints of the constraint tree, wherein:
device modules of the second layout subject to the matching constraints are placed with a placement pattern extracted from the corresponding device modules of the first layout without exploring other placement patterns,
device modules of the second layout subject to the symmetry constraints are placed with a placement pattern extracted from the corresponding device modules of the first layout without exploring other placement patterns, and
device modules of the second layout subject to the other constraints are placed with a placement pattern which is generated as a result of exploring alternative placement patterns, and is different from the placement pattern of the corresponding device modules of the first layout.
2. The method of claim 1, wherein forming the constraint tree comprises analyzing, using the computer, the first layout to obtain a plurality of first constraints, wherein the first layout includes a plurality of device modules, each one of the plurality of first constraints being associated with and applied to a different plurality of device modules.
3. The method of claim 2, wherein at least one of the plurality of first constraints includes a relative placement pattern associated with its associated plurality of device modules.
4. The method of claim 2, wherein at least one of the plurality of first constraints includes a matching or symmetry constraint in accordance with an analysis of a plurality of analog building blocks from a netlist of the first layout.
5. The method of claim 2, wherein generating the second layout is further in accordance with a second size for at least one of the plurality of device modules different than a first size for the at least one of the plurality of device modules in the first layout.
6. The method of claim 2, wherein generating the second layout is further in accordance with a second design rule different from a first design rule associated with the first layout.
7. The method of claim 2, wherein forming the constraint tree further comprises:
providing, using the computer, at least one second constraint different than any one of the plurality of first constraints; and
forming, using the computer, a constraint tree further in accordance with the at least one second constraint.
8. The method of claim 2, wherein forming the constraint tree further comprises:
determining, using the computer, a priority for each one of the plurality of first constraints;
forming, using the computer, a constraint list from the plurality of first constraints according to the determined priority for each one of the plurality of first constraints;
forming, using the computer, a root node at the top of the constraint tree, the root node being associated with a placement design of the IC;
forming, using the computer, a plurality of leaf nodes at the bottom of the constraint tree, each one of the plurality of leaf nodes associated with a different one of the plurality of device modules;
inserting, using the computer, one of the constraint nodes between the root node and an associated plurality of leaf nodes, each one of the constraint nodes associated with a different one of the plurality of first constraints; wherein the inserted constraint node is associated with one of the plurality of first constraints with a highest determined priority in the constraint list;
determining, using the computer, if a conflict exists
discarding, using the computer, from the constraint tree the inserted constraint node when a conflict exists;
removing, using the computer, from the constraint list the one of the plurality of first constraints with the highest determined priority; and
repeating, using the computer, inserting, determining if a conflict exists, discarding, and removing until the constraint list is empty.
9. The method of claim 2, wherein forming the constraint tree further comprises:
forming, using the computer, a root node at the top of the constraint tree, the root node being associated with a placement design of the IC;
forming, using the computer, a plurality of leaf nodes at the bottom of the constraint tree, each one of the plurality of leaf nodes associated with a different one of the plurality of device modules; and
inserting, using the computer, one of the constraint nodes between the root node and an associated plurality of leaf nodes.
10. The method of claim 9, wherein forming the constraint tree further comprises editing, using the computer, at least one of the plurality of constraint nodes in the constraint tree interactively.
11. The method of claim 9, wherein forming the constraint tree further comprises recording a placement attribute associated with at least one of the plurality of first constraints in at least one of the constraint nodes.
12. The method of claim 9, wherein forming the constraint tree further comprises:
determining, using the computer, if a conflict exists; and
discarding, using the computer, from the constraint tree the inserted one of the plurality of constraint nodes when a conflict exists.
13. The method of claim 12, wherein a conflict exists when more than one route is found through the constraint tree from one of the plurality of leaf nodes to the root node.
14. The method of claim 12, wherein a conflict exists when the inserted one of the plurality of constraint nodes and an existing one of the plurality of constraint nodes are both associated with and applied to a common one of the plurality of leaf nodes.
15. The method of claim 2, wherein generating the second layout of the IC further comprises:
forming, using the computer, a plurality of placements that satisfy the plurality of first constraints in accordance with a cost function; and
selecting, using the computer, one of the plurality of placements with an optimized cost function.
16. The method of claim 15, wherein the cost function is associated with a size of one of the plurality of placements.
17. The method of claim 15, wherein the cost function is associated with a wire length of one of the plurality of placements.
18. The method of claim 9, wherein generating the second layout of the IC further comprises:
forming, using the computer, a plurality of placements that satisfy a first constraint associated with one of a plurality of constraint nodes when the first constraint is not a matching or symmetry constraint;
forming, using the computer, a placement that satisfies a first constraint associated with one of a plurality of constraint nodes when the first constraint is a matching or symmetry constraint;
evaluating, using the computer, a cost function associated with each of the plurality of placements; and
selecting, using the computer, one of the plurality of placements with an optimized cost function.
19. The method of claim 18, wherein the second layout of the IC is generated from the bottom of the constraint tree to the top of the constraint tree and wherein the cost function is associated with a size of one of the plurality of placements.
20. The method of claim 18, wherein the second layout of the IC is generated from the top of the constraint tree to the bottom of the constraint tree and wherein the cost function is associated with a wire length of one of the plurality of placements.
21. A system for forming an integrated circuit (IC) layout, the system comprising:
a processor, and
a memory storing a set of instructions which when executed by the processor configures the processor to:
automatically form a constraint tree for a first layout of the IC when the processor is invoked to receive the first layout of the IC, the constraint tree comprising a plurality of constraint nodes describing placement constraints based on the first layout, wherein the placement constraints comprise:
one or more matching constraints,
one or more symmetry constraints, and
one or more other constraints; and

generate a second layout of the IC, the second layout of the IC conforming with the constraints of the constraint tree, wherein:
device modules of the second layout subject to the matching constraints are placed with a placement pattern extracted from the corresponding device modules of the first layout without exploring other placement patterns,
device modules of the second layout subject to the symmetry constraints are placed with a placement pattern extracted from the corresponding device modules of the first layout without exploring other placement patterns, and
device modules of the second layout subject to the other constraints are placed with a placement pattern which is generated as a result of exploring alternative placement patterns, and is different from the placement pattern of the corresponding device modules of the first layout.
22. The method of claim 21, wherein the processor is further configured to analyze the first layout to obtain a plurality of first constraints, wherein the first layout includes a plurality of device modules, each one of the plurality of first constraints being associated with and applied to a different plurality of device modules.
23. The method of claim 22, wherein at least one of the plurality of first constraints includes a relative placement pattern associated with its associated plurality of device modules.
24. The method of claim 22, wherein at least one of the plurality of first constraints includes a matching or symmetry constraint in accordance with an analysis of a plurality of analog building blocks from a netlist of the first layout.
25. The method of claim 22, wherein the processor is further configured to generate the second layout in accordance with a second size for at least one of the plurality of device modules different than a first size for the at least one of the plurality of device modules in the first layout.
26. The method of claim 22, wherein the processor is further configured to generate the second layout in accordance with a second design rule different from a first design rule associated with the first layout.
27. The method of claim 22, wherein the processor is further configured to:
provide at least one second constraint different than any one of the plurality of first constraints; and
form a constraint tree further in accordance with the at least one second constraint.
28. The method of claim 22, wherein the processor is further configured to:
determine a priority for each one of the plurality of first constraints;
form a constraint list from the plurality of first constraints according to the determined priority for each one of the plurality of first constraints;
form a root node at the top of the constraint tree, the root node being associated with a placement design of the IC;
form a plurality of leaf nodes at the bottom of the constraint tree, each one of the plurality of leaf nodes associated with a different one of the plurality of device modules;
insert one of the constraint nodes between the root node and an associated plurality of leaf nodes, each one of the constraint nodes associated with a different one of the plurality of first constraints; wherein the inserted constraint node is associated with one of the plurality of first constraints with a highest determined priority in the constraint list;
determine if a conflict exists
discard from the constraint tree the inserted constraint node when a conflict exists;
remove from the constraint list the one of the plurality of first constraints with the highest determined priority; and
repeat inserting, determining if a conflict exists, discarding, and removing until the constraint list is empty.
29. The method of claim 22, wherein the processor is further configured to:
form a root node at the top of the constraint tree, the root node being associated with a placement design of the IC;
form a plurality of leaf nodes at the bottom of the constraint tree, each one of the plurality of leaf nodes associated with a different one of the plurality of device modules; and
insert one of the constraint nodes between the root node and an associated plurality of leaf nodes.
30. The method of claim 29, wherein the processor is further configured to edit at least one of the plurality of constraint nodes in the constraint tree interactively.
31. The method of claim 29, wherein the processor is further configured to record a placement attribute associated with at least one of the plurality of first constraints in at least one of the constraint nodes.
32. The method of claim 29, wherein forming the constraint tree further comprises:
determining if a conflict exists; and
discarding from the constraint tree the inserted one of the plurality of constraint nodes when a conflict exists.
33. The method of claim 32, wherein a conflict exists when more than one route is found through the constraint tree from one of the plurality of leaf nodes to the root node.
34. The method of claim 32, wherein a conflict exists when the inserted one of the plurality of constraint nodes and an existing one of the plurality of constraint nodes are both associated with and applied to a common one of the plurality of leaf nodes.
35. The method of claim 22, wherein the processor is further configured to:
form a plurality of placements that satisfy the plurality of first constraints in accordance with a cost function; and
select one of the plurality of placements with an optimized cost function.
36. The method of claim 35, wherein the cost function is associated with a size of one of the plurality of placements.
37. The method of claim 35, wherein the cost function is associated with a wire length of one of the plurality of placements.
38. The method of claim 29, wherein the processor is further configured to:
form a plurality of placements that satisfy a first constraint associated with one of a plurality of constraint nodes when the first constraint is not a matching or symmetry constraint;
form a placement that satisfies a first constraint associated with one of a plurality of constraint nodes when the first constraint is a matching or symmetry constraint;
evaluate a cost function associated with each of the plurality of placements; and
select one of the plurality of placements with an optimized cost function.
39. The method of claim 38, wherein the processor is further configured to generate the second layout of the IC from the bottom of the constraint tree to the top of the constraint tree and wherein the cost function is associated with a size of one of the plurality of placements.
40. The method of claim 38, wherein the processor is further configured to generate the second layout of the IC from the top of the constraint tree to the bottom of the constraint tree and wherein the cost function is associated with a wire length of one of the plurality of placements.

The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.

1. A workstation comprising:
a) an enclosure having a front wall, a back wall, a top wall, a bottom wall, and first and second opposed end walls, said walls defining a chamber having an air inlet opening, an air outlet opening and a make-up air inlet;
b) a filter between at least one of said openings and said chamber; and
c) an airflow means to direct air along a horizontal pathway through at least part of said chamber between said end walls, wherein said airflow means communicates with an exhaust opening allowing a portion of filtered airflow to be exhausted outside of said chamber thereby urging make-up air to flow through said make-up air inlet into said chamber maintaining a net airflow into said chamber.
2. The workstation of claim 1, wherein at least one of said openings is located in an end wall.
3. The workstation of claim 1, wherein said air inlet opening is located in said first end wall, and said air outlet opening is located in said second end wall.
4. The workstation of claim 1, wherein said airflow means is comprised of a conduit extending between said openings, and a fan to convey air from said air outlet opening to said air inlet opening.
5. The workstation of claim 1, wherein at least one of said front and back walls includes an access opening.
6. The workstation of claim 1, wherein said inlet opening is located in one of said end walls, and said outlet opening is located in said back wall.
7. (canceled).
8. A workstation comprising:
a) an enclosure having a front wall, a back wall, a top wall, a bottom wall, and first and second opposed end walls, said walls defining a chamber having an air inlet opening adjacent said first end wall and an air outlet opening adjacent said second opposed wall, one of said walls other than one of said end walls including a make-up air inlet;
b) a filter between at least one of said openings and said chamber; and
c) air conveyance means adapted to direct air horizontally through at least part of said chamber between said end walls, said air conveyance means including a conduit extending between said openings, and a fan to convey air from said air outlet opening to said air inlet opening, wherein said conduit includes an exhaust opening between said fan and said outlet opening.
9. The workstation of claim 8, wherein at least one of said openings is located in an end wall.
10. The workstation of claim 8, wherein said air inlet opening is located in said first end wall, and said air outlet opening is located in said second end wall.
11. The workstation of claim 8, wherein at least one of said front and back walls includes an access opening.
12. The workstation of claim 8, wherein said inlet opening is located in one of said end walls, and said outlet opening is located in said back wall.
13. (canceled).
14. A workstation comprising:
a) an enclosure having a front wall, a back wall, a top wall, a bottom wall, and first and second parallel, opposed end walls, said walls defining a chamber having an air inlet opening adjacent said first end wall and an air outlet opening adjacent said second opposed wall, one of said walls other than one of said end walls including a make-up air inlet,
b) a first HEPA filter between said air inlet openings and said chamber;
c) a second HEPA filter between said air outlet opening and said chamber; and
d) air conveyance means adapted to direct air along a horizontal pathway through at least part of said chamber between said end walls, said air conveyance means including a conduit extending between said openings, and a fan to convey air from said air outlet opening to said air inlet opening, wherein said conduit includes an exhaust opening between said fan and said outlet opening.
15. The workstation of claim 14, wherein said first and second HEPA filter are parallel to each other and perpendicular to said horizontal pathway.
16. The workstation of claim 14, wherein said air inlet opening is in a wall other than an end wall, said hood further including deflectors to direct air from said air inlet opening along said horizontal pathway.
17. A workstation comprising:
a) an enclosure having a front wall, a back wall, a top wall, a bottom wall, a first end wall having a first air inlet opening, and a second end wall having a second air inlet opening, said walls defining a chamber, one of said walls other than one of said end walls including an air outlet opening, and one of said walls other than one of said end walls including a make-up air inlet and wherein at least one of said front and back walls includes a closeable access opening;
b) a first HEPA filter between said first air inlet openings and said chamber;
c) a second HEPA filter between said air outlet opening and said chamber; and
d) air conveyance means adapted to direct air along horizontal pathway through at least part of said chamber between said first and second inlet openings and said outlet opening, said air conveyance means including a conduit extending between said first and second inlet openings and said air outlet opening, and a fan to convey air from said air outlet opening to said air inlet opening, wherein said conduit includes an exhaust opening between said fan and said outlet opening.
18. (canceled).
19. The workstation of claim 17, wherein said inlet opening is located in one of said end walls, and said outlet opening is located in said back wall.
20. (canceled).