Method for automatically routing circuits of very large scale integration (VLSI)
First Claim
1. A method of automatically routing interconnections among a plurality of circuit elements comprising a circuit, the circuit elements having one or more connectors, the interconnections defined by a netlist, the method comprising the steps of:
- determining initial placement of the circuit elements;
globally routing all nets of the netlist losing expandable boundaries, wherein said expandable boundaries comprise expandable physical regions including bin boundaries coextensive with channel spaces through which nets may be routed;
moving the circuit elements in accordance with the results of said step of globally routing;
if the moving of the circuit elements by said step of moving is greater than a predetermined amount;
reputing said steps of globally routing and moving;
otherwise, globally routing all nets of the netlist using no expandable boundaries;
routing all nets of the netlist using a detailed router; and
generating an output representative of the process layers for manufacturing the circuit.
1 Assignment
0 Petitions
Accused Products
Abstract
An automated routing tool for routing interconnections between circuit elements, standard cells and/or cell blocks of cell-based designs which incorporates the best features of both currently known gate array routing techniques with currently known cell-based routing techniques. The invention eliminates the disadvantages of permitting the detailed router to adjust the relative positions of the circuit elements, standard cells and/or cell blocks during the detailed routing process. The method employs a topology manager which iteratively compacts the circuit topology while at the same time optimizing the routing of the interconnections among the circuit elements, standard cells and/or cell blocks of the circuit design. The method employs bin-based global routing, which identifies expandable boundaries and which provides input to a compaction routine which expands or contracts the expandable areas in accordance with the result of the global routing process. The detailed routing step is not performed until after the relative positions of the circuit elements, cells and/or cell blocks have been already fixed.
-
Citations
20 Claims
-
1. A method of automatically routing interconnections among a plurality of circuit elements comprising a circuit, the circuit elements having one or more connectors, the interconnections defined by a netlist, the method comprising the steps of:
-
determining initial placement of the circuit elements; globally routing all nets of the netlist losing expandable boundaries, wherein said expandable boundaries comprise expandable physical regions including bin boundaries coextensive with channel spaces through which nets may be routed; moving the circuit elements in accordance with the results of said step of globally routing; if the moving of the circuit elements by said step of moving is greater than a predetermined amount; reputing said steps of globally routing and moving; otherwise, globally routing all nets of the netlist using no expandable boundaries; routing all nets of the netlist using a detailed router; and generating an output representative of the process layers for manufacturing the circuit. - View Dependent Claims (2, 3, 4)
-
-
5. A method of automatically routing interconnections among a plurality of elements on an integrated circuit comprising the steps of:
-
obtaining the initial element placement; globally routing a plurality of said interconnections using expandable boundaries, wherein said expandable boundaries comprise expandable physical regions including bin boundaries coextensive with channel spaces through which nets may be routed; moving said elements in accordance with the results of said step of globally routing; repeating said steps of globally routing and moving until the movement of said elements pursuant to said step of moving is not greater than a predetermined amount; and globally routing a plurality of said interconnections using no expandable boundaries. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. An apparatus for automatically routing interconnections among a plurality of elements on an integrated circuit, said apparatus comprising:
-
means for obtaining the initial element placement; means for globally routing a plurality of said interconnections using expandable boundaries, wherein said expandable boundaries comprise expandable physical regions including bin boundaries coextensive with channel spaces through which nets may be routed; means for moving said elements in accordance with the results of said step of globally routing; means for repeating said global routing and moving until the movement of said elements during a single iteration of said moving is not greater than a predetermined amount; and means for globally routing a plurality of said interconnections using no expandable boundaries. - View Dependent Claims (17)
-
-
18. A computer program product comprising a computer-usable medium having computer-readable code embodied therein for automatically routing interconnections among a plurality of elements on an integrated circuit, the computer-readable code comprising:
-
an initial placement module, which is configured to obtain the initial element placement; a first global routing module, which is configured to globally route a plurality of said interconnections using expandable boundaries, wherein said expandable boundaries comprise expandable physical regions including bin boundaries coextensive with channel spaces through which nets may be routed; a movement module, which is configured to move said elements in accordance with the results from said first global routing module; an iteration module, which is configured to repeat the procedures dictated by said first global routing module and said movement module until the involvement of said components during an iteration of said first global routing module and said movement module is not greater than a predetermined amount; and a second global routing module, which is configured to globally route a plurality of said interconnections using no expandable boundaries. - View Dependent Claims (19, 20)
-
Specification