Systems and methods for identifying wires for adjustment
Systems and methods are provided for identifying a wire of a plurality of wires to be adjusted to mitigate effects of electromigration. A segment electromigration stress value for each segment of a wire is determined for a wire of a circuit in a circuit design. A wire electromigration stress value for the wire is determined as a function of the segment electromigration stress values of segments of the wire. A ranked list of two or more wires of the circuit is displayed according the wire electromigration stress values of the two or more wires.
Latest ANSYS, INC. Patents:
- Methods and systems for creating mechanical computer-aided design model to include deformation
- Distributed-memory parallel processing of finite elements based on contact pair splitting
- Rough surface model for shooting and bouncing rays
- Frozen boundary multi-domain parallel mesh generation
- Machine learning for automatic identification of points of interest for side channel leakage
This application is a continuation of U.S. application Ser. No. 15/856,100, filed Dec. 28, 2017, which is a continuation application of U.S. application Ser. No. 14/793,918, filed Jul. 8, 2015, which claims priority to U.S. Provisional Application No. 62/022,939, filed Jul. 10, 2014. All of the above applications are hereby incorporated herein by reference.
FIELDThis disclosure is related generally to circuit design and more particularly to improvement of circuit reliability.
BACKGROUNDElectronic circuits, such as those housed in integrated circuit packages or disposed on printed circuit boards, can be highly complex, often including thousands or millions of component interconnections. Failure of one of these interconnections could result in a malfunction of a portion or all of a circuit.
SUMMARYSystems and methods are provided for identifying a wire of a plurality of wires to be adjusted to mitigate effects of electromigration. A method includes identifying a plurality of wires of a circuit, each wire comprising one or more wire segments. An electromigration stress is determined for each wire path of each wire, a wire path being made up of one or more wire segments. For each wire, a highest determined electromigration stress for wire paths of that wire is assigned as the wire electromigration stress for that wire. An identification of the wire having the highest wire electromigration stress is stored, where the wire having the highest wire electromigration stress is a candidate for adjustment to mitigate electromigration effects.
As another example, a system for identifying a wire of a plurality of wires to be adjusted to mitigate effects of electromigration includes one or more data processors and one or more computer-readable mediums encoded with data. The data includes a wire data structure, where the wire data structure includes an identification of a plurality of wires in a circuit, where the wire data structure further includes and identification of one or more wire paths associated with each of the identified wires of the circuit, a wire path including one or more wire segments, where the wire data structure includes a wire electromigration stress field for each of the plurality of wires, where the wire data structure includes a wire path electromigration stress field for each wire path, and where the wire data structure includes a wire rank field for each wire. The data further includes instructions for commanding the one or more data processors to execute steps. The steps include identifying the plurality of wires in the circuit and storing identifications of the identified wires in the wire data structure, determining an electromigration stress for each wire path of each wire and storing the determined electromigration stresses in the wire path electromigration stress fields of the wire data structure, for each wire, assigning a highest determined electromigration stress for wire paths of that wire from the wire data structure as the wire electromigration stress for that wire and storing the wire electromigration stresses in the wire electromigration stress fields of the wire data structure, and storing an identification of the wire having the highest wire electromigration stress from the wire data structure in the wire rank field associated with the wire having the highest wire electromigration stress, where the wire having the highest wire electromigration stress is a candidate for adjustment to mitigate electromigration effects.
The electromigration force in a wire segment 100 can have detrimental effects on the performance of that wire segment 100 over time. As metal atoms are moved in the direction of electron flow, voids can form in the wire segment. Such voids can cause an increase in resistance of the wire segment 100 based on a reduced cross-sectional area of the wire segment 100 at the point of the void, as depicted in
Current density through a wire segment can be used as a rough estimate of a wire segment's susceptibility to electromigration damage. For example, circuit operation can be simulated, and an average or worst-case current density can be assessed to determine a likelihood that a wire segment in a design will experience electromigration damage before the end of its useful life. Experimentation has shown that wires experiencing high current density often exhibit electromigration damage sooner than wires that do not undergo such high current densities. In fact, high current densities have shown to be good predictors of electromigration damage in cases of simple wires (e.g., a straight connection between two points). However, such correlation has not held in cases of complex wires, such as the wire of
The system of
In one embodiment, data associated with wires identified for evaluation is incorporated into a wire data structure 510. A wire data structure 510 includes information including an identification of particular wires of the circuit 504, metrics about the performance of those wires (e.g., via simulation), and a ranking of those wires based on susceptibility to electromigration damage. The wire data structure 510 also identifies individual paths and segments of each identified wire, where certain analyses can be performed on individual wire paths and segments within a wire to determine a likelihood that that a wire experiences electromigration damage at some point along its length. A wire path within a wire (e.g., a complex wire as depicted in
At 512, an electromigration stress metric value is determined for each of the wire segments of each of the wires identified as candidates for analysis at 506, and those wire segment electromigration stresses are used to determine wire path electromigration stress metric values. A wire path electromigration stress metric value is equal to a sum of electromigration stress metric values of its component wire segments, in one example. As noted above, current density is often not a strong predictor of electromigration damage susceptibility, especially in wires having complex geometry. Thus, at 512, for each of the wires identified at 506 for further analysis, each segment of those wires is analyzed to determine an electromigration stress metric value. Electromigration stress has been found to be a better and more physics-proper mechanism for predicting electromigration damage. In some examples, electromigration stress is a more difficult metric to calculate for a wire than current density. Thus, it is sometimes prohibitively computationally expensive to determine an electromigration stress for all wire segments of a circuit 504, especially in circuits having thousands or millions of wires. Thus, the initial filtering at 506 narrows the wires for which the more computationally expensive electromigration stress determinations are made at 512.
Such segment electromigration stress metric values for wire segments and wire paths are stored in the wire data structure 510. At 514, each wire identified at 506 is assigned an electromigration stress metric value for that entire wire based on electromigration stress metric values for the individual wire paths of that wire. In one example, each wire is assigned an electromigration stress metric value equal to the highest electromigration stress metric value assigned to one of its paths (e.g., based on each wire being only as robust as its weakest path). The wire electromigration stress metric values determined at 514 are incorporated into the wire data structure 510. At 516, the engine 502 identifies a wire having a highest electromigration stress and stores an indication of such in the wire data structure 510. The engine, in one example, further identifies a wire having a second electromigration stress, a third highest electromigration stress, and so on, to generate a ranked list of wires 518 that is ordered based on susceptibility to electromigration damage.
A user (e.g., an engineer) can then focus his efforts according to the ranked list, focusing on improving characteristics of wires most likely to experience electromigration damage. In one example, reducing an amount of electromigration stress within a wire below a critical threshold point will result in that wire exhibiting zero or near zero electromigration damage. Thus, the user can use the ranked list to prioritize which wires to adjust in the circuit design, with the goal of reducing the electromigration stress of all wires to below or as close to the critical threshold point as possible.
An electromigration stress metric value for a segment of a wire can be calculated in a variety of ways. In one example, the electromigration stress of a segment of a wire is modeled as linear, with the magnitude of the stress difference between the ends of the wire segment being given by the equation:
where Z* is the effective valance, e is the charge of an electron, ρ is the material resistivity, Ω is the atomic volume of an atom of the material in the wire, j is the current density, and L is the length of the wire segment. The product jL is sometimes referred to as the Blech product for wires consisting of a single segment. An electromigration stress metric value for a wire path is then calculated as the sum of electromigration stress metric values of segments within that wire path.
As described above, in one example, an electromigration stress metric value is determined for each wire segment (e.g., the wire segments depicted in the wire segment table) of each wire path of each wire identified for analysis (e.g., the wires identified in the wire table). Those wire segment electromigration stress metric values are stored in the third column of the wire segment table. Each wire path is then assigned a Wire_Path_Electromigration_Stress value equal to the sum of the Wire_Segment_Electromigration_Stress values associated with that wire path (e.g., the Wire Path Electromigration Stress for wire path 1 is equal to the sum of stress metric values for segments 1, 3, 4, 5, 6, 7, 8, and 12; while the Wire_Path_Electromigration_Stress for wire path 2 is equal to the sum of stress metric values for segments 2, 7, and 11).
In the wire table, the Wire_Electromigration_Stress field for a wire is populated with the highest electromigration stress metric value assigned to any of its paths. In the example of
The wires identified in the wire table are then ranked according to their Wire_Electromigration_Stress values, as indicated in the Wire_Electromigration_Rank column. Wire 1, having the highest Wire_Electromigration_Stress value of 5.23 is ranked first, with wire 3 being ranked second based on its 2.02 Wire_Electromigration_Stress value, and wire 2 being ranked third based on its 0.64 Wire_Electromigration_Stress value. This ranked list of wires for adjustment can then be used for downstream adjustment of wires of the circuit. For example, a user (e.g., an engineer) may begin improving the circuit design by adjusting parameters of wire 1, based on that wire being deemed most susceptible to electromigration damage. Wire 3 is then the second best candidate for adjustment, followed by wire 2.
As described above, electromigration stress metric values for wire segments can be determined using a variety of mechanisms. In addition to the examples described above, where an electromigration stress metric value for a wire is determined based on a maximum segment electromigration stress metric value for segments of that wire, an electromigration stress metric value for a wire can be calculated according to a simplified formula. In one example, the electromigration stress calculation for a wire is calculated according to
where V is the maximum voltage drop across all segments in the wire.
In another example, a wire path's electromigration stress metric value may be adjusted based on the stress metric value for that path being below the critical stress threshold. In one example, where the calculated stress of a wire path is below the critical stress threshold, the electromigration stress metric value for that path is stored as 0.5 times the calculated stress metric value for that path, where when the calculated stress for that wire path is above the critical stress threshold, the actual calculated electromigration stress metric value for that path is stored.
This application uses examples to illustrate the invention. The patentable scope of the invention includes other examples.
Claims
1. A computer-implemented method comprising:
- determining a path electromigration stress value for each respective path of a plurality of paths of a wire of a circuit in a circuit design, wherein the wire includes a plurality of segments, wherein each respective path of the wire includes one or more of the segments, wherein two separate paths of the wire include a common one of the plurality of segments;
- determining a wire electromigration stress value for the wire based on path the electromigration stress values of the plurality of paths of the wire; and
- displaying a ranked list of two or more wires of the circuit according to wire electromigration stress values of the two or more wires, the two or more wires including the wire.
2. The method of claim 1, further comprising:
- identifying the plurality of paths of the wire; and
- determining an electromigration stress value for each segment of the wire, wherein the path electromigration stress value is determined as a function of electromigration stress values of one or more segments included in the respective path,
- wherein the wire electromigration stress value of the wire is determined as a function of path electromigration stress values of the one or more paths of the wire.
3. The method of claim 2, wherein the path electromigration stress value of each path is determined as a sum of the electromigration stress values of the segments of the respective path.
4. The method of claim 2, wherein the path electromigration stress value for each path is determined based on a current density and a segment length of each of the one or more segments included in the respective path.
5. The method of claim 2, wherein the wire electromigration stress value for the wire is determined as a highest one of path electromigration stress values of the one or more paths of the wire.
6. The method of claim 1, wherein the electromigration stress value for each segment is based on a Blech product value.
7. The method of claim 1, wherein the wire electromigration stress value for the wire is determined based on maximum voltage drop across the segments in the wire.
8. The method of claim 1, further comprising:
- identifying a plurality of wires of the circuit, the plurality of wires including the two or more wires;
- determining a current density value for each wire of the plurality of wires; and
- selecting, based on the current density values, the two or more wires from among the plurality of wires.
9. A computer-implemented method comprising:
- determining, for each segment of a plurality of segments of a wire, an electromigration stress value for each segment of the wire of a circuit in a circuit design;
- determining a wire electromigration stress value for the wire based on the electromigration stress values of the plurality of segments of the wire;
- storing the wire electromigration stress values in a wire electromigration stress field in a computer-readable medium;
- storing the electromigration stress values for each segment in a segment electromigration stress field in the computer-readable medium; and
- storing a ranking value, for each of the one or more wires based on the respective wire's wire electromigration stress value, in a ranking field in the computer-readable medium.
10. A non-transitory computer-readable storage medium having instructions stored therein, which when executed by one or more processors, cause the processors to perform operations comprising:
- determining a path electromigration stress value for each respective path of a plurality of paths of a wire in a circuit, wherein the wire includes a plurality of segments, wherein each respective path of the wire includes one or more of the segments, wherein two separate paths of the wire include a common one of the plurality of segments;
- determining a wire electromigration stress value for the wire based on path electromigration stress values of the plurality of paths of the wire; and
- modifying dimensions of the wire according to the determination of the wire electromigration stress value.
11. The medium of claim 10, wherein the path electromigration stress value for the respective path is determined based on current densities and segment lengths of the one or more segments of the respective path.
12. The medium of claim 10, the operations further comprising:
- determining an electromigration stress value for each segment of the wire, wherein the path electromigration stress value is determined as a function of electromigration stress values of the one or more segments included in the respective path,
- wherein the wire electromigration stress value is determined as a function of path electromigration stress values of the one or more paths.
13. The medium of claim 12, wherein the path electromigration stress value of each path is determined as a sum of the electromigration stress values of the one or more segments included in the respective path.
14. The medium of claim 12, wherein the wire electromigration stress value is determined as the highest path electromigration stress value from among the path electromigration stress values of the one or more paths.
15. A non-transitory computer-readable storage medium having instructions stored therein, which when executed by one or more processors, cause the processors to perform operations comprising:
- determining, for each segment of a plurality of segments of a wire, an electromigration stress value for each segment of the wire of a circuit based on a current density and a segment length of the segment;
- determining a wire electromigration stress value for the wire based on the electromigration stress values of the plurality of segments of the wire;
- identifying a plurality of wires of the circuit;
- determining a current density value for each wire of the plurality of wires; and
- selecting, based on current density values of the plurality of wires, two of more wires from among the plurality of wires, wherein the two or more wires include the wire; and
- modifying dimensions of the wire according to the determination of the wire electromigration stress value.
16. A system comprising:
- a display interface;
- a memory storing instructions; and
- one or more processors coupled to the memory and the display interface, the one or more processors executing the instructions from the memory, the one or more processors configured to perform a method comprising:
- determining a path electromigration stress value for each respective path of a plurality of paths of a wire of a circuit in a circuit design, wherein the wire includes a plurality of segments, wherein each respective path of the wire includes one or more of the segments, wherein two separate paths of the wire include a common one of the plurality of segments,
- determining a wire electromigration stress value for the wire based on path electromigration stress values of the wire, and
- displaying, via the display interface, a ranked list of two or more wires of the circuit according the wire electromigration stress values of the two or more wires, the two or more wires including the wire.
17. The system of claim 16, wherein the two or more wires are selected from a plurality of wires of the circuit based on current density values of the two or more wires exceeding a threshold current density value.
18. The system of claim 16, wherein the plurality of wire includes more than a one million wires.
19. The system of claim 16, wherein the wire electromigration stress value for the wire depends on maximum voltage drop across the segments in the wire.
20. The system of claim 16, wherein the operations further comprise:
- receiving, in response to the displaying of the ranked list, user instructions for adjusting dimensionality of the wire.
20110173583 | July 14, 2011 | Barwin |
20120248604 | October 4, 2012 | Daubenspeck |
20150046893 | February 12, 2015 | Demircan |
20150205906 | July 23, 2015 | Barwin, III |
20150348898 | December 3, 2015 | Shroff |
Type: Grant
Filed: Dec 11, 2018
Date of Patent: Jul 28, 2020
Assignee: ANSYS, INC. (Canonsburg, PA)
Inventor: Craig Larsen (San Jose, CA)
Primary Examiner: Mohammed Alam
Application Number: 16/216,682
International Classification: G06F 30/398 (20200101); G06F 30/394 (20200101);