CA1280517C - Automatic circuit layout router - Google Patents

Automatic circuit layout router

Info

Publication number
CA1280517C
CA1280517C CA000563784A CA563784A CA1280517C CA 1280517 C CA1280517 C CA 1280517C CA 000563784 A CA000563784 A CA 000563784A CA 563784 A CA563784 A CA 563784A CA 1280517 C CA1280517 C CA 1280517C
Authority
CA
Canada
Prior art keywords
path
vertex
established
terminal
paths
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
CA000563784A
Other languages
French (fr)
Inventor
John J. Doyle, Jr.
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Control Data Corp
ETA SYSTEMS Inc
Original Assignee
Control Data Corp
ETA SYSTEMS Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Control Data Corp, ETA SYSTEMS Inc filed Critical Control Data Corp
Application granted granted Critical
Publication of CA1280517C publication Critical patent/CA1280517C/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/394Routing

Abstract

AUTOMATIC CIRCUIT LAYOUT ROUTER
ABSTRACT OF THE DISCLOSURE
A method for operating a digital computer to globally route interconnects between terminals of a gate array. A first terminal closest to an average position of terminals to be interconnected is identified. A second terminal closest to the first terminal is then identified, and a first path between the first and second terminals is established along possible paths. An edge of the first path is set as a routing path if predetermined conditions are met.
A closest remaining terminal to an established path is next identified, and a shortest path between the closest terminal and the established path to which it was closest is established. Edges of the shortest path and/or the established path to which it was closest are set as routing paths, if predetermined conditions are met. The above steps are then repeated for remaining terminals to be inter-connected. Any possible paths within established paths with no set edges can then be set as routing paths.

Description

~ ~30~;~7 AUTOMATIC CIRCUIT LAYOUT ROUTER
BACRGROUND OF THE INVENTION
1. Field of the Invention.
The present invention relates to a method 05 for operating a computer as an integrated circuit layout router to lay out or determine interconnect paths between circuit elements or macros on an integrated circuit. In particular, the present invention is a method for globally assigning interconnect paths to vertical and horizontal routing channels of a gate array.
2. Description of the Prior Art.
Gate arrays are commonly used integrated circuits on which a large number of transistors are fabricated in a geometric pattern of vertical columns and horizontal rows. During subsequent manufacturing ~teps, the gate array is personalized by interconnecting individual transistors to form basic circuit elements or macros, and interconnecting the mAcros to form a functional integrated circuit with larger scale logic systems. This customization of the gate array is done through the application of ~everal metal interconnect layers over the transistors. Each metal layer i8 typically partitioned into a plurality of vertical routing channels and horizontal routing channels. Each vertical routing channel includes a plurality of possible routing paths or tracks. Similarly, each vertical routing channel includes a plurality of possible vertical rou~ing tracks.
Routing tracks for macro intraconnect metal, the metal used to connect individual transistors and form the macros, is predetermined. Once the location r~'li~ ( .. . .

~8q:)517 of a macro is established, the precise horizontal and vertical routing tracks to which the macro intraconnect metal will be applied can be determined.
After all the macro intraconnects on a gate 05 array have been established, it is necessary to route or assign the macro interconnect metal, the metal used to interconnect the macros, to horizontal and vertical routing tracks. Various procedures for routing macro interconnect metal are known.
Utilizing one known procedure a net list, a group of macro terminals which must be interconnected, is first identified. Interconnects between terminals of the net are then globally routed to vertical and horizontal routing channels. One global router algorithm permits interconnects to be assigned to any routing channels within a rectangular area encompassing all terminals of the net. A maze router is then used to assign horizontal segments of the globally routed interconnects to specific tracks of the horizontal channels. This procedure is repeated for all nets on the integrated circuit. Finally, a channel router is used to assign vertical segments of the globally routed interconnects to specific tracks of the vertical channels.
To increase the performance of integrated circuit gate arrays, designers are increasing the density of transistors fabricated thereon. The transistors are therefore being spaced ever closer to one another, decreasing the amount of space available for interconnects. The overdll size of gate arrays is also increasing, permitting larger numbers of macros to be fabricated on the gate array and thereby increaYe its capabilities. The more macros formed on ~8~517 the gate array, however, the greater the demands that are placed upon the router. Problems resulting from the increased transistor density are therefore compounded. In view of the fact that the spacing 05 between transistors is being decreased while the amount of space required for routing tracks is finite, the number of available tracks for routing intraconnect and interconnect metal with respect to the number of transistors in a given area on the integrated circuit is decreasing.
It is evident that with the increase in size and density of gate arrays there is a continuing need for improved methods for routing interconnect metal.
The routing procedure must efficiently utilize available routing paths to reduce wiring congestion.
It is important for the router to keep the length of macro interconnects to a minimum to reduce skews or timing error~ due to signal propagation delays.
Reliability, the ability to route all required interconnects, and speed, are also required of the router.
SUMMARY OF THE INVENTION
The present invention is a method for operating a digital computer to establish routing paths, along an x-y grid of possible paths, between a plurality of terminals on an integrated circuit. The average position on the grid of a group of terminals to be interconnected is first determined. A first ter~inal closest to the average position along x and/or y paths of the grid is theL identified. A
second terminal clo~est to the first terminal along x and/or y paths of the grid is al~o identified.
Having identified the first and second ... .

128~

terminals, a first path between these terminals along x and/or y paths of the grids i9 established. The first path is rectangular and has four edges and four vertices including the first and second terminals 05 when the first and second terminals are on different x and different y paths. If the first and second terminals are on the same x or same y path, the first path is a line and has one edge and two vertices including the first and second terminals. The edge of the first path is then set as a routing path if the first path is a line.
A closest remaining terminal which is clo~est, along x and/or y paths of the grid, to an edge or vertex of an established path having no set edges, or to a set edge or its vertices of an established path which has a set edge, whichever is closest, is then identified. A shortest path along x and/or y paths between the closest terminal and the edge or vertex of the established path to which it is closest is then established. The shortest path is rectangular and has four edges and four vertices including the closest terminal and a vertex common with a vertex of the established path when the shortest path reguires traversal of both x and y paths. The ~hortest path iB a line and has an edge and two vertices including the closest terminal when the shorte~t path requires traversal of only x or only y paths.
Edge~ of the established path which couple lt~ vertices which include terminals and which have a vertex in common with a vertex of the shortest path are set as routing paths if the established path has no set edges and the common vertex does not include a . . ~

.

.. ., . ~.

~280517 terminal. The edge of the shortest path which couples the closest terminal to the edge or vertex of the established path is set as a routing path if the shortest path is a line and has a vertex common with 05 a vertex of the established path, or is a line and has a vertex at a set edge of the established path.
The above steps, beginning with the step of identifying the closest remaining terminal, are then repeated for all remaining terminals to be interconnected.
In one preferred embodiment, the method further includes the ~tep of setting as routing paths any of the possible paths within and including the edge~ of the e8tablished path~ which have no set edge~ and which couple the terminals of the established paths to a vertex or set edge of an established path having a ~et edge.
In still other embodiments, the established path which the current shortest path inter~ects is reestablished if it is a rectangle with no cet edges and the ~hortest path is a line which does not have a vertex in common with a vertex of the establi~hed path. The reestablished path will be rectangular and have four edge~ and four vertices including two vertices of the established path and a vertex common with the vertex of the ~hortest path which inter~ected the e~tabli~hed path. The shortest path i~ then reestablished if it i~ a line and does not have a vertex common with a vertex of the established path. The ree~tablished shortest path will be a rectangle and have four edges and four vertices including a vertex common with the closest terminal, a vertex at the intersection of the shortest path and ~ 4976N 17JUN87 ,, .~. .

~8C~S~7 the established path, and a vertex common with a vertex of the established path which includes a terminal. Edges of the reestablished shortest path which couple its vertices which are also terminals and which have a vertex ln common with the established path are then set as routing paths.
The router of the present invention can quickly and accurately route virtually all required interconnects on an integrated circuit such as a gate array. Available routing paths are efficiently utilized to keep wirlng congestion to a minimum.
Desirable gate array characteristlcs such as increased transistor denslty and overall array size are thereby facilitated.
In accordance with a broad aspect of the invention there is provided a method for operating a digital computer to set routing paths along an x-y grid of possible paths, between a group of termlnals on an integrated circuit, including, (a) determining an average x-y position on the grid of the terminals to be interconnected;
(b) identifying a flrst terminal of the group which is closest to the average position along x and/or y paths of the grld;
(c) identlfying a second remaining terminal of the group which i~ closest to the first terminal along x and/or y paths of the grid;
(d) establishing a first path along x and/or y paths of the grid between the first and second terminals, wherein the first path is rectangular and has four edges and four vertices including the first and second terminals when the first and second terminals ~f~80S~
6a 66082-253 are on different x and different y paths, and wherein the first path is a line and has one edge and two vertices including the first and second terminals when the first and second terminals are on the same x or same y path;
(e) setting the edge of the first path as a routing path if the first path is a line;
(f) identifying a closest remaining terminal of the group which is closest along x and/or y paths of the grid, to an edge of vertex of an established path having no set edges, or to a set edge or lts vertices of an established path which has a set edge, whichever is closest;
(g) establishing a shortest path along x and/or y paths of the grid between the closet termlnal identified in step (f) and the edge or vertex of the established path to which it was closest, wherein the shortest path is rectangular and has four edges and four vertices including the closest terminal and a vertex common with a vertex of the established path when the shortest path traverses both x and y paths of the grid, and wherein the shortest path is in line and has an edge and two vertices lncluding the closest terminal when the shortest path traverses only x or only y paths of the grid;
(h) setting as a routing path edges of the established path which couple its vertices which include terminals and whlch have a vertex in common with the shortest path, if the established path and shortest path have a common vertex, lf the established path has no set edges, and if the common vertex does not lnclude a terminal;

, . . .

~ 286~
6b 66082-253 (i) setting as a routing path the edge of the shortest path which couples the closest terminal to the edge of vertex of the established path if the shortest path is a line and has a ver~ex common with a vertex of the established path, or is a line and has a vertex at a set edge of the established path; and (j) repeating steps ~f) through (i) for remaining terminals of the group to be interconnected.
In accordance with another broad aspect of the invention there is provided a method for operating a digital computer to set routlng paths, along an x-y grid of possible paths, between a group of terminals on an integrated circuit, includingl (a) determining an average x-y position on the grid of the terminals to be interconnected;
(b) identifying a first terminal of the group which is closest to the average position along x and/or y paths of the grid;
(c) identifying a second remalnlng terminal of the group whlch is closest to the flrst termlnal along x and/or y paths of the grld;
(d) establlshlng a flrst path along x and/or y paths of the grld between the first and second terminals, whereln the first path 18 rectangular and has four edges and four vertices including the first and second termlnals when the flrst and second termlnals are on dlfferent x and dlfferent y paths, and wherein the first path i8 a llne and has one edge and two vertlces lncludlng the fir#t and second termlnals when the first and second terminals are ,,, ii ~8~
6c 66082-253 on the same x or same y path;
(e) setting the edge of the first path as a routing path if the first path is a llne;
(f) identifying a closest remalning terminal of the group which is closest, along x andtor y paths of the grid, to an edge or vertex of an established path having no set edyes, or to a set edge or its vertices of an established path which has a set edge, whlchever iæ closest;
(g) establishing a shortest path along x and/or y paths between the closest terminal identified in step (f) and the edge or vertex of the established path to which it was closest, wherein the shortest path is rectangular and has four edges and four vertices lncluding the closest terminal and a vertex common with a vertex of the established path when the shortest path traverses both x and y paths, and wherein the shortest path is a line and has an edge and two vertices including the closest terminal when the shortest path traverses only x or only y paths;
(h) settlng as a routing path edges of the established path whlch couple its vertices whlch are also termlnals and whlch have a vertex common with a vertex of the shortest path, if the established path and shortest path have a common vertex, if the established path has no set edges, and if the common vertex does not include a termlnal;
(i) setting as a routing path the edge of the shortest path which couples the closest terminal to the edge, or vertex of the established path if the shortest path ls a line and has a vertex common with a vertex of the established path, or is a line and has ~ ~aos~7 6d 66082-253 a vertex, at a set edge of the established path;
(j~ reestablishing the established path to which the closest terminal was closest if the established path is a rectangle with no set edges and the shortest path is a line which does not have a vertex common with a vertex of the established path, wherein the reestablished established path is rectangular and has four edges and four vertices including two vertices of the established path and a vertex common with the vertex of the shortest path which intersected the established path;
(k) reestablishing the shortest path if the shortest path is a line and does not have a vertex common with a vertex of the established path to whlch the closest terminal was closest (prior to belng reestablished if it was reestablished), wherein the reestablished shortest path is a rectangle and has four edges and four vertices including a vertex at the location of the closest terminal, a vertex at the location at which the shortest path intersected the established path or the reestablished established path, and a vertex common with a vertex of the established path ~prior to being reestablished if it was reestablished), which includes a terminal;
(1) setting as a routing path edges of the reestablished shortest path which couple lts vertices which include terminals and which have a vertex common with a vertex of the established path or the reestablished established path; and (m) repeating steps (f) through (1) for remaining terminals of the group to be interconnected.

~280s~17 BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 is a graphic representation of a portion of a gate array having transistors fabricated thereon.
Figure 2 is a block diagram representation of a computer in which the automatic circuit layout router of the present invention can be implemented.
Figure 3 is a flow chart describing a routing procedure which can include a global routing method in accordance with the present invention.
Figure 4 is a graphic representation of a gate array such as that shown in Figure 1 on which circuit elements, represented in schematic form, have been fabricated, and lllustrating possible routlng tracks.
Flgure 5, comprising parts 5A, SB and 5C, is a written descrlption in flow chart form of the routing method of the present invention.
Figure 6A-6E graphically illustrate the routing procedure of the present invention as applled s ~Z80S~7 to the circuit layout of the gate array shown in Fi gure 4.
DETAILED DESCRIPTIO~ OF THE PREFERRED EMBODIMENTS
_ _ The present invention is a ~ethod for 05 operating a programmable digital computer as an automatic integrated circuit layout router to lay out routing or interconnect paths on an integrated circuit such as gate array 10 which is illustrated in Figure 1. Gate arrays such as that illustrated in Figure 1 are well known. Gate array 10 is fabricated using CMOS technology in one embodiment, and includes a plurality of positive supply rails 13 alternately pos~tioned between and parallel to negative supply rails 15. A plurality of P-channel cells 12P and N-channel cells 12N which are arranged in vertical columns and horizontal rows are also fabricated on gate array 10. In the embodiment shown, each cell 12P includes three P-channel transistors 14, while cell~ 12N include three N-channel transistors 16.
Only a portion of gate array 10 i9 shown in Figure 1. In one embodiment, gate array 10 is ninety-five cells 12P and 12N wide, and one hundred and twenty-seven cells high.
Gate array 10 i8 personalized, or has its P-channel tran~istor~ 14 and N-channel transistors 16 interconnected to form circuit element~ or macros and the macros interconnected to form larger scale logic ~ystems, by two metal interconnect layers (not shown). Each metal layer i8 partitioned into a plurality of vertical routing channels 18 and horizontal routing channels 20. For purposes of convention, sides of vertical routing channels 18 are shown centered over cells 12P and 12N, while sides of ~'~8(~

horizontal routing channels 20 are centered on ~upply rails 13 and 15.
In the embodiment shown, each vertical routing channel 18 includes ~ixteen possible vertical 05 routing paths or tracks 22 at which interconnect metal can be deposited on one of the two metal layers. ~orizontal routing channels 20 each include eleven possible horizontal routing paths or tracks 24 at which interconnect metal can be deposited.
Vertical routing tracks 22 and horizontal routing tracks 24 thereby form an orthogonal x-y grid of possible routing paths over gate array 10. It i6 to be understood that although routing paths 22 and 24 are illustrated by broken line~ in Figure 1, they represent no physical ~tructure of gate array 10 and are ~imply possible locationc for interconnect metal. As a general rule, metal interconnect~ alon~
vertical tracks 22 are made on the first metal layer, while interconnects along horizontal tracks 24 are made on the ~econd metal layer. The first and 6econd metal layers are separated by an insulating layer in a well known manner. Vias, the interconnections between metal layers, can be made at designated intersections of vertical routing tracks 22 and horizontal routing tracks 24. Ir one embodiment only diagonally adjacent vias are permitted. Orthogonally adjacent vias are not allowed at any intersection.
The routing procedure of the present invention is preferably implemented by a digital computer 100 ~uch a3 that illustrated generally in Figure 2. Computer 100 includes an input/output (I/O) unit 102, central processing unit (CPU) 104, random access memory (RAM) 106 and mass storage ~L~80~i~7 g memory 108 such as magnetic tape. Macro intraconnects, the relative paths by which metal is applied to gate array 10 to fabricate particular macros from transistors 14 and 16, and contact cuts, 05 the interconnections between the first metal layer and transistors 14 and 16 of cells 12P and 12N, respectively, are predetermined, and data characteristic thereof will be stored in RAM 106 or mass storage 108.
10Data required to personalize a particular gate array 10, including that characteristic of macros to be fabricated on the gate array, their locations and the interconnections required between macros, is input to computer 100 through I/0 unit 15102. This data can be stored within RAM 106.
Instruction data characterizing the router algorithm of the present invention can be stored in mass ~torage 108. The input data is processed by CPU 104 in accordance with the router algorithm to generate data representative of the particular vertical tracks 22 and horizontal tracks 24 to which interconnect metal will be applied to interconnect terminals of the macro~. This data, along with data from intermediate proc-~sing ~tep~, is stored in RAM 106.
Data characterizing all interconnects on gate array 10 is then output from computer 100 to I/0 unit 102 ~e.g. on magnetic tape), and used to per~onalize the gate array during fabrication.
The router algorithm of the pre~ent invention, or the procedure utilized by computer 100 to determine routing paths on gate array 10, is described generally with reference to Figure 3. The fir~t step, that indicated by 32, is to lay out or ~8~7 position the logic macros and the macro intraconnect metal on gate array 10. This step is performed by storing data characterizing the particular transistors 14 and 16 from which the macro will be 05 constructed, and the particular tracks 22 and 24 to which intraconnect metal will be applied to form the logic macros. As described above, relative intraconnections between transistors 14 and 16 for each macro within a macro or cell library are predetermined and stored in memory. Once the particular transistors 14 and 16 which will be used to fabricate the macro are identified the particular tracks 22 and 24 to which metal must be applied can be quickly determined, and data representative thereof stored. Following this procedure, data characterizing macros such as gates, shift registers, multiplexers, etc., which depending upon their complexity can use from two to over one hundred cells 12P and 12N, can be stored in RAM 106. Layout procedures such as those described above with reference to step 32 are well known.
Figure 4 is a graphical representation of a plurality of logic macros including AND gate 50, D
flip-flops 52 and 54, and inverters 56 and 58 which are positioned at specific location6 on gate array 10, Although gate 50, flip-flops 52 and 54 and inverters 56 and 58 are illustrated schematically for purposes of e~ample, it i8 to be understood that these logic macros are actually formed by transistors 14 and 16 which are interconnected by macro intraconnect metal. Vertical routing channels 18A-18CC and horizontal routing channels 20A-20T are illustrated in Figure 4. As shown, AND gate 50 has ~Z80~1q an output terminal 60 at the intersection of channels 18A and 20A. Flip-flops 62 and 64 have input terminals 62 and 64 located at intersections of channels 18N and 20D, and 18Q and 20J, respectively.
05 Inverters 56 and 58 have input terminals 66 and 68 located at intersections of channels 18CC and 20E, and 18CC and 20T, respectively.
Referring back to Figure 3, after macro intraconnect metal has been layed out and data representative thereof stored in memory, the macros themselves must be interconnected. This procedure is initiated by identifying a net list as indicated at step 34. The net list is a group of macro terminals which must be interconnected. Using the macros of Figure 4 as an example, output terminal 60 of AND
gate 50 must be connected to D input terminals 62 and 64 of flip-flops 52 and 54, respectively, and to input terminals 66 and 68 of inverters 56 and 58, respectively. This particular net list will include data representative of terminals 60, 62, 64, 66 and 68, and their locations on gate array 10. This data will be stored in RAM 106 (Fig. 2). Procedures for obtaining and storing data representative of net lists and represented by step 34 are well known.
Once a net list is gathered, a global routing algorithm is followed by computer 100 to determine which segments or portions of which vertical channels 18A-18CC and which horizontal channels 20A-20T the interconnect metal will follow.
Global routing i8 indicated by step 36 in Figure 3.
Data representative of a set of instructions characterizing the global routing algorithm will be stored in mass storage 108 (Figure 2). A detailed ~L2a~

description of a global router algorithm in accordance with the present invention is given subsequently.
After global routing of a given net has been 05 completed, portions or segments of the interconnect paths within horizontal channels 20A-20T are assigned to specific horizontal tracks 24 within the horizontal channels. In one embodiment, a maze router algorithm is used for this purpose. This step is illustrated at 38 in Figure 3. Instructions characteristic of the maze router algorithm can be stored in ROM 108. Maze router algorithms of this type are well known.
As indicated at step 40 in Figure 3, the next step performed by the computer is to determine whether or not there are any more nets on integrated circuit 10 which must still be global routed and maze routed. If there are additional nets, computer 100 first gathers the net list as illustrated at step 34, performs a global route of the net interconnects to vertical channels 18A-18CC and horizontal channels 20A-20T a~ shown at step 36, and maze routes the horizontal segment~ to horizontal tracks 24 as illu~trated by step 38. These steps can be performed in a manner identical to those described above.
Finally, after all nets on gate array 10 have been global routed and maze routed in the manner described above, a channel router is implemented to assign all vertical segments of each net to specific vertical tracks 22 of the vertical channels 18S-18CC. This step is illustrated at 42 in Figure 3. In one embodiment, a dogleg channel router is used for this purpose. Channel routers of this type ~805~7 are well known.
A global router algorithm in accordance with the present invention, which can be utilized at step 36 in the overall routing procedure described above, 05 is described with reference to Figures 5 and 6A-6E.
Figure 5 is a flow chart which describes in detail the steps of the global router algorithm which was described generally at step 36. Figures 6A-6E are graphical representations of the application of the global router algorithm by computer 100 to interconnect the net formed by terminals 60, 62, 64, 66 and 68 of macros 50, 52, 54, 56 and 58, respectively, shown in Figure 4.
First step 36-1 implemented by computer 100 in accordance with global router algorithm 36 is to determine an average position of all terminals of the net, e.g., terminals 60, 62, 64, 66 and 68. In the embodiment described, step 36-1 is performed by computing a center of gravity in terms of the average x or horizontal channel 18A-18CC position, and the average y or vertical channel 20A-20T position. In the example illustrated in Figure 6A, terminal 60 is at an x-y channel position of (18A,20A), while terminals 62, 64, 66, and 68 have channel positions of (18N,20D), (18Q,20J), (18CC,20E), and (18CC,20T), respectively. A center of gravity (CG) of terminals 60, 62, 64, 66 and 68 is found by a simple average to be located at a channel po~ition of (18R,20H).
In accordance with second step 36-2, computer 100 will next compute the distance, in terms of the number of horizontal channels 18A-18CC and vertical channels 20A-20T, by which each terminal 60, 62, 64, 66 and 68 within the net is separated from ~28C~5~7 center of gravity CG. Utilizing this information, a first terminal which is closest to center of gravity CG can be identified as indicated by step 36-3. In the example shown in Figure 6A, terminal 64 is 05 closest to center of gravity CG, being one vertical channel 18A-18CC and two horizontal channels 20A-20T
therefrom. If more than one terminal 60, 62, 64, 66 and 68 was the same closest distance from center of gravity CG, any can be used as the first terminal.
Following the router algorithm, computer 100 next computes the distance of all other remaining terminals of the net, e.g., terminals 60, 62, 66 and 68 in the above example, from the first terminal identified in step 36-3, e.g., terminal 64. This procedure is described by step 36-4 in Figure 5. A
second terminal which is closest to the first terminal can be identified using this information, as described by step 36-5. In the above example, terminal 62 is the remaining terminal of the net which iB closest to first terminal 64, being three vertical channels 18A-18CC and six horizontal channels 20A-20T therefrom. Terminal 62 is therefore identified as the second terminal in this example.
If more than one terminal is the same closest di~tance to the first terminal, any of them can be used as the second terminal.
Having identified terminals 64 and 62 as the first and second terminals, respectively, computer 100 will next establish a first path between these terminals along vertical routing channels 18A-18CC
and/or horizontal routing channels 20A-20T. This ~tep of the router algorithm is described at 36-6 in Figure 5, with first established path 70 illustrated 80~

in Figure 6A. Terminals 62 and 64 are located on different vertical channels 18A-18CC and different horizontal channels 20A-20T. First path 70 is therefore rectangular and has four edges 72A-72D (as 05 described by step 36-6(a)) which are illustrated by broken lines. Path 70 also has four vertices 74A-74D. These and subsequently discussed vertices are illustrated by circular dots in Figures 6A-6E.
Vertex 74A is located at the same position on gate array 10 as terminal 62, while vertex 74C is located at the same position as terminal 64 (i.e., the four vertices of path 70 include terminals 62 and 64).
Had the first and second terminals been located on the same vertical channel 18A-18CC or the same horizontal channel 20A-20T, the first path would have been a line with one edge and two vertices including the first and second terminals. This path would then have been set as a routing channel. These steps are described at 36-6(b) and 36-7 in Figure 5.
An example of a situation of this type is described in subsequent portions of this specification.
With first path 70 established, computer 100 continues implementing the router algorithm by determining the ~hortest distance of each remaining terminal of the net to either an edge or vertex of an established path which has no edges set as a routing channel (set edges), or to a set edge of an established path which has a set edge, whichever is clo~est. Using this information, a remaining or next terminal which is closest to either a~l edge or vertex of an established path which does not have any set edges, or to a set edge or its vertices of an established path which does have a set edge, can be ~805~7 determined. These steps are described at 36-8 and 36-9 in Figure 5. Following the above example, computer 100 will determine the shortest diQtance from each of terminals 60, 66, and 68 from one of 05 edges 72A-72D or vertices 74A-74D of path 70. In this example, terminal 66 will be identified as the clo6est terminal to path 70, being twelve vertical channels 18A-18CC from edge 72B.
Having identified the next or closest remaining terminal in the manner described above, a new shortest path between the closest terminal and the edge or vertex to which it was closest is establi~hed by computer 100 as indicated by step 36-10. In the above example, path 76 is the shortest path between closest terminal 66 and edge 72B. Since edge 72B intersects horizontal channel 20E and terminal 66 is positioned in channel 20E, path 76 i8 a ~traight line falling solely along horizontal channel 20E (i.e., no vertical channels 18A-18CC are traversed) as described by step 36-lO(b) in Figure 5. AB shown, path 76 has an edge 78 and vertices 80A
and 80B. Vertex 80A i~ located at the same position as (i.e., include~) terminal 66, while vertex 80B is located at the position at which edge 78 intersect6 25 edge 72B.
Had the shorte~t path between the closest remaining terminal and the edge or vertex to which it is closest required traversal of both vertical channels 18A-18CC and horizontal channels 20A-20T, the shortest path would have been rectangular and had four edges and four vertices (step 36-lO(a)). The four vertices would then have included the closest terminal and a vertex in common with a vertex of the .

~Z8~5~7 previously established path. An example of a situation of this type is described in subsequent portions of this specification.
Following steps 36-11 and 36-12 of the 05 router algorithm described in Figure S, computer 100 will set edges of established path 70 and/or shortest path 76 as routing channels if certain conditions are met. Edges 72A and 72B of established path 70 which couple their vertices 74A and 74c located at the same position as terminals 62 and 64, respectively, would be set as routing channels if established path 7~ and ~hortest path 76 had a common vertex which is not a terminal, and the established path has no set edges (step 36-11). In the above exa~ple illustrated in lS Figure 6A, however, path 70 and path 76 do not have a vertex in common (i.e., vertex 80B i8 not a vertex of path 70) 80 this condition is not met. The edge of shortest path 76 which couples closest terminal 66 to edge 72B of path 70 would be set as a routing path if path 76 is a line and has a vertex in common with a vertex of e~ta~lished path 70, or if path 76 is a line and has a vertex at a set edge of established path 70 (step 36-12). In the above example, however, although path 76 i~ a line, its vertex 80B is not common with a vertex of established path 70, and path 70 ha~ no ~et edges. Since the~e conditions are not met, no edges of path 70 or 76 will be set as routing channels by computer 100 at this point.
Computer 100 will next determine whether e~tablished path 70 to which closest terminal 66 is coupled, and/or shortest path 76 which couples terminal 66 to path 70, should be reestablished (steps 36-13 and 36-14). Established path 70 is ~L280~;~7 ree~tablished when, as in the above example, it i~ a rectangle and none of its edges 72A-72D are set, and shortest path 76 is a line and neither of its vertices 80A or 80B is common with a vertex 74A-74D
05 of established path 70. Shortest path 76 is reestablished when, as in the above example, it is a line and neither of its vertices 80A and 808 is common with one of vertices 74A-74D of path 70.
Established path 70 is reestablished as reestablished path 70' and is illustrated in Figure 6B. As shown, reestablished path 70' is rectangular and has four edges 72A, 72B', 72C' and 72D', and four vertice~ 74A, 74B, 80B and 74D'. Vertices 74A and 74B are at the same location as vertices 74A and 74B
of original e~tabli~hed path 70. Edge 72A of ree~tablished path 70' is therefore the same as edge 72A of established path 70. Vertex 808 is common with or the ~ame vertex as 80B of current shortest path 76, and iB therefore located at the position at which edge 78 of shortest path 76 intersected edge 72B of e~tabli~hed path 70.
Shorte-t path 76 is reestabli~hed a~
reestablished ~horte-t path 76' and is illustrated in Figure 6C. As ~hown, reestabli6hed shortest path 76' 25 is rectangular and includes edges 78A, 78B', 78C' and 78D', and verticc- 80A, 80B, 80C' and 80D'. Edge 78 of path 76' is the same edge as edge 78 of path 76.
Vertices 80A and 80B of path 76' are the same vertices as vertices 80A and 80B of path 76. ~Vertex 80A positioned at the same location as current close~t terminal 66. Vertex 80B located at the position that original shortest path 76 had inter~ected original established path 70. Vertex ;' ~ 4976N 17JUN87 ~Z~ 7 80C' is located at a position common with vertex 74C
of established path 70 (prior to its being reestablished as path 76') which is also at the same position as terminal 64.
05 After computer 100 has reestablished a shortest path such as 76, the router algorithm calls for the computer to set as routing channels edges of the reestablished shortest path which couple its vertices which are also terminals and which have a vertex in common with the established path (or the reestablished established path if the established path was reestablished). Following the above example, edges 78A and 78D' of reestablished shortest path 76' are set as routing channels as indicated by the solid lines in Figure 6C. Edges 78A and 78D' of path 76' couple current closest terminal 66 to terminal 64 which is at the same location as vertex 80C' of path 76', while edge 78A was also edge 78 of path 76. Edges 78A and 78D' also include vertex 80B, which is a vertex common with reestablished path 70'.
Having established a routing channel between terminal 66 and terminal 64, the router algorithm calls for computer 100 to repeat the above described procedures (steps 36-8 through 36-15) for remaining terminals of the net. At this point, all paths currently established, or those which have been reestablished, are characterized as established paths for purposes of step 36-8. The terminal identified at step 36-9 is characterized as the "closest"
terminal for this sequence of steps 36-8 through 36-lS. The path to which the terminal identified at step 36-9 is closest is characterized as the "established" path for this repetition of steps 36-8 ~.28(~ 7 through 36-15.
In the example used above, terminals 60 and 68 remain. Computer 100 will then compute the shortest distance from each terminal 60 and 68 to 05 edges 72A, 72B'-72D' or vertices 74A, 74B, 80B and 74D' of established path 70', or to set edges 78A and 78D', or their vertices 80A, 80B and 80C', of established path 76'. Terminal 68 is fifteen horizontal channels 20A-20T from vertex 80A of set edge 78A of path 76'. Terminal 60 is three horizontal channels 20A-20T and thirteen vertical channel~ 18A-18CC from terminal 74A of path 70'.
Terminal 68 will therefore be identified as the current closest terminal (step 36-9).
Having identified terminal 68 as the closest terminal, a new shortest path between terminal 68 and vertex 80A of path 76' must be established along horizontal channels 20A-20T and/or vertical channels 18A-18CC (step 36-10). A~ shown in Figure 6D, shortest path 82 is a line coupling terminal 68 to vertex 80A of path 76'. Path 82 has an edge 84 (part of which is common with edge 78B' of path 76') and vertices 86 and 80A (step 36-lO(b)). Vertex 86 is located at the same position as terminal 68. Vertex 80A is common with vertex 80A of path 76', and is located at the same position as terminal 66.
Since current shortest path 82 is a line and has a vertex in common with a vertex of established path 76' (i.e., vertex 80A), edge 84 of path 76 is set as a routlng channel as indicated by solid lines in Figure 6E (step 36-12). Shortefit path 82 now couples terminal 86 to a vertex of a set edge (i.e., vertex 80A of edge 78) of established path 76'.

~.~8~5~

Since established path 76' already had its edges 78A
and 78D' set, it will not have additional edges set, in accordance with step 36-11. Also, ~ince the conditions of steps 36 13 and 36-14 are not met, 05 neither path 76' or 82 is reestablished.
Having set edge 84 as a routing channel, computer 100 continues implementing the router algorithm by again repeating steps 36-8 through 36-15. Since terminal 60- is the only remaining terminal of the net, it will be identified as the closest terminal for the next sequence of steps.
Terminal 60 is closest to vertex 74A of path 70' which i 6 at the same location as terminal 62. Path 70' i~ therefore the established path for this ~equence of steps.
Shortest path 88 between terminals 60 and 62 i8 established in accordance with step 36-10. As shown in Figure 6E, shortest path 88 is a rectangle and ha~ four edges 90A-9OD, and four vertices 92A, 92B, 74A and 92D. Vertex 92A iB located at the same position a~ terminal 60, while vertex 74A is a co~mon vertex with path 70'. In this example, current e~tabli~hed path 70' does not have two vertices which are terminal~ ~i.e., only vertex 74A is a terminal) ~o following step 36-11, computer 100 will not set edges of path 70' as routing channels. Current ~hortest path 88 i~ not a line, ~o following step 36-12, none of its edges are set as routing channels either. Similarly, ~ince ~horte6t path 88 is not a line, neither path 70' nor path 88 are reestablished (steps 36-13 and 36-14).
After all terminals of a given net have been linked or coupled together by paths in the manner ~ ;~805~

described above (e.g., terminals 62, 64, 66, 68 are coupled by path~ 70', 76', 82 and 88), horizontal portions or segment~ of the set edges of these paths (e.g., edge 78A) are assigned to specific tracks 24 05 within the horizontal channels 20A-20T as indicated at step 38 in Figure 3 and described above. Finally, after all nets on gate array 10 have been global routed and maze routed in accordance with steps 36 and 38 and illustrabed in Figure 3, vertical segments of the set edges are assigned to specific vertical tracks 22 within the vertical channels 18A-18CC as indicated at stop 42 and described above.
It i~ evident from Figure 6E, however, that no edges of paths 70' or 88 have been set. Specific routing channels by which terminals 60 and 62 are coupled to vertex 80B, and therefore to terminals 64, 66 and 68, are not determined. In one embodiment of the present invention, computer 100 is free to use any track 22 and 24 within any vertical channel 18A-18CC and horizontal channel 20A-20T, respectively, encompassed by and including the edges of paths 70' and 88 when maze routing (step 38) and global routing (~tep 42). Terminal 60 can be coupled to terminal 62, for example, using portions of any tracks 22 within vertical channels 18A-18N, and tracks 24 within horizontal channels 20A-20D. In a similar manner, terminal 62 can be coupled to vertex 80B (and therefore terminals 64, 66 and 68 through set edge-s 76' and 84), using portions of any tracks 22 within vertical channels 18N-18~ and tracks 24 within horizontal channels 20D and 20E. Tracks 22 and 24 can therefore be flexibly utilized by computer 100 in response to routing demands or requirements ~Z8C~5~7 from other nets.
The router of the present invention has significant advantages over those of the prior art.
~ests have shown it to be very reliable in that it 05 can accurately assign virtually all required routing paths. Length of the interconnect paths, and therefore the amount of metal required, is kept to a minimum. As discussed above, routing paths can be flexibly utilized in response to demands from other nets to be interconnected. The router is also relatively fast.
Although the present invention has been described with reference to preferred embodiments, workers skilled in the art will recognize that changes may be made in form and detail without departing from the spirit and scope of the invention.

Claims (6)

1. A method for operating a digital computer to set routing paths along an x-y grid of possible paths, between a group of terminals on an integrated circuit, including:
(a) determining an average x-y position on the grid of the terminals to be interconnected;
(b) identifying a first terminal of the group which is closest to the average position along x and/or y paths of the grid;
(c) identifying a second remaining terminal of the group which is closest to the first terminal along x and/or y paths of the grid;
(d) establishing a first path along x and/or y paths of the grid between the first and second terminals, wherein the first path is rectangular and has four edges and four vertices including the first and second terminals when the first and second terminals are on different x and different y paths, and wherein the first path is a line and has one edge and two vertices including the first and second terminals when the first and second terminals are on the same x or same y path;
(e) setting the edge of the first path as a routing path if the first path is a line;
(f) identifying a closest remaining terminal of the group which is closest along x and/or y paths of the grid, to an edge of vertex of an established path having no set edges, or to a set edge or its vertices of an established path which has a set edge, whichever is closest;
(g) establishing a shortest path along x and/or y paths of the grid between the closet terminal identified in step (f) and the edge or vertex of the established path to which it was closest, wherein the shortest path is rectangular and has four edges and four vertices including the closest terminal and a vertex common with a vertex of the established path when the shortest path traverses both x and y paths of the grid, and wherein the shortest path is in line and has an edge and two vertices including the closest terminal when the shortest path traverses only x or only y paths of the grid;
(b) setting as a routing path edges of the established path which couple its vertices which include terminals and which have a vertex in common with the shortest path, if the established path and shortest path have a common vertex, if the established path has no set edges, and if the common vertex does not include a terminal;
(i) setting as a routing path the edge of the shortest path which couples the closet terminal to the edge of vertex of the established path if the shortest path is a line and has a vertex common with a vertex of the established path, or is a line and has a vertex at a set edge of the established path; and (j) repeating steps (f) through (i) for remaining terminals of the group to be interconnected.
2. The method of claim 1 and further including setting as a routing path any of the possible paths within and including edges of the established paths which have no set edges and which couple the terminals of the established paths to a set edge or its vertices of an established path having a set edge.
3. The method of claim 1 and further including, between steps (i) and (j);
(k)reestablishing the established path to which the closest terminal was closest if the established path is a rectangle with no set edges and the shortest path is a line which does not have a vertex common with a vertex of the established path, wherein the reestablished established path is rectangular and has four edges and four vertices including two vertices of the established path and a vertex common with the vertex of the shortest path which intersected the established path;
(1) reestablishing the shortest path if the shortest path is a line and does not have a vertex common with a vertex of the established path to which the closest terminal was closest (prior to being reestablished if it was reestablished), wherein the reestablished shortest path is a rectangle and has four edges and four vertices including a vertex at the closest terminal, a vertex at the intersection of the shortest path and the established path or the reestablished established path, and a vertex common with a vertex of the established path (prior to being reestablished if it was reestablished) which includes a terminal; and (m) setting as a routing path edges of the reestablished shortest path which couple its vertices which include terminals and which have a vertex common with a vertex of the established path or the reestablished established path.
4. The method of claim 1 and further including setting as routing paths any of the possible paths within and including the edges of the established paths which have no set edges and which couple the terminals of the established paths to a vertex or set edge of an established path having a set edge.
5. A method for operating a digital computer to set routing paths, along an x-y grid of possible paths, between a group of terminals on an integrated circuit, including.
(a) determining an average x-y position on the grid of the terminals to be interconnected;
(b) identifying a first terminal of the group which is closest to the average position along x and/or y paths of the grid;
(c) identifying a second remaining terminal of the group which is closest to the first terminal along x and/or y paths of the grid;
(d) establishing a first path along x and/or y paths of the grid between the first and second terminals, wherein the first path is rectangular and has four edges and four vertices including the first and second terminals when the first and second terminals are on different x and different y paths, and wherein the first path is a line and has one edge and two vertices including the first and second terminals when the first and second terminals are on the same x or same y path;

(e) setting the edge of the first path as a routing path if the first path is a line;
(f) identifying a closest remaining terminal of the group which is closest, along x and/or y paths of the grid, to an edge or vertex of an established path having no set edges, or to a set edge or its vertices of an established path which has a set edge, whichever is closest;
(g) establishing a shortest path along x and/or y paths between the closest terminal identified in step (f) and the edge or vertex of the established path to which it was closest, wherein the shortest path is rectangular and has four edges and four vertices including the closest terminal and a vertex common with a vertex of the established path when the shortest path traverses both x and y paths, and wherein the shortest path is a line and has an edge and two vertices including the closest terminal when the shortest path traverses only x or only y paths;
(h) setting as a routing path edges of the established path which couple its vertices which are also terminals and which have a vertex common with a vertex of the shortest path, if the established path and shortest path have a common vertex, if the established path has no set edges, and if the common vertex does not include a terminal;
(i) setting as a routing path the edge of the shortest path which couples the closest terminal to the edge, or vertex of the established path if the shortest path is a line and has a vertex common with a vertex of the established path, or is a line and has a vertex line and has a vertex at a set edge of the established path;
(j) reestablishing the established path to which the closest terminal was closest if the established path is a rectangle with no set edges and the shortest path is a line which does not have a vertex common with a vertex of the established path, wherein the reestablished established path is rectangular and has four edges and four vertices including two vertices of the established path and a vertex common with the vertex of the shortest path which intersected the established path;
(k) reestablishing the shortest path if the shortest path is a line and does not have a vertex common with a vertex of the established path to which the closest terminal was closest (prior to being reestablished if it was reestablished), wherein the reestablished shortest path is a rectangle and has four edges and four vertices including a vertex at the location of the closest terminal, a vertex at the location at which the shortest path intersected the established path or the reestablished established path, and a vertex common with a vertex of the established path (prior to being reestablished if it was reestablished), which includes a terminal;
(1) setting as a routing path edges of the reestablished shortest path which couple its vertices which include terminals and which have a vertex common with a vertex of the established path or the reestablished established path; and (m) repeating steps (f) through (1) for remaining terminals of the group to be interconnected.
6. The method of claim 5 and further including setting as routing paths any of the possible paths within and including the edges of the established paths which have no set edges and which couple the terminals of the established paths to a vertex or set edge of an established path having a set edge.
CA000563784A 1987-06-24 1988-04-11 Automatic circuit layout router Expired - Lifetime CA1280517C (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US065,929 1987-06-24
US07/065,929 US4852015A (en) 1987-06-24 1987-06-24 Automatic circuit layout router

Publications (1)

Publication Number Publication Date
CA1280517C true CA1280517C (en) 1991-02-19

Family

ID=22066092

Family Applications (1)

Application Number Title Priority Date Filing Date
CA000563784A Expired - Lifetime CA1280517C (en) 1987-06-24 1988-04-11 Automatic circuit layout router

Country Status (5)

Country Link
US (1) US4852015A (en)
EP (1) EP0296697A2 (en)
JP (1) JPS648481A (en)
AU (1) AU1387488A (en)
CA (1) CA1280517C (en)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5119317A (en) * 1988-03-16 1992-06-02 Kabushiki Kaisha Toshiba Routing method and system
JPH0786883B2 (en) * 1988-09-09 1995-09-20 松下電器産業株式会社 Method and system for automatically generating mesh diagram or logical circuit diagram
WO1990005344A1 (en) * 1988-11-02 1990-05-17 Siemens Aktiengesellschaft Process for placing modules on a support
JP2680867B2 (en) * 1988-12-05 1997-11-19 株式会社日立製作所 Path layout method
US5032991A (en) * 1988-12-14 1991-07-16 At&T Ball Laboratories Method for routing conductive paths
US5187784A (en) * 1989-01-13 1993-02-16 Vlsi Technology, Inc. Integrated circuit placement method using netlist and predetermined ordering constraints to produce a human readable integrated circuit schematic diagram
US5220512A (en) * 1990-04-19 1993-06-15 Lsi Logic Corporation System for simultaneous, interactive presentation of electronic circuit diagrams and simulation data
US5218551A (en) * 1990-04-30 1993-06-08 International Business Machines Corporation Timing driven placement
JPH0756878B2 (en) * 1990-05-30 1995-06-14 シャープ株式会社 Inspection method of printed wiring board
US5341310A (en) * 1991-12-17 1994-08-23 International Business Machines Corporation Wiring layout design method and system for integrated circuits
US5452224A (en) * 1992-08-07 1995-09-19 Hughes Aircraft Company Method of computing multi-conductor parasitic capacitances for VLSI circuits
US5648912A (en) * 1993-04-12 1997-07-15 International Business Machines Corporation Interconnection resource assignment method for differential current switch nets
US5360767A (en) * 1993-04-12 1994-11-01 International Business Machines Corporation Method for assigning pins to connection points
JP3336416B2 (en) * 1993-04-23 2002-10-21 日本テキサス・インスツルメンツ株式会社 Wiring method in semiconductor integrated circuit design.
US5544088A (en) * 1993-06-23 1996-08-06 International Business Machines Corporation Method of I/O pin assignment in a hierarchial packaging system
US5500804A (en) * 1993-12-08 1996-03-19 International Business Machines Corporation Method to optimize the wiring of multiple wiring media packages
US5495419A (en) * 1994-04-19 1996-02-27 Lsi Logic Corporation Integrated circuit physical design automation system utilizing optimization process decomposition and parallel processing
US5587923A (en) * 1994-09-07 1996-12-24 Lsi Logic Corporation Method for estimating routability and congestion in a cell placement for integrated circuit chip
US5633807A (en) * 1995-05-01 1997-05-27 Lucent Technologies Inc. System and method for generating mask layouts
US5717853A (en) * 1995-10-23 1998-02-10 International Business Machines Corporation Information handling system having router including first mode for configuring itself, second mode for configuring its connected devices and third mode for system operation
US5677847A (en) * 1995-12-05 1997-10-14 International Business Machines Corporation Method and apparatus for designing a module
US5777383A (en) * 1996-05-09 1998-07-07 Lsi Logic Corporation Semiconductor chip package with interconnect layers and routing and testing methods
KR19980039110A (en) * 1996-11-27 1998-08-17 배순훈 Magnetic insertion path preparing device of multi-array printed board and its preparation method
JP3597706B2 (en) * 1997-07-25 2004-12-08 株式会社東芝 Logic embedded memory
US6038336A (en) * 1997-12-04 2000-03-14 Daewoo Electronics Co., Ltd. PCB testing circuit for an automatic inserting apparatus and a testing method therefor
EP0968636A1 (en) * 1997-12-05 2000-01-05 Daewoo Electronics Co., Ltd Method and apparatus for correcting automatic insertion path
US6873185B2 (en) * 2002-06-19 2005-03-29 Viasic, Inc. Logic array devices having complex macro-cell architecture and methods facilitating use of same
DE10320061B4 (en) * 2003-05-06 2005-12-22 Bader Gmbh & Co. Process for the production of a material using leather waste and molded part produced therewith
EP1738412A1 (en) * 2004-04-02 2007-01-03 Triad Semiconductor, Inc. Via configurable architecture for customization of analog circuitry in a semiconductor device
US7448012B1 (en) 2004-04-21 2008-11-04 Qi-De Qian Methods and system for improving integrated circuit layout
US7257797B1 (en) * 2004-06-07 2007-08-14 Pulsic Limited Method of automatic shape-based routing of interconnects in spines for integrated circuit design
US7692309B2 (en) * 2007-09-06 2010-04-06 Viasic, Inc. Configuring structured ASIC fabric using two non-adjacent via layers
US8458636B1 (en) 2009-03-18 2013-06-04 Pulsic Limited Filling vacant areas of an integrated circuit design

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2445368A1 (en) * 1974-09-23 1976-04-01 Siemens Ag METHOD OF MANUFACTURING MASK TEMPLATES FOR INTEGRATED SEMICONDUCTOR CIRCUITS
US4584653A (en) * 1983-03-22 1986-04-22 Fujitsu Limited Method for manufacturing a gate array integrated circuit device
US4541114A (en) * 1983-05-05 1985-09-10 Research Environmental/Institute of Michigan Routing techniques using serial neighborhood image analyzing system
US4580228A (en) * 1983-06-06 1986-04-01 The United States Of America As Represented By The Secretary Of The Army Automated design program for LSI and VLSI circuits
EP0169576B1 (en) * 1984-07-27 1990-12-19 Hitachi, Ltd. Method and system of circuit pattern understanding and layout
US4613941A (en) * 1985-07-02 1986-09-23 The United States Of America As Represented By The Secretary Of The Army Routing method in computer aided customization of a two level automated universal array

Also Published As

Publication number Publication date
AU1387488A (en) 1989-01-05
US4852015A (en) 1989-07-25
JPS648481A (en) 1989-01-12
EP0296697A2 (en) 1988-12-28

Similar Documents

Publication Publication Date Title
CA1280517C (en) Automatic circuit layout router
KR102593720B1 (en) Integrated circuit design and/or fabrication
US5798936A (en) Congestion-driven placement method and computer-implemented integrated-circuit design tool
Dees et al. Automated rip-up and reroute techniques
US4577276A (en) Placement of components on circuit substrates
EP0501652B1 (en) Balanced tree clock distribution network for integrated circuits and method for constructing it
JPH03188650A (en) Routing method, routing system and semiconductor integrated circuit
US6694502B2 (en) Data structure for fine-grid multi-level VLSI routing and method for storing the data structure in a computer readable medium
Schweikert A 2-dimensional placement algorithm for the layout of electrical circuits
CN116702694A (en) Printed circuit board two-end wiring method, medium and device based on ant colony algorithm
JP2000067102A (en) Hierarchical wiring method for semiconductor integrated circuit
JP2721712B2 (en) Automatic wiring method
JPH07153844A (en) Semiconductor integrated circuit device
Liu et al. Multilayer pin assignment for macro cell circuits
JPH05159025A (en) Area division wiring system
Goto et al. lambda, an integrated master-slice LSI CAD system
Tanaka et al. An integrated computer aided design system for gate array masterslices: Part 2 The layout design system Mars-M3
JPS62140430A (en) Wiring method for semiconductor integrated circuit
JP3111970B2 (en) Automatic wiring method of semiconductor integrated circuit
JP2990173B1 (en) Reference potential supply wiring method for semiconductor integrated circuit
Hung et al. Dangling-wire avoidance routing for crossbar switch structured ASIC design style
Sehgal et al. Datapath cell design strategy for channelless routing
Prazic et al. Automatic routing of double layer gate arrays using a moving cursor
JPH0683911A (en) Method and device for determining wiring path
Haruyama New routing strategies for VLSI

Legal Events

Date Code Title Description
MKLA Lapsed