US6845495B2 - Multidirectional router - Google Patents

Multidirectional router Download PDF

Info

Publication number
US6845495B2
US6845495B2 US10/027,642 US2764201A US6845495B2 US 6845495 B2 US6845495 B2 US 6845495B2 US 2764201 A US2764201 A US 2764201A US 6845495 B2 US6845495 B2 US 6845495B2
Authority
US
United States
Prior art keywords
routing
net
pins
tile
nets
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 - Fee Related, expires
Application number
US10/027,642
Other versions
US20030121017A1 (en
Inventor
Alexandre E. Andreev
Elyar E. Gasanov
Ranko Scepanovic
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.)
Bell Semiconductor LLC
Original Assignee
LSI Logic Corp
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 LSI Logic Corp filed Critical LSI Logic Corp
Priority to US10/027,642 priority Critical patent/US6845495B2/en
Assigned to LSI LOGIC CORPORATION reassignment LSI LOGIC CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ANDREEV, ALEXANDRE E., SCEPANOVIC, RANKO, GASANOV, ELYAR E.
Publication of US20030121017A1 publication Critical patent/US20030121017A1/en
Application granted granted Critical
Publication of US6845495B2 publication Critical patent/US6845495B2/en
Assigned to DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT reassignment DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT PATENT SECURITY AGREEMENT Assignors: AGERE SYSTEMS LLC, LSI CORPORATION
Assigned to LSI CORPORATION reassignment LSI CORPORATION CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: LSI LOGIC CORPORATION
Assigned to AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD. reassignment AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LSI CORPORATION
Assigned to AGERE SYSTEMS LLC, LSI CORPORATION reassignment AGERE SYSTEMS LLC TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Assignors: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Assigned to BANK OF AMERICA, N.A., AS COLLATERAL AGENT reassignment BANK OF AMERICA, N.A., AS COLLATERAL AGENT PATENT SECURITY AGREEMENT Assignors: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Assigned to AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD. reassignment AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD. TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Assignors: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Assigned to BELL SEMICONDUCTOR, LLC reassignment BELL SEMICONDUCTOR, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD., BROADCOM CORPORATION
Assigned to CORTLAND CAPITAL MARKET SERVICES LLC, AS COLLATERAL AGENT reassignment CORTLAND CAPITAL MARKET SERVICES LLC, AS COLLATERAL AGENT SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BELL NORTHERN RESEARCH, LLC, BELL SEMICONDUCTOR, LLC, HILCO PATENT ACQUISITION 56, LLC
Assigned to BELL SEMICONDUCTOR, LLC, HILCO PATENT ACQUISITION 56, LLC, BELL NORTHERN RESEARCH, LLC reassignment BELL SEMICONDUCTOR, LLC RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: CORTLAND CAPITAL MARKET SERVICES LLC
Adjusted expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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

Definitions

  • the present invention generally relates to the field of integrated circuit design, and particularly to a system and method of providing multidirectional routing.
  • An integrated circuit chip (hereafter referred to as an “IC” or a “chip”) comprises cells and connections between the cells formed on a surface of a semiconductor substrate.
  • the IC may include a large number of cells and require complex connections between the cells.
  • a cell is a group of one or more circuit elements such as transistors, capacitors, and other basic circuit elements grouped to perform a function.
  • Each of the cells of an IC may have one or more pins, each of which, in turn, may be connected to one or more other pins of the IC by wires.
  • the wires connecting the pins of the IC are also formed on the surface of the chip.
  • a net is a set of two or more pins that must be connected. Because a typical chip has thousands, tens of thousands, or hundreds of thousands of pins that must be connected in various combinations, the chip also includes definitions of thousands, tens of thousands, or hundreds of thousands of nets, or sets of pins. All the pins of a net must be connected. The number of the nets for a chip is typically in the same order as the order of the number of cells on that chip. Commonly, a majority of the nets include only two pins to be connected; however, many nets comprise three or more pins. Some nets may include hundreds of pins to be connected.
  • a netlist is a list of nets for a chip.
  • Microelectronic integrated circuits include a large number of electronic components that are fabricated by layering several different materials on a silicon base or wafer.
  • the design of an integrated circuit transforms a circuit description into a geometric description, which is known as a layout.
  • a layout includes a set of planar geometric shapes in several layers.
  • Routing between the components of the chip is typically done utilizing Manhattan routing, in which X and Y Cartesian coordinates are used when laying out lines on silicon.
  • Manhattan routing in which X and Y Cartesian coordinates are used when laying out lines on silicon.
  • routing method may limit the chip density, and thus the speed of the chip.
  • the present invention is directed to a system and method for providing multidirectional routing.
  • the present invention may provide an arbitrary number of routing layers and an arbitrary direction on each of those layers to provide a smaller die size and to reduce power consumption by providing more flexibility for net routing directions.
  • a method for routing a multi-layered integrated circuit wherein arbitrary routing directions may be supported on an arbitrary number of layers of the integrated circuit includes receiving parameters for an integrated circuit having n layers, wherein n is at least two.
  • a routing graph is constructed for layers of the integrated circuit, the levels partitioned into tiles, wherein at least one edge is provided to join a first tile and a second tile in the routing graph, the tiles positioned generally corresponding to a layer grid line of the level. Routing is then performed based on the routing graph.
  • a method for routing a multi-layered integrated circuit includes receiving parameters for an integrated circuit having n layers, wherein n is at least two.
  • a routing graph is constructed for a level k of the n layers of the integrated circuit.
  • the k level is partitioned into k-level tiles, wherein at least one edge is provided to join a first tile and a second tile in the k level routing graph.
  • Capacities of the at least one edge joining the first tile and the second tile are calculated, the edge at least one of regular and normal. Occupancies are added based on previous level net routing (k+1) and penalties of edges calculated. Nets are then routed based on the routing graph, calculated capacities and added occupancies.
  • FIG. 1 is a flow diagram of an exemplary method of the present invention wherein a procedure for routing an integrated circuit having multiple layers is shown suitable utilizing any arbitrary angle;
  • FIG. 2 is a flow diagram of an exemplary method of the present invention wherein a procedure for routing an integrated circuit having multiple layers is shown suitable utilizing any arbitrary angle, the procedure routing nets in both a net routing area and open nets outside the net routing area;
  • FIG. 3A is an illustration of an embodiment of the present invention wherein a regular edge of previous level routing of a net is shown;
  • FIGS. 4A and 4B are a depictions of an embodiment of the present invention wherein normal edges connecting vertices from neighbor layers are shown.
  • FIG. 5 is an illustration of an embodiment of the present invention wherein a net including four pins, A, B, C and D and grid line directions of 4 layers of the chip are presented by lines OX, OY, OZ and OU as utilized to define a bounding box is shown.
  • k>zero 110 the constructing 104 , adding/calculating 106 , and routing 108 operational steps are repeated after one is subtracted from k 112 . If k is equal to zero 114 , the adding/calculating 106 , and routing 110 operational steps are repeated after one is subtracted from k 116 . If k is less than zero 118 , legal net routing is obtained.
  • a k-level routing graph is constructed.
  • a capacity may be calculated as follows: For each regular edge, the capacity is the height of the corresponding tile expressed in grids, which may be equal to 2 k grids, minus the number of grids covered by routing blockages; for each normal edge, the capacity is the half of the number of vias contained in these tiles. The number of vias is divided by 2, because real vias in the chip should not be placed in neighbor 0-level tiles in an embodiment of the present invention.
  • occupancies are added based on previous level ((k+1)-level) net routing and penalties of edges are calculated. For instance, for the first time, i.e. an initial k, this step may be fictitious and occupancies are set of all edges of k-level routing graph to zero. Beginning with the second time when there is (k+1)-level net routing, for each edge of k-level routing graph, occupancy may be calculated as follows. All routed nets of netlist and all edges of (k+1)-level routing of these nets are considered.
  • FIG. 3A an example of such a regular edge of previous level routing of a net is shown.
  • the tiles are presented by dashed lines and the edge is shown by a solid line.
  • vertices A and B are provided on the previous level.
  • FIG. 3B four vertices, denoted with subscripts 1, 2, 3 and 4, correspond to each of the previous level vertices.
  • C is the capacity of the edge connecting the vertices A and B
  • the edge may be denoted by (A B).
  • C 1 is the capacity of the edge (A 2 B 1 )
  • C 2 is the capacity of the edge (A 4 B 3 ).
  • C C 1 +C 2 , and therefore (C 1 /C), (C 1 /2C), (C 2 /C), (C 2 /2C) and (C 2 /2C) is added to occupancy of edges (A 2 B 1 ), (A 1 A 2 ), (B 1 B 2 ), (A 4 B 3 ), (A 3 A 4 ) and (B 3 B 4 ) accordingly.
  • FIGS. 4A and 4B The normal edges connecting vertices from neighbor layers are shown on FIGS. 4A and 4B . For instance, let m and m+1 be numbers of these neighbor layers. The tiles of layer m are presented by dashed lines and the tiles of layer m+1 by solid lines. On the previous level, vertices A (belonging to layer m) and B (belonging to layer m+1) are provided. On the current level, which is shown in FIG. 4B , four vertices, denoted with subscripts 1, 2, 3 and 4, correspond to each of the previous level vertices.
  • the penalty for passing through an edge may be a function of the quotient occupancy/capacity and of the length of the edge.
  • the penalty may be 5(occupancy/capacity)length+length.
  • This penalty function may vary although it is preferred that the penalty increase as a function of occupancy/capacity and that the penalty further increases as a function of length.
  • the penalty may also be calculated as follows: length•e occupancy/capacity +length.
  • the third operational step 206 ( FIG. 2 ) is to route the nets in the net routing area.
  • a net routing area is an area based on the net such that the routing of this net, which will be constructed, must be located into this area.
  • There are many ways in which to construct the net routing area One way is to construct a bounding box based on x and y coordinates and then expand it in all four direction by r times hp, where r is the input parameter and is usually 1 ⁇ 3, hp is half-perimeter of the bounding box.
  • a generalized bounding box of the net may also be constructed based on the grid line directions of all the chip layers.
  • FIG. 5 depicts a net including four pins, A, B, C and D.
  • a routing of a net is a set E of edges of routing graph such that any two different pins of the net are connected by the set E.
  • the net may be partitioned into 2 subnets.
  • the method described in U.S. Pat. No. 6,175,950 may be applied, which is herein incorporated by reference in its entirety.
  • the center of gravity may be calculated, and then the pins sorted in ascending order of abscissae of the center of gravity.
  • ⁇ x 1 , . . . , x n ⁇ be the ordering set of abscissae.
  • the point x m divides net into 2 subnets.
  • the first subnet includes from m first pins and the second subnet contains another pins. Analogical actions relative to ordinates may also be performed.
  • V be the set of vertices of the routing graph and
  • VertexNumber.
  • the vertices of the routing graph are numerated from 1 to VertexNumber and N(a) is the number of a vertex a.
  • An edge connecting vertices a and b is denoted by (a,b).
  • Vertices a and b are referred to as a neighbor if there is edge (a, b) in the routing graph.
  • (a n ⁇ 1 , a n ), (a n ,b) is called a path connecting vertices a and b.
  • the penalty of a path P is the sum of penalties of all edges of the path, and is denoted by Pen(P).
  • the input of Procedure to Grow neighborhoods is the set Sour of vertices of the routing graph, which may be referred to as a source set, and a set DestV, referred to as a destination set.
  • the procedure to grow neighborhoods may include the following steps.
  • d is set equal to d+1. If d ⁇ d max , then the procedure returns to step 2. If d>d max , it means that there is not a path connecting the sets Sour and Dest, and therefore the procedure is exited.
  • the methods disclosed may be implemented as sets of instructions or software readable by a device. Further, it is understood that the specific order or hierarchy of steps in the methods disclosed are examples of exemplary approaches. Based upon design preferences, it is understood that the specific order or hierarchy of steps in the method can be rearranged while remaining within the scope of the present invention.
  • the accompanying method claims present elements of the various steps in a sample order, and are not meant to be limited to the specific order or hierarchy presented.
  • the instructions may be transmitted over a network in the form of an applet that is interpreted or compiled after transmission to the computer system rather than prior to transmission.
  • an applet that is interpreted or compiled after transmission to the computer system rather than prior to transmission.
  • the physical storage of the sets of instructions or applets physically changes the medium upon which it is stored electrically, magnetically, chemically, physically, optically or holographically so that the medium carries computer readable information.

Abstract

The present invention is directed to a system and method for providing multidirectional routing. The present invention may provide an arbitrary number of routing layers and an arbitrary direction on each of those layers to provide a smaller die size and to reduce power consumption by providing more flexibility for net routing directions.

Description

FIELD OF THE INVENTION
The present invention generally relates to the field of integrated circuit design, and particularly to a system and method of providing multidirectional routing.
BACKGROUND OF THE INVENTION
An integrated circuit chip (hereafter referred to as an “IC” or a “chip”) comprises cells and connections between the cells formed on a surface of a semiconductor substrate. The IC may include a large number of cells and require complex connections between the cells.
A cell is a group of one or more circuit elements such as transistors, capacitors, and other basic circuit elements grouped to perform a function. Each of the cells of an IC may have one or more pins, each of which, in turn, may be connected to one or more other pins of the IC by wires. The wires connecting the pins of the IC are also formed on the surface of the chip.
A net is a set of two or more pins that must be connected. Because a typical chip has thousands, tens of thousands, or hundreds of thousands of pins that must be connected in various combinations, the chip also includes definitions of thousands, tens of thousands, or hundreds of thousands of nets, or sets of pins. All the pins of a net must be connected. The number of the nets for a chip is typically in the same order as the order of the number of cells on that chip. Commonly, a majority of the nets include only two pins to be connected; however, many nets comprise three or more pins. Some nets may include hundreds of pins to be connected. A netlist is a list of nets for a chip.
Microelectronic integrated circuits include a large number of electronic components that are fabricated by layering several different materials on a silicon base or wafer. The design of an integrated circuit transforms a circuit description into a geometric description, which is known as a layout. A layout includes a set of planar geometric shapes in several layers.
Routing between the components of the chip is typically done utilizing Manhattan routing, in which X and Y Cartesian coordinates are used when laying out lines on silicon. However, such a routing method may limit the chip density, and thus the speed of the chip.
Therefore, it would be desirable to provide a system and method that may employ non-Manhattan routing through the provision of routing process capable of utilization of arbitrary angles.
SUMMARY OF THE INVENTION
Accordingly, the present invention is directed to a system and method for providing multidirectional routing. The present invention may provide an arbitrary number of routing layers and an arbitrary direction on each of those layers to provide a smaller die size and to reduce power consumption by providing more flexibility for net routing directions.
In a first aspect of the present invention a method for routing a multi-layered integrated circuit wherein arbitrary routing directions may be supported on an arbitrary number of layers of the integrated circuit includes receiving parameters for an integrated circuit having n layers, wherein n is at least two. A routing graph is constructed for layers of the integrated circuit, the levels partitioned into tiles, wherein at least one edge is provided to join a first tile and a second tile in the routing graph, the tiles positioned generally corresponding to a layer grid line of the level. Routing is then performed based on the routing graph.
In a second aspect of the present invention, a method for routing a multi-layered integrated circuit includes receiving parameters for an integrated circuit having n layers, wherein n is at least two. A routing graph is constructed for a level k of the n layers of the integrated circuit. The k level is partitioned into k-level tiles, wherein at least one edge is provided to join a first tile and a second tile in the k level routing graph. Capacities of the at least one edge joining the first tile and the second tile are calculated, the edge at least one of regular and normal. Occupancies are added based on previous level net routing (k+1) and penalties of edges calculated. Nets are then routed based on the routing graph, calculated capacities and added occupancies.
It is to be understood that both the forgoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention as claimed. The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate an embodiment of the invention and together with the general description, serve to explain the principles of the invention.
BRIEF DESCRIPTION OF THE DRAWINGS
The numerous advantages of the present invention may be better understood by those skilled in the art by reference to the accompanying figures in which:
FIG. 1 is a flow diagram of an exemplary method of the present invention wherein a procedure for routing an integrated circuit having multiple layers is shown suitable utilizing any arbitrary angle;
FIG. 2 is a flow diagram of an exemplary method of the present invention wherein a procedure for routing an integrated circuit having multiple layers is shown suitable utilizing any arbitrary angle, the procedure routing nets in both a net routing area and open nets outside the net routing area;
FIG. 3A is an illustration of an embodiment of the present invention wherein a regular edge of previous level routing of a net is shown;
FIG. 3B is an illustration of an embodiment of the present invention wherein a current level includes four vertices, denoted with subscripts 1, 2, 3 and 4, corresponding to each of the previous level vertices;
FIGS. 4A and 4B are a depictions of an embodiment of the present invention wherein normal edges connecting vertices from neighbor layers are shown; and
FIG. 5 is an illustration of an embodiment of the present invention wherein a net including four pins, A, B, C and D and grid line directions of 4 layers of the chip are presented by lines OX, OY, OZ and OU as utilized to define a bounding box is shown.
DETAILED DESCRIPTION OF THE INVENTION
Reference will now be made in detail to the presently preferred embodiments of the invention, examples of which are illustrated in the accompanying drawings.
Referring generally now to FIGS. 1 through 5, exemplary embodiments of the present invention are shown. By providing more flexibility for net routing directions, a smaller die size and reduced power consumption may be achieved. Traditionally, nets on a chip were routed using two directions: vertical and horizontal. For each direction, one or more layers were used. By providing a general routing solution of the present invention, an arbitrary number of routing layers and an arbitrary direction on each of those layers may be utilized to provide greater flexibility for net routing directions.
Thus, the present invention provides a method and apparatus for routing multiplayer integrated circuit chips. For instance, suppose an integrated circuit chip (chip) has n≦2 layers. For each layer, the plane of the layer is divided by parallel lines (y cos a1)+(x sin a1)=j di, j=0, ±1, ±2, . . . , where ai is an inclination of the lines, d1, is the distance between neighboring lines. For example, if ai=π/2, then the plane is divided by vertical lines with step dl, These lines may be referred to as layer grid lines and wires on this layer are placed along those lines.
For example, if n=4, a1=π/2, d1=1400, a2=0, d2=1200, a3=π/3, d3=1400, a4=5π/7, d4=1200, which means that the chip has 4 layers, the first layer containing vertical grid lines with step d1=1400, the second layer contains horizontal grid lines with step d2=1200, and for the third and fourth layer, grid lines having inclination a3=π/3 and a4=5π/7, and the distance between neighbor lines d3=1400 and d4=1200 respectively. A via may be provided for wire connection between the different layers.
Referring now to FIG. 1, an exemplary method 100 of the present invention is shown wherein routing for a multi-layer integrated circuit utilizing arbitrary angles on the layers of the integrated circuit is provided. First, parameters of the integrated circuit are input 102. For instance, a number of layers and the like desired on the integrated circuit may be received. A routing graph is constructed and capacities of routes are calculated 104. For instance, a routing graph may be obtained for a first layer. Available occupancies based on previous net routing and the corresponding penalties are calculated 106. Nets are then routed 108 through a variety of methods, which will be discussed later.
If k>zero 110, the constructing 104, adding/calculating 106, and routing 108 operational steps are repeated after one is subtracted from k 112. If k is equal to zero 114, the adding/calculating 106, and routing 110 operational steps are repeated after one is subtracted from k 116. If k is less than zero 118, legal net routing is obtained.
Referring now to FIG. 2, an exemplary method 200 of the present invention is shown wherein steps of a multidirectional router are presented. As an initializing step 202, a netlist, grid lines slope, distance between neighboring grid lines, wire blockage information and other specified parameters k and r as contemplated by a person of ordinary skill in the art are input to the system.
At a first operational step 204, a routing graph is constructed and capacities of edges are calculated. Each layer of the chip may be divided into square sections, which may be referred to as a “tile.” One side of each tile of the layer is directed along with the layer grid lines. The size of each tile side is equal to one grid. The grid lines are positioned through the middle of tiles. A middle line of a tile relatively grid line direction, i.e. that part of a grid line inside a tile, may be referred to as a segment. The part of tiles from neighbor layers is called via if segments of these tiles are intersected and these tiles are not covered by the routing blockages.
Each layer of the chip is partitioned into square sections called k-level tiles. The size of each k-level tile may be equal to 2k grids and each k-level tile may include 22k tiles or four (k−1)-level tiles. Each of these k-level tiles may be considered a vertex in a k-level routing graph. Two k-level tiles of one layer are joined by the edge in the k-level routing graph if these tiles are neighbor relatively grid line direction. Such edges connecting two vertices from one layer are called regular. Two k-level tiles from neighbor layers are joined by the edge in the k-level routing graph if pair of these tiles is connected by a via, such edges connecting two vertices from neighbor layers are called normal.
Thus, for input parameter k, which is usually five, but may vary without departing from the present invention, a k-level routing graph is constructed. For each edge of the k-level routing graph, a capacity may be calculated as follows: For each regular edge, the capacity is the height of the corresponding tile expressed in grids, which may be equal to 2k grids, minus the number of grids covered by routing blockages; for each normal edge, the capacity is the half of the number of vias contained in these tiles. The number of vias is divided by 2, because real vias in the chip should not be placed in neighbor 0-level tiles in an embodiment of the present invention.
As a second operational step 206, occupancies are added based on previous level ((k+1)-level) net routing and penalties of edges are calculated. For instance, for the first time, i.e. an initial k, this step may be fictitious and occupancies are set of all edges of k-level routing graph to zero. Beginning with the second time when there is (k+1)-level net routing, for each edge of k-level routing graph, occupancy may be calculated as follows. All routed nets of netlist and all edges of (k+1)-level routing of these nets are considered.
For example, as shown in FIG. 3A, an example of such a regular edge of previous level routing of a net is shown. The tiles are presented by dashed lines and the edge is shown by a solid line. On the previous level, vertices A and B are provided. On the current level, shown in FIG. 3B, four vertices, denoted with subscripts 1, 2, 3 and 4, correspond to each of the previous level vertices. Suppose that C is the capacity of the edge connecting the vertices A and B, the edge may be denoted by (A B). C1 is the capacity of the edge (A2 B1), and C2 is the capacity of the edge (A4 B3). Thus, C=C1+C2, and therefore (C1/C), (C1/2C), (C2/C), (C2/2C) and (C2/2C) is added to occupancy of edges (A2 B1), (A1 A2), (B1 B2), (A4 B3), (A3 A4) and (B3 B4) accordingly.
The normal edges connecting vertices from neighbor layers are shown on FIGS. 4A and 4B. For instance, let m and m+1 be numbers of these neighbor layers. The tiles of layer m are presented by dashed lines and the tiles of layer m+1 by solid lines. On the previous level, vertices A (belonging to layer m) and B (belonging to layer m+1) are provided. On the current level, which is shown in FIG. 4B, four vertices, denoted with subscripts 1, 2, 3 and 4, correspond to each of the previous level vertices.
Suppose the edge (A B) belongs to the previous level routing of some net. On the current level, the edges (A1 B1), (A2 B1), (A2 B2), (A2 B3), (A2 B4), (A3 B1), (A1 B3) appear instead of the edge (A B). Let CIJ be a capacity of the edge (Ai Bj). Denote C=C11+C21+C22+C23+C24+C31+C41+C43. It should be noted that the capacity of the edge (A B) is equal to C. Next, C11/C, C21/C, C22/C, C23/C, C24/C, C31/C, C41/C, C43/C are added to the occupancy of the edges (A1 B1), (A2 B1), (A2 B2), (A2 B3), (A2 B4), (A3 B1), (A1 B3) accordingly. FIG. 2 shows that last time, when k=−1, the routing graph was not constructed. Therefore, when k=−1, the edge occupancies are increased as follows. If some edge belongs to the previous routing of some net then 1 is added to its occupancy.
The penalty for passing through an edge may be a function of the quotient occupancy/capacity and of the length of the edge. For example, the penalty may be 5(occupancy/capacity)length+length. This penalty function may vary although it is preferred that the penalty increase as a function of occupancy/capacity and that the penalty further increases as a function of length. For instance, the penalty may also be calculated as follows: length•eoccupancy/capacity+length.
The third operational step 206 (FIG. 2) is to route the nets in the net routing area. A net routing area is an area based on the net such that the routing of this net, which will be constructed, must be located into this area. There are many ways in which to construct the net routing area. One way is to construct a bounding box based on x and y coordinates and then expand it in all four direction by r times hp, where r is the input parameter and is usually ⅓, hp is half-perimeter of the bounding box. A generalized bounding box of the net may also be constructed based on the grid line directions of all the chip layers. FIG. 5 depicts a net including four pins, A, B, C and D. The grid line directions of 4 layers of the chip are presented by lines OX, OY, OZ and OU. The generalized bounding box of the net A, B, C and D is presented by solid lines. After construction of the generalized bounding box, it may be expanded in all directions by r times hp.
Nets may be routed utilizing a variety of methods, such as the method described in U.S. Pat. No. 6,175,950, which is herein incorporated by reference in its entirety, and other methods as contemplated by a person of ordinary skill in the art. For instance, nets may also be routed by examining all nets step by step. If an examined net has previous routing then the occupancies of the routing graph edges are decreased in the analogical manner as occupancies are added based on previous net routing in operation step 208. Penalties of the changed edges are then recalculated, and the examined net is routed, such as the method that will be described subsequently. Then, once the net is routed, the edges are examined which belong to the routing of this net and for each edge, one (1) is added to its occupancy and its penalty recalculated.
At the net operational step 210 (FIG. 2), nets, which were not routed in step 208, are routed in all chip area. If k>zero (0) 212, the first 204, second 206, third 208 and fourth 210 operational steps are repeated after one is subtracted from k 214. If k is equal to zero 216, the second 206, third 208 and fourth 210 operational steps are repeated after one is subtracted from k 218. This step may be provided because in some instances, vias may be placed in neighbor 0-level tiles after previous net routing. As discussed previously, when k=−1 execution of operational steps two 206 and three 208 is different from the case of when k≧0, too. In the case of k=−1, if some normal edge is added to routing of some net, then all neighbor normal edges are excluded from use for net routing. If k is less than zero 220, legal net routing is obtained.
Procedure to Route Net
A “net” may include a set of pins. In a chip, a pin is a set of points, a set of points and wires connecting these points, and the like. In the present discussion, a pin will be considered as a set of vertices of the routing graph and a vertex is included to the pin if pin's and wires are intersected with the tile corresponding to the vertex. Pins P1 and P2 are directly connected by set E of the edges if P1∩P2=0 or there are vertices a1∈P1 and a2∈P2 such that there exists a path consisting from edges from E and connecting the vertices a1 and a2. Pins P1 and P2 are connected by set E of the edges if there are pins P3, . . . , Pn such that P1 and P3, are Pi and Pi+1 (i=3, 4, . . . , n−1), Pn and P2 are directly connected by set E. A routing of a net is a set E of edges of routing graph such that any two different pins of the net are connected by the set E.
The input of Procedure to Route Net is a net, the output is a routing of this net. If the input net consists from 2 pins, the neighborhood of the first pin is grown until it is intersected with the second pin. A procedure to grow neighborhoods is described later in the discussion. Then, proceeding backward, the least-penalty path is chosen from one pin to another, which will also be discussed subsequently.
If the input net includes 3 pins, P1, P2 and P3 the neighborhoods of all pins are grown until a vertex is reached in another pin. If there is a vertex in the intersection of all neighborhoods, the sum of penalties of all three pins are found from that vertex. In other words, a vertex P0 for which that sum is minimal is found. That sum is denoted by Pen0. Then, for each P1 (I=1, 2, 3), the sum of penalties to other two pins is found from the pin P, and that sum is denoted by Pen1. If Pen0=min{Pen1, i=0, 1, 2, 3} then the net routing is the union of the three least-penalty paths from P0 to all pins P1, P2 and P3. If, for example, Pen1==min{Pen1, i=0, 1, 2, 3} then the net routing is the union of the two paths from P1 to pins P2 and P3.
If the number of pins in the input net is more than 3, than the net may be partitioned into 2 subnets. For example, the method described in U.S. Pat. No. 6,175,950 may be applied, which is herein incorporated by reference in its entirety. For instance, for each pin, the center of gravity may be calculated, and then the pins sorted in ascending order of abscissae of the center of gravity. Let {x1, . . . , xn} be the ordering set of abscissae. xm is found such that xm+1−xm=max{xl+1−x1, i=1, 2, . . . , n−1}. The point xm divides net into 2 subnets. The first subnet includes from m first pins and the second subnet contains another pins. Analogical actions relative to ordinates may also be performed.
After partitioning the net {P1, . . . , Pn} into 2 subnets {P1, . . . , Pm} and {Pm+1, . . . , Pn}, the neighborhoods of the following set:
    • m
    • ∪P1
    • i=1
      and may be grown until a vertex from the following set is reached:
    • n
    • ∪P1
    • i=m+1
      Then, going backward, the least-penalty path from one set to another is chosen and this path is included in the routing of the net. Then, the Procedure to Route Net is recursively applied to the nets {P1, . . . , Pm} and {Pm+1, . . . , Pn}.
      Procedure to Grow Neighborhoods
Let V be the set of vertices of the routing graph and |V|=VertexNumber. Suppose the vertices of the routing graph are numerated from 1 to VertexNumber and N(a) is the number of a vertex a. An edge connecting vertices a and b is denoted by (a,b). Pen(a,b) is the penalty of the edge (a,b). If Pen(a,b)=∞, then edge (a,b) is not used for routing. Vertices a and b are referred to as a neighbor if there is edge (a, b) in the routing graph. A sequence of edges (a,a1), (a1,a2), . . . , (an−1, an), (an,b) is called a path connecting vertices a and b. The penalty of a path P is the sum of penalties of all edges of the path, and is denoted by Pen(P). The distance between vertices a and b is the minimum of penalties of the paths connecting vertices a and b, which is denoted as Dist(a,b). If there are no paths connecting vertices a and b, then Dist(a,b)=∞. If A,BV, a∈V, then Dist(A,a)=min{Dist(b,a), b∈A}, Dist(A,B)=min{Dist(A,a), a∈B}. If AV then neighborhood of the set A is the set Mt(A)={a∈V, Dist (A,a)≦t}.
The input of Procedure to Grow neighborhoods is the set Sour of vertices of the routing graph, which may be referred to as a source set, and a set DestV, referred to as a destination set. The output of Procedure to Grow neighborhoods is the number d=Dist(Sour,Dest), the set Md(Sour), a vertex last∈Md(Sour)∩Dest and the array Prev[VertexNumber], where Prev[N(a)]=0 Md(Sour)\Sour and Prev[N(a)]=b otherwise, where (b,a) is the last edge in a least-penalty path connecting the set Sour and the vertex a.
The procedure may use auxiliary array Char[VertexNumber] and Char[N(a)]=1 if a vertex a belongs to current neighborhood, and Char[N(a)]=0 otherwise; and two sequence of lists L1, L2, L3, . . . , and P1, P2, P3, . . . , where Lt is a list of vertices and each Lt[i] is a candidate to t-neighborhood of the set Sour (i.e. Dist(Lt[i],Sour)≦t), Pt is a list of vertices, and (Pt[i], Lt[i]) is the last edge in a path Q such that Q connects the set Sour and the vertex Lt[i], and Pen(Q)=t.
In an embodiment of the invention, when the procedure is started, Char[k]=0, Prev[k]=0 for all k and the lists Lt, Pt are empty for all t. The procedure to grow neighborhoods may include the following steps.
For all a∈Sour, set Char[N(a)]=1. Set d=0, d is the radius of the current neighborhood, dmax=0, M0(Sour)=Sour.
For all a∈Dest, Char[N(a)] is checked. If Char[N(a)]=1 (it means that a∈Md(Sour)), then last is set equal to a and return d, Md(Sour), last, and the array Prev as the results of the procedure.
All vertices of the set Md(Sour) Md−1(Sour) are examined step by step. For each vertex a∈Md(Sour)Md−1(Sour), all neighbor vertices are examined step by step. For each vertex b which is a neighbor of the vetex a, if Char[N(b)]=0 and p=Pen(b,a)<∞, then a is added to the list Ld+p and b to the list Pd+p, and if d+p>dmax, dmax is set equal to d+p.
Next, Md+1(Sour) is set equal to Md(Sour). All vertices of the list Ld+1 are examined step by step. For each vertex a=Ld+1[i], Char[N(a)] is checked. If Char[N(a)]=0, then the vertex a is added to the set Md+1(Sour), set Char[N(a)]=1, Prev[N(a)]=Pd+1[i].
Then, d is set equal to d+1. If d≦dmax, then the procedure returns to step 2. If d>dmax, it means that there is not a path connecting the sets Sour and Dest, and therefore the procedure is exited.
Finally, if d=Dist(Sour,Dest), last∈Md(Sour)∩Dest then to restore a least-penalty path connecting the sets Sour and Dest, suppose a=last, b=Prev[N(a)]. While b≠0, the edge (a,b) is added to the path and set a=b, b=Prev[N(a)].
In exemplary embodiments, the methods disclosed may be implemented as sets of instructions or software readable by a device. Further, it is understood that the specific order or hierarchy of steps in the methods disclosed are examples of exemplary approaches. Based upon design preferences, it is understood that the specific order or hierarchy of steps in the method can be rearranged while remaining within the scope of the present invention. The accompanying method claims present elements of the various steps in a sample order, and are not meant to be limited to the specific order or hierarchy presented.
Although the invention has been described with a certain degree of particularity, it should be recognized that elements thereof may be altered by persons skilled in the art without departing from the spirit and scope of the invention. One of the embodiments of the invention can be implemented as sets of instructions resident in the memory of one or more information handling systems, which may include memory for storing a program of instructions and a processor for performing the program of instruction, wherein the program of instructions configures the processor and information handling system. Until required by the information handling system, the set of instructions may be stored in another readable memory device, for example in a hard disk drive or in a removable medium such as an optical disc for utilization in a CD-ROM drive and/or digital video disc (DVD) drive, a compact disc such as a compact disc-rewriteable (CD-RW), compact disc-recordable and erasable; a floppy disk for utilization in a floppy disk drive; a floppy/optical disc for utilization in a floppy/optical drive; a memory card such as a memory stick, personal computer memory card for utilization in a personal computer card slot, and the like. Further, the set of instructions can be stored in the memory of an information handling system and transmitted over a local area network or a wide area network, such as the Internet, when desired by the user.
Additionally, the instructions may be transmitted over a network in the form of an applet that is interpreted or compiled after transmission to the computer system rather than prior to transmission. One skilled in the art would appreciate that the physical storage of the sets of instructions or applets physically changes the medium upon which it is stored electrically, magnetically, chemically, physically, optically or holographically so that the medium carries computer readable information.
It is believed that the methodology of the present invention and many of its attendant advantages will be understood by the forgoing description. It is also believed that it will be apparent that various changes may be made in the form, construction and arrangement of the components thereof without departing from the scope and spirit of the invention or without sacrificing all of its material advantages. The form herein before described being merely an explanatory embodiment thereof. It is the intention of the following claims to encompass and include such changes.

Claims (30)

1. A method for routing a multi -layered integrated circuit, comprising:
receiving parameters for an integrated circuit having n layers, wherein n is at least two;
constructing a routing graph for a level k of the n layers of the integrated circuit, the k level partitioned into k-level tiles, wherein at least one edge is provided to join a first tile and a second tile in the k level routing graph;
calculating capacities of the at least one edge joining the first tile and the second tile, the edge at least one of regular and normal;
adding occupancies based on previous level net routing (k+1) and calculating penalties of edges; and
routing nets based on the routing graph, calculated capacities and added occupancies.
2. The method as described in claim 1, wherein after routing nets, if k is more than zero, the constructing, calculating, adding and routing steps are repeated after subtracting one from k.
3. The method as described in claim 1, wherein after routing nets, if k is equal to zero, the adding and routing steps are repeated after subtracting one from k.
4. The method as described in claim 1, wherein after routing nets, if k is less than zero, legal net routing is obtained.
5. The method as described in claim 1, wherein routing nets includes routing nets in a net routing area and routing open nets in all integrated circuit areas.
6. The method as described in claim 1, wherein the parameters include at least one of netlist, grid lines slop, distance between neighboring grid lines, and wire blockage information.
7. The method as described in claim 6, wherein the parameters include parameter information for n layers of the chip.
8. The method as described in claim 1, wherein a tile is a square section, with one side of each tile of the layer directed along a layer grid line.
9. The method as described in claim 8, wherein a tile is sized so that each tile side is approximately equal to one grid.
10. The method as described in claim 8, wherein grid lines are positioned generally through a middle of a tile.
11. The method as described in claim 1, wherein the routing graph includes a vertex including a tile.
12. The method as described in claim 1, wherein capacity for a regular edge is equal to the height of a tile corresponding to the edge expressed in grids minus the number of grid covered by routing blockages.
13. The method as described in claim 1, wherein capacity for a normal edge is half of the number of vias included in the corresponding tiles.
14. The method as described in claim 1, wherein adding occupancies based on previous level net routing includes if pervious level net routing is not available, occupancies are set to zero.
15. The method as described in claim 1, wherein the penalty for passing through an edge is a function of the quotient occupancy/capacity and of the length of the edge.
16. The method as described in claim 1, wherein the penalty at least one of increases as a function of occupancy/capacity and increases as a function of length.
17. The method as described in claim 16, wherein the penalty is computed as follows length•eoccupancy/capacity+length.
18. The method as described in claim 1, wherein routing nets includes arriving at a set of edges such that any two different pins of the net are connected by the set.
19. The method as described in claim 1, wherein routing nets includes implementing a procedure to route nets, wherein the input of the procedure is a net, and the output is a routing of the net.
20. The method as described in claim 19, wherein the procedure to route nets includes if an input net has two pins including a first pin and a second pin, a neighborhood of the first pin is grown until the neighborhood intersects the second pin.
21. The method as described in claim 20, wherein a least-penalty path connecting the first pin and the second pin is chosen.
22. The method as described in claim 20, wherein the procedure to route nets includes if an input net has three pins, the neighborhoods of all pins are grown until a vertex is reached in another pin.
23. The method as described in claim 22, wherein if a vertex in the intersection of all neighborhoods is provided, a sum of penalties to all three pins from that vertex.
24. The method as described in claim 23, wherein there is a vertex in the intersection of all neighborhoods, the sum of penalties of all three pins are found from that vertex such that a vertex P0 for which that sum is minimal is found, and is denoted by Pen0, then, for each Pi(i=1, 2, 3), the sum of penalties to other two pins is found from the pin P, and that sum is denoted by Peni, so that if Pen0=min{Peni, i=0, 1, 2, 3} then the net routing is the union of the three least-penalty paths from P0 to all pins P1, P2 and P3, if Pen1==min{Peni, i=0, 1, 2, 3} then the net routing is the union of the two paths from P1 to pins P2 and P3.
25. The method as described in claim 20, wherein the procedure to route nets includes more than three pins, the net is partitioned into at least two subnets.
26. The method as described in claim 25, wherein for each pin, a center of gravity is calculated and then the pins are sorted in ascending order of abscissae of the center of gravity, such as let {x1, . . . , xn} be the ordering set of abscissae, Xm is found such that Xm+1−Xm=max{xi+1−Xi, i=1, 2, . . . n−1}, the point Xm divides net into 2 subnets wherein the first subnet includes from m first pins and the second subnet contains another pins.
27. The method as described in claim 26, wherein the net {P1, . . . ,Pn} is portioned into 2 subnets {P1, . . . ,Pm} and {Pm+1, . . . , Pn}, the neighborhoods of the following set:
m
∪Pi
i=1
and may be grown until a vertex from the following set is reached:
n
∪pi
i=m+1
the least-penalty path from one set to another is chosen and this path is included in the routing of the net, after which, a Procedure to Route Net is recursively applied to the subnets {P1, . . . ,Pm,} and {Pm+1, . . . , Pn}, the procedure based on the number of pins included in the subnets.
28. The method as described in claim 1, wherein routing nets includes implementing a procedure to grow neighborhoods.
29. The method as described in claim 28, wherein the input of the procedure to grow neighborhoods is a set Sour of vertices of the routing graph, which may be referred to as a source set, and a set DestV, referred to as a destination set, the output of Procedure to Grow neighborhoods includes a number d=Dist(Sour,Dest), set Md(Sour), a vertex last ∈Md(Sour) ∩Dest and the array Prev[VertexNumber], where Prev[N(a)]=0 if a ∉Md(Sour)/Sour and Prev[N(a)]=b otherwise, where (b,a) is the last edge in a least-penalty path connecting the set Sour and the vertex a.
30. A method for routing a multi-layered integrated circuit wherein arbitrary routing directions are supported on an arbitrary number of layers of the integrated circuit, comprising:
receiving parameters for an integrated circuit having n layers, wherein n is at least two;
constructing a routing graph for layers of the integrated circuit, the levels partitioned into tiles, wherein at least one edge is provided to join a first tile and a second tile in the routing graph, the tiles positioned generally corresponding to a layer grid line of the level; and routing based on the routing graph,
wherein the plane of the layer is divided by parallel lines (y cosαi)+(x sinαi)=j di, j=0, ±1, ±2, . . . , where αiis an inclination of the lines, di is the distance between neighboring lines.
US10/027,642 2001-12-20 2001-12-20 Multidirectional router Expired - Fee Related US6845495B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/027,642 US6845495B2 (en) 2001-12-20 2001-12-20 Multidirectional router

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/027,642 US6845495B2 (en) 2001-12-20 2001-12-20 Multidirectional router

Publications (2)

Publication Number Publication Date
US20030121017A1 US20030121017A1 (en) 2003-06-26
US6845495B2 true US6845495B2 (en) 2005-01-18

Family

ID=21838928

Family Applications (1)

Application Number Title Priority Date Filing Date
US10/027,642 Expired - Fee Related US6845495B2 (en) 2001-12-20 2001-12-20 Multidirectional router

Country Status (1)

Country Link
US (1) US6845495B2 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040098694A1 (en) * 2002-11-18 2004-05-20 Steven Teig Method and apparatus for routing
US20040225983A1 (en) * 2003-05-07 2004-11-11 Cadence Design Systems, Inc. Method and apparatus for representing items in a design layout
US20050240893A1 (en) * 2000-12-07 2005-10-27 Cadence Design Systems, Inc. Method and arrangement for layout and manufacture of nonmanhattan semiconductor integrated circuit using simulated euclidean wiring
US6983440B1 (en) 2003-01-14 2006-01-03 Cadence Design Systems, Inc. Shape abstraction mechanism
US7089526B1 (en) * 2003-01-14 2006-08-08 Cadence Design Systems, Inc. Maximum flow analysis for electronic circuit design
US7096445B1 (en) 2003-01-14 2006-08-22 Cadence Design Systems, Inc. Non-orthogonal structures and space tiles for layout, placement, and routing of an integrated circuit
US7222322B1 (en) 2003-01-14 2007-05-22 Cadence Design Systems, Inc. Method and mechanism for implementing tessellation-based routing
US7506295B1 (en) * 2002-12-31 2009-03-17 Cadence Design Systems, Inc. Non manhattan floor plan architecture for integrated circuits
US8201128B2 (en) 2006-06-16 2012-06-12 Cadence Design Systems, Inc. Method and apparatus for approximating diagonal lines in placement

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6898773B1 (en) 2002-01-22 2005-05-24 Cadence Design Systems, Inc. Method and apparatus for producing multi-layer topological routes
US6889372B1 (en) 2000-07-15 2005-05-03 Cadence Design Systems Inc. Method and apparatus for routing
US7003754B2 (en) * 2000-12-07 2006-02-21 Cadence Design Systems, Inc. Routing method and apparatus that use of diagonal routes
US7073150B2 (en) * 2000-12-07 2006-07-04 Cadence Design Systems, Inc. Hierarchical routing method and apparatus that use diagonal routes
US6738960B2 (en) * 2001-01-19 2004-05-18 Cadence Design Systems, Inc. Method and apparatus for producing sub-optimal routes for a net by generating fake configurations
US7310793B1 (en) 2001-06-03 2007-12-18 Cadence Design Systems, Inc. Interconnect lines with non-rectilinear terminations
US6895569B1 (en) 2001-06-03 2005-05-17 Candence Design Systems, Inc. IC layout with non-quadrilateral Steiner points
US6951005B1 (en) 2001-06-03 2005-09-27 Cadence Design Systems, Inc. Method and apparatus for selecting a route for a net based on the impact on other nets
US6976238B1 (en) 2001-06-03 2005-12-13 Cadence Design Systems, Inc. Circular vias and interconnect-line ends
US6829757B1 (en) 2001-06-03 2004-12-07 Cadence Design Systems, Inc. Method and apparatus for generating multi-layer routes
US6859916B1 (en) 2001-06-03 2005-02-22 Cadence Design Systems, Inc. Polygonal vias
US6882055B1 (en) 2001-06-03 2005-04-19 Cadence Design Systems, Inc. Non-rectilinear polygonal vias
US6877149B2 (en) * 2001-08-23 2005-04-05 Cadence Design Systems, Inc. Method and apparatus for pre-computing routes
US6973634B1 (en) * 2002-01-22 2005-12-06 Cadence Design Systems, Inc. IC layouts with at least one layer that has more than one preferred interconnect direction, and method and apparatus for generating such a layout
US7089524B1 (en) 2002-01-22 2006-08-08 Cadence Design Systems, Inc. Topological vias route wherein the topological via does not have a coordinate within the region
US6892371B1 (en) 2002-01-22 2005-05-10 Cadence Design Systems, Inc. Method and apparatus for performing geometric routing
US6944841B1 (en) 2002-01-22 2005-09-13 Cadence Design Systems, Inc. Method and apparatus for proportionate costing of vias
US7117468B1 (en) 2002-01-22 2006-10-03 Cadence Design Systems, Inc. Layouts with routes with different spacings in different directions on the same layer, and method and apparatus for generating such layouts
US7096449B1 (en) 2002-01-22 2006-08-22 Cadence Design Systems, Inc. Layouts with routes with different widths in different directions on the same layer, and method and apparatus for generating such layouts
US7069531B1 (en) 2002-07-15 2006-06-27 Cadence Design Systems, Inc. Method and apparatus for identifying a path between source and target states in a space with more than two dimensions
US7047512B1 (en) 2002-06-04 2006-05-16 Cadence Design Systems, Inc. Method and apparatus for specifying a cost function that represents the estimated distance between an external state and a set of states in a space
US7073151B1 (en) 2002-06-04 2006-07-04 Cadence Design Systems, Inc. Method and apparatus for identifying a path between a set of source states and a set of target states in a triangulated space
US7051298B1 (en) 2002-06-04 2006-05-23 Cadence Design Systems, Inc. Method and apparatus for specifying a distance between an external state and a set of states in space
US7002572B1 (en) 2002-06-19 2006-02-21 Cadence Design Systems, Inc. Method and apparatus for constructing a convex polygon that encloses a set of points in a region
US6976237B1 (en) 2002-06-19 2005-12-13 Cadence Design Systems, Inc. Method and apparatus for estimating distances in a region
US6879934B1 (en) 2002-06-19 2005-04-12 Cadence Design Systems, Inc. Method and apparatus for estimating distances in a region
US7624367B2 (en) * 2002-11-18 2009-11-24 Cadence Design Systems, Inc. Method and system for routing
US7047513B2 (en) 2002-11-18 2006-05-16 Cadence Design Systems, Inc. Method and apparatus for searching for a three-dimensional global path
US6988257B2 (en) * 2002-11-18 2006-01-17 Cadence Design Systems, Inc. Method and apparatus for routing
US7003752B2 (en) 2002-11-18 2006-02-21 Cadence Design Systems, Inc. Method and apparatus for routing
US7480885B2 (en) * 2002-11-18 2009-01-20 Cadence Design Systems, Inc. Method and apparatus for routing with independent goals on different layers
US6936898B2 (en) * 2002-12-31 2005-08-30 Transmeta Corporation Diagonal deep well region for routing body-bias voltage for MOSFETS in surface well regions
US7065731B2 (en) * 2003-05-07 2006-06-20 Cadence Design Systems, Inc. Removal of acute angles in a design layout
US7080339B2 (en) 2003-05-07 2006-07-18 Cadence Design Systems, Inc. Plane representation of wiring in a design layout
US7306977B1 (en) 2003-08-29 2007-12-11 Xilinx, Inc. Method and apparatus for facilitating signal routing within a programmable logic device
US7174528B1 (en) 2003-10-10 2007-02-06 Transmeta Corporation Method and apparatus for optimizing body bias connections in CMOS circuits using a deep n-well grid structure
US7645673B1 (en) * 2004-02-03 2010-01-12 Michael Pelham Method for generating a deep N-well pattern for an integrated circuit design
US7388260B1 (en) 2004-03-31 2008-06-17 Transmeta Corporation Structure for spanning gap in body-bias voltage routing structure
US7571408B1 (en) 2005-03-09 2009-08-04 Cadence Design Systems, Inc. Methods and apparatus for diagonal route shielding
US7305647B1 (en) * 2005-07-28 2007-12-04 Transmeta Corporation Using standard pattern tiles and custom pattern tiles to generate a semiconductor design layout having a deep well structure for routing body-bias voltage
US7472366B1 (en) * 2005-08-01 2008-12-30 Cadence Design Systems, Inc. Method and apparatus for performing a path search
US7694258B1 (en) 2005-08-01 2010-04-06 Cadence Design Systems, Inc. Method and apparatus for inserting metal fill in an integrated circuit (“IC”) layout
US7376921B2 (en) * 2006-02-17 2008-05-20 Athena Design Systems, Inc. Methods for tiling integrated circuit designs
TWM460297U (en) * 2013-01-22 2013-08-21 Darfon Electronics Corp Back light structure and keyboard with back light

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5340772A (en) 1992-07-17 1994-08-23 Lsi Logic Corporation Method of increasing the layout efficiency of dies on a wafer and increasing the ratio of I/O area to active area per die
US5493508A (en) 1994-06-01 1996-02-20 Lsi Logic Corporation Specification and design of complex digital systems
US5532934A (en) 1992-07-17 1996-07-02 Lsi Logic Corporation Floorplanning technique using multi-partitioning based on a partition cost factor for non-square shaped partitions
US5822214A (en) 1994-11-02 1998-10-13 Lsi Logic Corporation CAD for hexagonal architecture
US6230306B1 (en) * 1998-04-17 2001-05-08 Lsi Logic Corporation Method and apparatus for minimization of process defects while routing
US6317864B1 (en) 1998-03-24 2001-11-13 Nec Corporation System and method for graphic layout modification

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5340772A (en) 1992-07-17 1994-08-23 Lsi Logic Corporation Method of increasing the layout efficiency of dies on a wafer and increasing the ratio of I/O area to active area per die
US5532934A (en) 1992-07-17 1996-07-02 Lsi Logic Corporation Floorplanning technique using multi-partitioning based on a partition cost factor for non-square shaped partitions
US5493508A (en) 1994-06-01 1996-02-20 Lsi Logic Corporation Specification and design of complex digital systems
US5822214A (en) 1994-11-02 1998-10-13 Lsi Logic Corporation CAD for hexagonal architecture
US6317864B1 (en) 1998-03-24 2001-11-13 Nec Corporation System and method for graphic layout modification
US6230306B1 (en) * 1998-04-17 2001-05-08 Lsi Logic Corporation Method and apparatus for minimization of process defects while routing

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Standard-Cell Design", M.J.S. Smith, ASIC Library Design, Addison-Wesley, 1997, Chapter 3, p. 150.

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050240893A1 (en) * 2000-12-07 2005-10-27 Cadence Design Systems, Inc. Method and arrangement for layout and manufacture of nonmanhattan semiconductor integrated circuit using simulated euclidean wiring
US7171635B2 (en) * 2002-11-18 2007-01-30 Cadence Design Systems, Inc. Method and apparatus for routing
US20040098694A1 (en) * 2002-11-18 2004-05-20 Steven Teig Method and apparatus for routing
US7506295B1 (en) * 2002-12-31 2009-03-17 Cadence Design Systems, Inc. Non manhattan floor plan architecture for integrated circuits
US7089526B1 (en) * 2003-01-14 2006-08-08 Cadence Design Systems, Inc. Maximum flow analysis for electronic circuit design
US7096445B1 (en) 2003-01-14 2006-08-22 Cadence Design Systems, Inc. Non-orthogonal structures and space tiles for layout, placement, and routing of an integrated circuit
US6983440B1 (en) 2003-01-14 2006-01-03 Cadence Design Systems, Inc. Shape abstraction mechanism
US7222322B1 (en) 2003-01-14 2007-05-22 Cadence Design Systems, Inc. Method and mechanism for implementing tessellation-based routing
US7516433B1 (en) 2003-01-14 2009-04-07 Cadence Design Systems, Inc. Non-orthogonal structures and space tiles for layout, placement, and routing of an integrated circuit
US7594214B1 (en) 2003-01-14 2009-09-22 Cadence Design Systems, Inc. Maximum flow analysis for electronic circuit design
US7694261B1 (en) 2003-01-14 2010-04-06 Cadence Design Systems, Inc. Method and mechanism for implementing tessellation-based routing
US7752590B1 (en) 2003-01-14 2010-07-06 Cadence Design Systems, Inc. Method and mechanism for implementing tessellation-based routing
US7243328B2 (en) * 2003-05-07 2007-07-10 Cadence Design Systems, Inc. Method and apparatus for representing items in a design layout
US20040225983A1 (en) * 2003-05-07 2004-11-11 Cadence Design Systems, Inc. Method and apparatus for representing items in a design layout
US8201128B2 (en) 2006-06-16 2012-06-12 Cadence Design Systems, Inc. Method and apparatus for approximating diagonal lines in placement

Also Published As

Publication number Publication date
US20030121017A1 (en) 2003-06-26

Similar Documents

Publication Publication Date Title
US6845495B2 (en) Multidirectional router
US6895567B1 (en) Method and arrangement for layout of gridless nonManhattan semiconductor integrated circuit designs
EP0932874B1 (en) A method and apparatus for routing of nets in an electronic device
US5583788A (en) Automatic layout design method of wirings in integrated circuit using hierarchical algorithm
EP0133466B1 (en) Simultaneous placement and wiring for vlsi chips
US4908772A (en) Integrated circuits with component placement by rectilinear partitioning
US8006216B1 (en) Dynamic push for topological routing of semiconductor packages
US6678872B2 (en) Method and apparatus for using a diagonal line to measure congestion in a region of an integrated-circuit layout
US6763512B2 (en) Detailed method for routing connections using tile expansion techniques and associated methods for designing and manufacturing VLSI circuits
US20020170020A1 (en) Method and system of modifying integrated circuit power rails
US20050240893A1 (en) Method and arrangement for layout and manufacture of nonmanhattan semiconductor integrated circuit using simulated euclidean wiring
JPH05502549A (en) Improved routing apparatus and method for integrated circuits
US8250514B1 (en) Localized routing direction
US6397375B1 (en) Method for managing metal resources for over-the-block routing in integrated circuits
US6735754B2 (en) Method and apparatus to facilitate global routing for an integrated circuit layout
US6901506B2 (en) Maximal tile generation technique and associated methods for designing and manufacturing VLSI circuits
US6532580B1 (en) In-place method for inserting repeater buffers in an integrated circuit
JP2000067102A (en) Hierarchical wiring method for semiconductor integrated circuit
US6408426B1 (en) Method for determining locations of interconnect repeater farms during physical design of integrated circuits
US6477690B1 (en) In-place repeater insertion methodology for over-the-block routed integrated circuits
Liu et al. Substrate topological routing for high-density packages
US11461529B1 (en) Routing with soft-penalizing pixels on a found path
US20020129326A1 (en) Method for inserting repeaters in hierarchical chip design
JP4262660B2 (en) Sequence pair creation device and sequence pair creation method
JP3422839B2 (en) Logic cell division processing method for semiconductor integrated circuit

Legal Events

Date Code Title Description
AS Assignment

Owner name: LSI LOGIC CORPORATION, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ANDREEV, ALEXANDRE E.;SCEPANOVIC, RANKO;GASANOV, ELYAR E.;REEL/FRAME:012408/0121;SIGNING DATES FROM 20011214 TO 20011217

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

AS Assignment

Owner name: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AG

Free format text: PATENT SECURITY AGREEMENT;ASSIGNORS:LSI CORPORATION;AGERE SYSTEMS LLC;REEL/FRAME:032856/0031

Effective date: 20140506

AS Assignment

Owner name: LSI CORPORATION, CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:LSI LOGIC CORPORATION;REEL/FRAME:033102/0270

Effective date: 20070406

AS Assignment

Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LSI CORPORATION;REEL/FRAME:035390/0388

Effective date: 20140814

AS Assignment

Owner name: LSI CORPORATION, CALIFORNIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031);ASSIGNOR:DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT;REEL/FRAME:037684/0039

Effective date: 20160201

Owner name: AGERE SYSTEMS LLC, PENNSYLVANIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031);ASSIGNOR:DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT;REEL/FRAME:037684/0039

Effective date: 20160201

AS Assignment

Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH CAROLINA

Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:037808/0001

Effective date: 20160201

Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH

Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:037808/0001

Effective date: 20160201

REMI Maintenance fee reminder mailed
LAPS Lapse for failure to pay maintenance fees
AS Assignment

Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD., SINGAPORE

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:041710/0001

Effective date: 20170119

Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:041710/0001

Effective date: 20170119

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20170118

AS Assignment

Owner name: BELL SEMICONDUCTOR, LLC, ILLINOIS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;BROADCOM CORPORATION;REEL/FRAME:044887/0109

Effective date: 20171208

AS Assignment

Owner name: CORTLAND CAPITAL MARKET SERVICES LLC, AS COLLATERA

Free format text: SECURITY INTEREST;ASSIGNORS:HILCO PATENT ACQUISITION 56, LLC;BELL SEMICONDUCTOR, LLC;BELL NORTHERN RESEARCH, LLC;REEL/FRAME:045216/0020

Effective date: 20180124

AS Assignment

Owner name: BELL NORTHERN RESEARCH, LLC, ILLINOIS

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CORTLAND CAPITAL MARKET SERVICES LLC;REEL/FRAME:059720/0223

Effective date: 20220401

Owner name: BELL SEMICONDUCTOR, LLC, ILLINOIS

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CORTLAND CAPITAL MARKET SERVICES LLC;REEL/FRAME:059720/0223

Effective date: 20220401

Owner name: HILCO PATENT ACQUISITION 56, LLC, ILLINOIS

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CORTLAND CAPITAL MARKET SERVICES LLC;REEL/FRAME:059720/0223

Effective date: 20220401