US7325216B2 - Method and computer program for spreading trace segments in an integrated circuit package design - Google Patents
Method and computer program for spreading trace segments in an integrated circuit package design Download PDFInfo
- Publication number
- US7325216B2 US7325216B2 US11/271,991 US27199105A US7325216B2 US 7325216 B2 US7325216 B2 US 7325216B2 US 27199105 A US27199105 A US 27199105A US 7325216 B2 US7325216 B2 US 7325216B2
- Authority
- US
- United States
- Prior art keywords
- trace
- line function
- trace segments
- segments
- segment
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/394—Routing
Definitions
- the present invention is directed to the design and manufacture of integrated circuits. More specifically, but without limitation thereto, the present invention is directed to a method of placement and routing of an integrated circuit package design.
- a method of spreading trace segments in an integrated circuit package design includes steps of:
- a computer program product includes:
- FIG. 1 illustrates a typical placement and routing diagram for a portion of an integrated circuit package design of the prior art
- FIG. 2 illustrates a new routing diagram after spreading a first set of trace segments in FIG. 1 ;
- FIG. 3 illustrates a new routing diagram after spreading a second set of trace segments connected to one end of the first set of trace segments in FIG. 2 ;
- FIG. 4 illustrates a new routing diagram after spreading a third set of trace segments connected to one end of the second set of trace segments in FIG. 3 ;
- FIG. 5 illustrates a new routing diagram after spreading a fourth set of trace segments connected to the other end of the second set of trace segments in FIG. 4 ;
- FIG. 6 illustrates a new routing diagram after spreading a fifth set of trace segments connected to one end of the fourth set of trace segments in FIG. 5 ;
- FIG. 7 illustrates the routing diagram of FIG. 1 in which a set of trace segments is selected using boundary lines inside the set of selected trace segments;
- FIG. 8 illustrates a new routing diagram after spreading the set of trace segments selected in FIG. 7 ;
- FIG. 9 illustrates a magnified view of the routing diagram of FIG. 1 in which a set of trace segments is selected using boundary lines outside one of the outer trace segments;
- FIG. 10 illustrates a new routing diagram after spreading the set of trace segments selected in FIG. 9 ;
- FIG. 11 illustrates the routing diagram of FIG. 1 in which a set of trace segments is selected using boundary lines connected to define a spreading region for the set of selected trace segments;
- FIG. 12 illustrates a new routing diagram after spreading the set of trace segments selected in FIG. 11 ;
- FIG. 13 illustrates a magnified view of a placement and routing diagram for a portion of an integrated circuit package design that includes a set of non-parallel trace segments
- FIG. 14 illustrates a new routing diagram after spreading the set of non-parallel trace segments in FIG. 13 ;
- FIG. 15 illustrates a flow chart for a method of spreading a set of trace segments
- FIG. 16 illustrates a flow chart for a computer program product for spreading trace segments in an integrated circuit package design that summarizes the method of FIG. 15 .
- FIG. 1 illustrates a typical placement and routing diagram 100 for a portion of an integrated circuit package design of the prior art. Shown in FIG. 1 are a trace 102 , trace segments 104 , 106 , 108 and 110 , and a set of selected trace segments 112 .
- the trace 1021 typically provides an electrical connection between two points in the placement and routing diagram 100 .
- the trace 102 may be an input/output (I/O) trace that connects a solder bump or finger to a solder ball in an integrated circuit package.
- An integrated circuit package may have thousands or more traces similar to the trace 102 . Because each trace typically changes angle or direction several times, each trace includes at least one trace segment exemplified by the trace segments 104 , 106 , 108 and 110 . Each of the trace segments 104 , 106 , 108 and 110 is a portion of the trace 102 that extends a given length at a constant angle.
- the angle may have one of a defined set of values, for example, 0, 45, or 90 degrees. In some integrated circuit package designs, the angle may have any value between 0 and 360 degrees.
- Typical routing algorithms used in integrated circuit package design software apply minimum spacing design rules for routing each trace segment that do not take into account the spacing of other trace segments that are routed nearby. As a result, some trace segments are routed with closer spacing than others, for example, the set of selected trace segments 112 .
- Due to design requirements for signal-to-noise ratio design engineers frequently have to spread trace segments in critical routing areas to avoid crosstalk interference that may result in a malfunction of the integrated circuit. In previous routing methods, design engineers visually estimate trace spacing in critical areas and manually spread the trace segments so that they are equally spaced to minimize overall crosstalk between adjacent trace segments. Because the manual spreading procedure is labor intensive and prone to human error, automatically spreading trace segments in the placement and routing portion of the integrated circuit package design may significantly reduce the cost and improve the reliability of integrated circuit package design.
- a method of spreading trace segments in an integrated circuit package design includes steps of:
- FIG. 2 illustrates a new routing diagram 200 after spreading the set of selected trace segments in FIG. 1 . Shown in FIG. 2 are a set of rerouted trace segments 202 , outer trace segments 204 and 206 , inner trace segments 208 , and end points 210 .
- the set of selected trace segments 112 in FIG. 1 has been rerouted so that each of the inner trace segments 208 is equally spaced between the outer trace segments 204 and 206 .
- the end points 210 of the rerouted inner trace segments 208 have been changed to terminate each of the rerouted inner trace segments 208 at the intersection between the inner trace segments 208 and the trace segments that are connected to each end of the inner trace segments 208 .
- the length of each of the inner trace segments 208 may be lengthened or shortened, and all of the inner trace segments 208 are equally spaced between the outer trace segments 204 and 206 .
- the equal spacing of the inner trace segments 208 between the outer trace segments 204 and 206 advantageously minimizes the capacitive coupling among the set of rerouted trace segments 202 .
- the signal-to-noise ratio of the set of trace segments 202 is significantly improved over the arrangement of FIG. 1 .
- the spreading of the set of selected trace segments illustrated in FIG. 2 may be continued as follows.
- FIG. 3 illustrates a new routing diagram 300 after spreading a second set of trace segments connected to one end of the first set of trace segments in FIG. 2 . Shown in FIG. 3 are a first set of rerouted trace segments 202 , a second set of rerouted trace segments 302 , outer trace segments 304 and 306 , inner trace segments 308 , and end points 310 .
- the second set of rerouted trace segments 302 has been rerouted in the same manner described above for the first set of rerouted trace segments 202 in FIG. 2 .
- FIG. 4 illustrates a new routing diagram 400 after spreading a third set of trace segments connected to one end of the second set of trace segments in FIG. 3 .
- Shown in FIG. 4 are a first set of rerouted trace segments 202 , a second set of rerouted trace segments 302 , a third set of rerouted trace segments 402 , outer trace segments 404 and 406 , inner trace segments 408 , and end points 410 .
- the third set of rerouted trace segments 402 has been rerouted in the same manner described above for the first set of trace segments 202 in FIG. 2 .
- FIG. 5 illustrates a new routing diagram 500 after spreading a fourth set of trace segments connected to the other end of the second set of trace segments in FIG. 4 .
- Shown in FIG. 5 are a first set of rerouted trace segments 202 , a second set of rerouted trace segments 302 , a third set of rerouted trace segments 402 , a fourth set of rerouted trace segments 502 , outer trace segments 504 and 506 , inner trace segments 508 , and end points 510 .
- the fourth set of rerouted trace segments 502 has been rerouted in the same manner described above for the first set of trace segments 202 in FIG. 2 .
- FIG. 6 illustrates a new routing diagram 600 after spreading a fifth set of trace segments connected to one end of the fourth set of trace segments in FIG. 5 .
- Shown in FIG. 5 are a first set of rerouted trace segments 202 , a second set of rerouted trace segments 302 , a third set of rerouted trace segments 402 , a fourth set of rerouted trace segments 502 , a fifth set of rerouted trace segments 602 , outer trace segments 604 and 606 , inner trace segments 608 , and end points 610 .
- the fifth set of rerouted trace segments 602 has been rerouted in the same manner described above for the first set of rerouted trace segments 202 in FIG. 2 .
- An integrated circuit package designer or other user may select each set of trace segments to be spread in FIGS. 2-6 by a window, by a temp group, or directly by clicking on each segment with a pointing device according to well-known computer automated design (CAD) techniques.
- CAD computer automated design
- FIG. 7 illustrates a magnified view 700 of the routing diagram of FIG. 1 in which a set of trace segments is selected using boundary lines inside the outer trace segments. Shown in FIG. 7 are a set of selected trace segments 702 , outer trace segments 704 and 706 , inner trace segments 708 and 710 , boundary lines 712 and 714 , a number of equally distant points 716 and 718 , inner line functions 720 and 722 , and end points 724 and 726 .
- the boundary lines 712 and 714 are received as input by an integrated circuit package designer or user according to well known computer automated design (CAD) techniques, for example, by clicking on one end point of the boundary line 712 or 714 , dragging a line from the end point, and clicking on the opposite end point with a manually operated pointing device such as a computer mouse.
- CAD computer automated design
- the boundary line 712 is drawn approximately through one end of each of the outer trace segments 704 and 706
- the boundary line 714 is drawn inside the opposite end of each of outer trace segments 704 and 706 .
- the boundary line 712 is divided into the equally distant points 716 and 718 from the outer trace segments 704 and 706 .
- the number of equally distant points is equal to the number of inner line segments.
- the inner line functions 720 and 722 are generated so that they pass through each of the equally distant points 716 and 718 respectively and have the same slope as each of the outer trace segments 704 and 706 .
- the end point 724 is calculated for the inner line function 720 at the intersection of the inner line function 720 and the trace segment connected to one end of the inner trace segment 708 .
- the end point 726 is calculated for the inner line function 720 at the intersection of the inner line function 720 and the trace segment connected to the opposite end of the inner trace segment 708 .
- a pair of end points is generated for the inner line function 722 .
- FIG. 8 illustrates a new routing diagram 800 after spreading the set of trace segments selected in FIG. 7 . Shown in FIG. 8 are a set of rerouted trace segments 802 , outer trace segments 704 and 706 , boundary lines 712 and 714 , and inner trace segments 804 and 806 .
- the inner trace segments 804 and 806 are routed collinearly with the inner line functions 720 and 722 in FIG. 7 , rerouting the inner trace segments 708 and 710 .
- the inner trace segments 802 and 804 are equally spaced along the boundary lines 712 and 714 from the outer trace segments 704 and 706 , advantageously minimizing the capacitive coupling among the set of rerouted trace segments 802 .
- FIG. 9 illustrates a magnified view 900 of the routing diagram of FIG. 1 in which a set of trace segments is selected using boundary lines outside one of the outer trace segments. Shown in FIG. 9 are a set of selected trace segments 702 , outer trace segments 704 and 706 , inner trace segments 708 and 710 , boundary lines 902 and 904 , a number of equally distant points 906 and 908 , an outer line function 910 , inner line functions 912 and 914 , and end points 916 and 918 .
- the boundary lines 902 and 904 may be made, for example, in the same manner described above with reference to FIG. 7 .
- the boundary lines 902 and 904 are drawn outside the end points of the outer trace segment 704 and through the end points of the outer trace segment 706 .
- the outer line function 910 passes through the point where the trace segment connected to one end of the trace segment 704 intersects the boundary line 902 .
- the intersection becomes the end point 916 of the outer line function 910
- the other end point 918 is the intersection of the trace segment connected to the other end of the outer trace segment 704 and the outer line function 910 .
- the outer line function 910 may then be calculated from the end points 916 and 918 .
- the outer line function 910 is parallel to the outer trace segment 704 .
- the boundary line 902 is divided into the equally distant points 906 and 908 from the outer line function 910 and the outer trace segment 706 .
- the inner line functions 912 and 914 are generated so that they pass through each of the equally distant points 906 and 908 respectively and have the same slope as each of the outer line function 910 and the outer trace segment 706 .
- a pair of end points for each of the inner line functions 912 and 914 is calculated in the same manner as described above with reference to FIG. 7 .
- FIG. 10 illustrates a new routing diagram 1000 after spreading the set of trace segments selected in FIG. 9 . Shown in FIG. 10 are a set of rerouted trace segments 1002 , outer trace segments 1004 and 706 , boundary lines 902 and 904 , and inner trace segments 1006 and 1008 .
- the outer trace segment 1004 is routed collinearly with the outer line function 910
- the inner trace segments 1006 and 1008 are routed collinearly with the inner line functions 912 and 914 in FIG. 9 , rerouting the inner trace segments 708 and 710 .
- the inner trace segments 1006 and 1008 are equally spaced along the boundary lines 902 and 904 from the outer trace segments 1004 and 706 , advantageously minimizing the capacitive coupling among the set of rerouted trace segments 1002 .
- FIG. 11 illustrates a magnified view 1100 of the routing diagram of FIG. 1 in which a set of trace segments is selected by defining a spreading region for the set of selected trace segments. Shown in FIG. 11 are a set of selected trace segments 702 , outer trace segments 704 and 706 , inner trace segments 708 and 710 , a spreading region 1102 , boundary lines 1104 and 1106 , a number of equally distant points 1108 and 1110 , outer line functions 1112 and 1114 , inner line functions 1116 and 1118 , and end points 1120 , 1122 , 1124 , and 1126 .
- the spreading region 1102 may be received as input, for example, in the same manner as the boundary lines 712 and 714 described above with reference to FIG. 7 , except that the boundary lines 1104 and 1106 are connected to form a polygon that encloses the spreading region 1102 .
- the spreading region 1102 is drawn so that the boundary lines 1104 and 1106 lie outside the end points of both the outer trace segments 704 and 706 .
- Drawing the boundary lines 1104 and 1106 outside the end points of either or both of the outer trace segments 704 and 706 may be used to indicate that one or both of the outer trace segments 704 and 706 are to be rerouted so that their end points lie on one of the boundary lines 1104 and 1106 .
- the outer line functions 1112 and 1114 are calculated for the corresponding outer trace segments 704 and 706 so that the outer line functions 1112 and 1114 have the same slope as each of the outer trace segments 704 and 706 .
- Each of the outer line functions 1112 and 1114 passes through one of the end points 1120 and 1122 where the trace segment connected to one end of each of the outer trace segments 704 and 706 intersects the boundary line 1104 .
- the other end point 1124 of the outer line function 1112 is the intersection of the trace segment connected to the other end of the outer trace segment 704 and the outer line function 1112
- the other end point 1126 of the outer line function 1114 is the intersection of the trace segment connected to the other end of the outer trace segment 706 and the outer line function 1114 .
- the boundary line 1106 is divided into the equally distant points 1108 and 1110 from the outer line functions 1112 and 1114 .
- the inner line functions 1116 and 1118 are generated so that they pass through each of the equally distant points 1108 and 1110 respectively and have the same slope as each of the outer line functions 1112 and 1114 .
- a pair of end points for each of the inner line functions 1116 and 1118 is calculated in the same manner as described above with reference to FIG. 7 .
- FIG. 12 illustrates a new routing diagram 1200 after spreading the set of trace segments selected in FIG. 11 . Shown in FIG. 12 are a spreading region 1102 , a set of rerouted trace segments 1202 , outer trace segments 1204 and 1206 , and inner trace segments 1208 and 1210 .
- the outer trace segments 1204 and 1206 are routed collinearly with the outer line functions 1112 and 1114 in FIG. 11
- the inner trace segments 1208 and 1210 are routed collinearly with the inner line functions 1116 and 1118 in FIG. 11 , rerouting the inner trace segments 708 and 710 .
- the inner trace segments 1208 and 1210 are equally spaced along the boundary line 1106 from the outer trace segments 1204 and 1206 , advantageously minimizing the capacitive coupling among the set of rerouted trace segments 1202 .
- FIG. 13 illustrates a magnified view 1300 of a placement and routing diagram for a portion of an integrated circuit package design that includes a set of non-parallel trace segments. Shown in FIG. 13 are a set of selected trace segments 1302 , outer trace segments 1304 and 1306 , inner trace segments 1308 , 1310 , and 1312 , inner line functions 1318 , 1320 , and 1322 , boundary lines 1324 and 1326 , and equally spaced points 1328 , 1330 , 1332 , 1334 , 1336 , and 1338 .
- step ⁇ ( i ) angle ⁇ ⁇ between ⁇ ⁇ outer ⁇ ⁇ segments N + 1 * i ( 1 )
- N is the number of inner segments
- i is the inner line function index.
- the stepped angle is added to the slope of the outer trace segment having the lowest slope to generate the slope of each inner line function.
- the inner line functions 1322 , 1320 , and 1318 would have slopes of 50 degrees, 60 degrees, and 70 degrees, respectively.
- the end points of the outer trace segments 1304 and 1306 and of the inner line functions 1308 , 1310 , and 1312 may be calculated in the same manner as described above with reference to FIG. 9 .
- a distance between the outer trace segments 1304 and 1306 may be calculated along the second boundary line 1326 and divided by the same number of equally spaced points as the first boundary line 1324 .
- Each of the inner line functions 1318 , 1320 , and 1322 is calculated to intersect the first and second boundary lines at a corresponding pair of the equally distant points 1328 , 1330 , and 1332 along the first boundary line 1314 and the equally distant points 1334 , 1336 , and 1338 along the second boundary line 1326 .
- the end points of the inner line functions 1318 , 1320 , and 1322 may be calculated in the same manner as described above with reference to FIG. 9 .
- FIG. 14 illustrates a new routing diagram 1400 after spreading the set of non-parallel trace segments in FIG. 13 . Shown in FIG. 14 are a set of rerouted trace segments 1402 , outer trace segments 1304 and 1306 , and inner trace segments 1404 , 1406 , and 1408 .
- the inner trace segments 1404 , 1406 , and 1408 are routed collinearly with the inner line functions 1318 , 1320 , and 1322 in FIG. 13 , rerouting the inner trace segments 1308 , 1310 , and 1312 .
- the inner trace segments 1404 , 1406 , and 1408 are equally spaced from the outer trace segments 1304 and 1306 , advantageously minimizing the capacitive coupling among the set of rerouted trace segments 1402 .
- the method of spreading trace segments described in the examples above may be performed by the following steps.
- FIG. 15 illustrates a flow chart 1500 for a method of spreading a set of trace segments.
- Step 1502 is the entry point of the flow chart 1500 .
- a placement and routing of at least a portion of an integrated circuit package design is received as input according to well-known techniques.
- the placement and routing may include only portions of an integrated circuit package design that are noise critical areas.
- the placement and routing of the entire integrated circuit package design may be received as input for equally spreading all the trace segments if desired.
- a set of at least three trace segments is selected from the placement and routing that includes at least one inner trace segment routed between two outer trace segments.
- the set of trace segments may be selected manually by an integrated circuit package designer or other user, or the set of trace segments may be read from a previously generated list.
- step 1508 if the selection of the set of trace segments indicates that one or both of the outer trace segments are to be rerouted, then the method continues from step 1510 . Otherwise, the method continues from step 1512 .
- step 1510 an outer line function and a corresponding pair of end points is calculated for each outer trace segment to be rerouted as described above with reference to FIG. 11 .
- a distance between the outer trace segments and/or the outer line function is divided by a number of equally spaced points.
- an inner line function is calculated for each inner trace segment.
- Each inner line function passes through one of the equally spaced points so that each inner line function is equally spaced from an adjacent inner line function, an adjacent outer line function, or an adjacent outer trace segment on each side of the inner line function.
- step 1516 the slope of each inner line function is set equal to that of the outer trace segment having a slope that does not exceed the slope of the other outer trace segment. In other words, if the slopes of the outer trace segments are equal, then the slope of each inner line function is set equal to that of either outer trace segment. On the other hand, if the slopes of the outer trace segments are not equal, then the slope of each inner line function is set equal to that of the outer trace segment having the lesser slope.
- step 1518 if the outer trace segments have the same slope, then the method continues from step 1522 . Otherwise, the method continues from step 1520 .
- step 1520 the angle between the outer trace segments is divided into a stepped angle, and the stepped angle is added to the slope for each inner line function as described above with reference to equation (1).
- a distance between the outer trace segments may be calculated along a second boundary line between the two outer segments according to well-known techniques and divided by a number of points that are equally spaced from one another and the outer trace segments in the same manner as the first boundary line.
- Each inner line function is calculated to intersect the first and second boundary lines at a corresponding pair of equally distant points along the first and second boundary lines.
- a pair of end points is calculated for each inner line function.
- Each end point may be found by calculating the intersection point of the inner line function and a trace segment that is connected to one end of the corresponding inner trace segment according to well-known techniques.
- the trace segment connected to one end of the corresponding inner trace segment may be extended or trimmed as necessary to terminate at the intersection point.
- step 1524 a new routing is generated as output that reroutes each inner trace segment collinearly with the corresponding inner line function and terminates each inner trace segment by the corresponding pair of end points.
- Step 1526 is the exit point of the flow chart 1500 .
- the flow chart described above may also be automated by instructions for a computer.
- the instructions may be embodied in a disk, a CD-ROM, and other computer readable media according to well known computer programming techniques.
- FIG. 16 illustrates a flow chart for a computer program product for spreading trace segments in an integrated circuit package design that summarizes the method of FIG. 15 .
- Step 1602 is the entry point of the flow chart 1600 .
- step 1604 a placement and routing of at least a portion of an integrated circuit package design is received as input.
- a set of at least three trace segments is selected from the placement and routing that includes at least one inner trace segment routed between two outer trace segments.
- an inner line function is calculated for the inner trace segment that is equally spaced from one of an adjacent line function, an adjacent outer line function, and an adjacent outer trace segment on each side of the inner line function.
- a pair of end points is calculated for the inner line function.
- one end point of the pair of end points may be the intersection of the inner line function and one of a plurality of equally spaced points along a boundary line between the outer trace segments and/or an outer line function.
- the other end point of the pair of end points may be the intersection of the inner line function and a trace segment connected to the inner trace segment.
- a new routing is generated as output that reroutes the inner trace segment collinearly with the inner line function and terminates the inner trace segment by the pair of end points.
- Step 1614 is the exit point of the flow chart 1600 .
- the method described above may also be applied to the layout of integrated circuits as well as to integrated circuit package designs within the scope of the appended claims.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
Description
-
- (a) receiving as input a placement and routing of at least a portion of an integrated circuit package design;
- (b) selecting a set of at least three trace segments from the placement and routing that includes at least one inner trace segment routed between two outer trace segments;
- (c) calculating an inner line function for the inner trace segment that is equally spaced from one of an adjacent line function, an adjacent outer line function, and an adjacent outer trace segment on each side of the inner line function;
- (d) calculating a pair of end points for the inner line function; and
- (e) generating as output a new routing that reroutes the inner trace segment collinearly with the inner line function and terminates the inner trace segment by the pair of end points.
-
- a medium for embodying a computer program for input to a computer; and
- a computer program embodied in the medium for causing the computer to perform steps of:
- (a) receiving as input a placement and routing of at least a portion of an integrated circuit package design;
- (b) selecting a set of at least three trace segments from the placement and routing that includes at least one inner trace segment routed between two outer trace segments;
- (c) calculating an inner line function for the inner trace segment that is equally spaced from one of an adjacent line function, an adjacent outer line function, and an adjacent outer trace segment on each side of the inner line function;
- (d) calculating a pair of end points for the inner line function; and
- (e) generating as output a new routing that reroutes the inner trace segment collinearly with the inner line function and terminates the inner trace segment by the pair of end points.
-
- (a) receiving as input a placement and routing of at least a portion of an integrated circuit package design;
- (b) selecting a set of at least three trace segments from the placement and routing that includes at least one inner trace segment routed between two outer trace segments;
- (c) calculating an inner line function for the inner trace segment that is equally spaced from one of an adjacent line function, an adjacent outer line function, and an adjacent outer trace segment on each side of the inner line function;
- (d) calculating a pair of end points for the inner line function; and
- (e) generating as output a new routing that reroutes the inner trace segment collinearly with the inner line function and terminates the inner trace segment by the pair of end points.
where N is the number of inner segments and i is the inner line function index. For example, if the difference in slope between the two
Claims (14)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/271,991 US7325216B2 (en) | 2005-11-09 | 2005-11-09 | Method and computer program for spreading trace segments in an integrated circuit package design |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/271,991 US7325216B2 (en) | 2005-11-09 | 2005-11-09 | Method and computer program for spreading trace segments in an integrated circuit package design |
Publications (2)
Publication Number | Publication Date |
---|---|
US20070104029A1 US20070104029A1 (en) | 2007-05-10 |
US7325216B2 true US7325216B2 (en) | 2008-01-29 |
Family
ID=38003611
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/271,991 Expired - Fee Related US7325216B2 (en) | 2005-11-09 | 2005-11-09 | Method and computer program for spreading trace segments in an integrated circuit package design |
Country Status (1)
Country | Link |
---|---|
US (1) | US7325216B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7689964B2 (en) * | 2007-12-19 | 2010-03-30 | Suvolta, Inc. | System and method for routing connections |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6349403B1 (en) * | 1998-12-18 | 2002-02-19 | Synopsys, Inc. | Interative, gridless, cost-based layer assignment coarse router for computer controlled IC design |
US6665852B2 (en) * | 2000-12-01 | 2003-12-16 | Sun Microsystems, Inc. | Piecewise linear cost propagation for path searching |
US7139992B2 (en) * | 2000-12-01 | 2006-11-21 | Sun Microsystems, Inc. | Short path search using tiles and piecewise linear cost propagation |
-
2005
- 2005-11-09 US US11/271,991 patent/US7325216B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6349403B1 (en) * | 1998-12-18 | 2002-02-19 | Synopsys, Inc. | Interative, gridless, cost-based layer assignment coarse router for computer controlled IC design |
US6665852B2 (en) * | 2000-12-01 | 2003-12-16 | Sun Microsystems, Inc. | Piecewise linear cost propagation for path searching |
US7139992B2 (en) * | 2000-12-01 | 2006-11-21 | Sun Microsystems, Inc. | Short path search using tiles and piecewise linear cost propagation |
Also Published As
Publication number | Publication date |
---|---|
US20070104029A1 (en) | 2007-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7143385B2 (en) | Wiring design method and system for electronic wiring boards | |
Ding et al. | Pin accessibility-driven detailed placement refinement | |
US7657859B2 (en) | Method for IC wiring yield optimization, including wire widening during and after routing | |
US20060168551A1 (en) | Integrated circuit having a multi-layer structure and design method thereof | |
US6532572B1 (en) | Method for estimating porosity of hardmacs | |
JP2006323643A (en) | Floor plan design program, floor plan design device, and design method of semiconductor integrated circuit | |
JP4986114B2 (en) | Semiconductor integrated circuit and design method of semiconductor integrated circuit | |
JP2006196627A (en) | Semiconductor device and its design program | |
US8302051B2 (en) | System and method for extracting parasitic elements | |
US20050006781A1 (en) | Semiconductor integrated circuit having reduced cross-talk noise | |
US7086024B2 (en) | Methods and apparatus for defining power grid structures having diagonal stripes | |
JP2013037451A (en) | Layout design device, layout design method, and layout design program | |
JP2007011629A (en) | System for checking return path of printed wiring board | |
JP2007286691A (en) | Integrated circuit designing device | |
US20180268097A1 (en) | Interactive Routing of Connections in Circuit Using Auto Welding and Auto Cloning | |
US7325216B2 (en) | Method and computer program for spreading trace segments in an integrated circuit package design | |
US8671376B2 (en) | Computer system and method for performing a routing supply and demand analysis during the floor planning stage of an integrated circuit design process | |
JP5128204B2 (en) | Differential wiring method, differential wiring apparatus, program, and computer-readable recording medium | |
US8402417B2 (en) | Spine selection mode for layout editing | |
US10198547B2 (en) | Support apparatus, design support method, program, and memory medium | |
US20110066266A1 (en) | Interconnection design method, recording medium containing program and manufacturing method of interconnection substrate | |
CN100592494C (en) | Method for correcting layout design for correcting metallic coating of contact hole | |
US7913216B2 (en) | Accurate parasitics estimation for hierarchical customized VLSI design | |
US20190340325A1 (en) | Wire routing algorithm | |
US8402422B2 (en) | Wiring design device, method and recording medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: LSI LOGIC CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:GUO, CHENGYU;REEL/FRAME:017235/0793 Effective date: 20051108 |
|
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 |
|
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 |
|
REMI | Maintenance fee reminder mailed | ||
LAPS | Lapse for failure to pay maintenance fees | ||
AS | Assignment |
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 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 |
|
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: 20160129 |
|
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 |