Method and apparatus for improving engineering change order placement in integrated circuit designs
First Claim
1. A method for laying out an integrated circuit design based upon a netlist provided by a behavioral synthesis tool, said method comprising:
- placing cells specified by said netlist in a layout area in a placement step, said cells including pins that are interconnected by nets;
verifying timing constraints in a timing verification step of said placed cells in said layout area; and
if said timing verification step indicates that timing does not verify in that said timing constraints are not met;
modifying said netlist pursuant to an engineering change order (ECO); and
making an ECO placement of at least one cell into said layout area by;
(1) picking an unplaced cell from a set of unplaced cells to be a picked cell;
(2) determining a target window within said layout area for the placement of said picked cell;
(3) mapping said picked cell inside said target window;
(4) removing said picked cell from said set of unplaced cells;
(5) optimizing the placement of said picked cell by analyzing said picked cell within said target window with respect to said placed cells, and modifying said placement of said picked cell with respect to said placed cells if modifying said placement of said picked cell improves timing; and
(6) repeating steps (1)-(5) until said set of unplaced cells is empty wherein said optimizing the placement of said picked cell includes performing an m-way interchange;
wherein said m-way interchange includes;
determining a closed loop pattern of m windows;
moving cells either clockwise or counter-clockwise within said closed loop pattern;
calculating said target window for said picked cell;
picking an additional cell and calculating a target window for said additional cell until a predetermined number of additional cells has been picked;
picking a last additional cell and calculating a target window for said last additional cell such that said picked cell is within said target window for said last additional cell; and
,moving said picked cell, said additional cells, and said last additional cell either clockwise or counter clockwise within said closed loop pattern; and
moving cells either clockwise or counter clockwise within said closed loop pattern.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for laying out an integrated circuit design based upon a netlist provided by a behavioral synthesis tool includes the steps of: (A) placing cells specified by the netlist in a layout area in a placement step, the cells including pins that are interconnected by nets; (B) verifying timing constraints in a timing verification step of the placed cells in the layout area; and (C) if the timing verification step indicates that timing does not verify in that the timing constraints are not met: (a) modifying the netlist pursuant to an engineering change order (ECO); and (b) making an ECO placement of at least one cell into the layout area by (i) picking an unplaced cell from a set of unplaced cells to be a picked cell; (ii) determining a target window within said layout area for the placement of said picked cell; (iii) mapping said picked cell inside said target window; (iv) removing said picked cell from said set of unplaced cells; (v) optimizing the placement of said picked cell by analyzing said picked cell within said target window with respect to other cells, and modifying said placement of said picked cell if it improves timing; and (vi) repeating steps (i)-(v) until said set of unplaced cells is empty. A layout tool implements the method on a computer system to form a portion of an integrated circuit fabrication system.
-
Citations
29 Claims
-
1. A method for laying out an integrated circuit design based upon a netlist provided by a behavioral synthesis tool, said method comprising:
-
placing cells specified by said netlist in a layout area in a placement step, said cells including pins that are interconnected by nets; verifying timing constraints in a timing verification step of said placed cells in said layout area; and if said timing verification step indicates that timing does not verify in that said timing constraints are not met; modifying said netlist pursuant to an engineering change order (ECO); and making an ECO placement of at least one cell into said layout area by; (1) picking an unplaced cell from a set of unplaced cells to be a picked cell; (2) determining a target window within said layout area for the placement of said picked cell; (3) mapping said picked cell inside said target window; (4) removing said picked cell from said set of unplaced cells; (5) optimizing the placement of said picked cell by analyzing said picked cell within said target window with respect to said placed cells, and modifying said placement of said picked cell with respect to said placed cells if modifying said placement of said picked cell improves timing; and (6) repeating steps (1)-(5) until said set of unplaced cells is empty wherein said optimizing the placement of said picked cell includes performing an m-way interchange; wherein said m-way interchange includes; determining a closed loop pattern of m windows; moving cells either clockwise or counter-clockwise within said closed loop pattern; calculating said target window for said picked cell; picking an additional cell and calculating a target window for said additional cell until a predetermined number of additional cells has been picked; picking a last additional cell and calculating a target window for said last additional cell such that said picked cell is within said target window for said last additional cell; and
,moving said picked cell, said additional cells, and said last additional cell either clockwise or counter clockwise within said closed loop pattern; and moving cells either clockwise or counter clockwise within said closed loop pattern.
-
-
2. A method for laying out an integrated circuit design based upon a netlist provided by a behavioral synthesis tool, said method comprising the steps of:
-
(A) placing cells specified by said netlist in a layout area in a placement step, said cells including pins that are interconnected by nets; (B) verifying timing constraints in a timing verification step of said placed cells in said layout area; and (C) if said timing verification step indicates that timing does not verify in that said timing constraints are not met; (a) modifying said netlist pursuant to an engineering change order (ECO); and (b) making an ECO placement of at least one cell into said layout area by; (1) picking an unplaced cell from a set of unplaced cells to be a picked cell; (2) determining a target window within said layout area for the placement of said picked cell; (3) mapping said picked cell inside said target window; (4) removing said picked cell from said set of unplaced cells; (5) optimizing the placement of said picked cell by analyzing said picked cell within said target window with respect to said placed cells, and modifying said placement of said picked cell with respect to said placed cells if modifying said placement of said picked cell improves timing; and (6) repeating steps (1)-(5) until said set of unplaced cells is empty. - View Dependent Claims (3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method for laying out an integrated circuit comprising the steps of:
-
picking a cell from a set of cells to be a picked cell; determining a target window within said layout area for the placement of said picked cell; mapping said picked cell inside said target window; optimizing the placement of said picked cell by analyzing said picked cell within said target window with respect to other cells, and modifying said placement of said picked cell if it improves timing and reduces total net length; and repeating the preceding steps until no further improvement is desired; wherein said step of optimizing the placement of said picked cell includes at least one of an m-way interchange, a move pass, and a flip pass, wherein; said m-way interchange includes determining a closed loop pattern of m windows, and moving cells either clockwise or counter clockwise within said closed loop pattern; said move pass includes moving said picked cell into an available target window other than said target window; and said flip pass includes re-orienting said picked cell within said target window. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. An integrated circuit layout tool comprising:
-
a computer system including a central processing unit (CPU) and memory coupled to said CPU; means for obtaining a netlist describing an integrated circuit design; means for placing cells specified by said netlist in a layout area of said integrated circuit design, said cells including pins that are interconnected by nets; means for verifying timing constraints of said placed cells in said layout area and if said timing constraints are not verified by said means for verifying timing constraints of said placed cells, then; (a) means for modifying said netlist pursuant to an engineering change order (ECO); and (b) means for making an ECO placement of at least one cell into said layout area based upon said timing constraints while adjusting any affected nets as specified by said netlist, wherein said means for making an ECO placement includes (i) means for picking an unplaced cell from a set of unplaced cells to be a picked cell, and (ii) means for optimizing the placement of said picked cell by analyzing said picked cell with respect to other cells, and modifying said placement of said picked cell if modifying said placement of said picked cell improves timing; wherein said means for making an ECO placement further comprises; means for determining a target window within said layout area for the placement of said picked cell; means for mapping said picked cell inside said target window; and means for removing said picked cell from said set of unplaced cells. - View Dependent Claims (20, 21, 22, 23, 24, 27, 28, 29)
-
- 25. An integrated circuit layout tool as recited in claim 25 wherein said means for optimizing utilizes two or more of said m-way interchange, said move pass, and said flip pass.
Specification