This is a step by step guide to performing a solder fatigue analysis of BGA balls loaded in shear due to temperature cycling.
Import the ODB++ files for the BGA and the board into Sherlock.
The black dots are mount pads. The yellow area is the BGA epoxy overmold material. The blue line is the package outline. There is a die with several passive capacitors encased in the overmold for demonstration purposes.
The mount point height is the solder ball thickness. The number of nodes can be set to 8 for most of the solder balls. It would probably be more beneficial to set the number of nodes to 20-30 for any ball that is intended to be modeled in detail in Abaqus. In this example, one of the corner balls is selected.
The BGA is assembled onto the board. The board outline is adjusted because we don’t need to model the entire board. An area of the board is sufficient for solder fatigue modeling purposes. It is possible to export the whole board in some cases, for example, over-constrained boards or components that are close to mount points.
2. Export the whole Sherlock model to ABAQUS
At this point, any refining or changes can be done to the model through the normal Abaqus interface. The materials from Sherlock are already assigned to each part. It is possible to modify any of the materials in the “Property” menu.
File “SAC305.inp” (provided separately) is an Abaqus input file that creates a model with the solder materials SAC305 and SnPB. SAC305.inp can be viewed in Notepad and used as a template for future Abaqus input files. Disclaimer: No effort has been made to ensure the accuracy and reliability of the information within. The Authors and DfR Solutions will not be liable for loss of use, revenue, profit, or any special, incidental, or consequential damages arising out of, connected with, or resulting from, the information. Please use this file as a template only!
Select this file and the material will be created. (Don’t forget to set the file filter to “Abaqus Input File (*.inp,*.pes)”)
From model: SAC305 Select the material To Model: Your model name
After importing the material, you can apply it as usual to a section and create section assignments. You need to set the reference temperature to -273°C.
Click the absolute zero temperature option and set to “-273”
Name it “CYCLE_1” and set to “Visco”
The time period should be set to the cycle time is seconds. This example is for a one-hour cycle (3600 seconds).
Repeat to add another cycle called “CYCLE_2”
In this example, we are setting the amplitude name to “TCB”.
Define the temperature cycle in seconds (Time/Frequency) and degrees Celsius(Amplitude)
7.Create the boundary conditions on the PCB
Create the boundary conditions in the “Initial Step”
In this example, the ball of interest is called BGA_AP_035. The blue elements are SAC305 and the Red elements are Copper.
Make two sets for these elements. These are the two critical volumes in this ball because at these two locations, there is the highest probability of crack formation.
In this example, they are called “SED_1” and “SED_2”
After re-meshing the BGA ball you may have to redefine the constraints.
Click the “Find Contact Pairs” Icon
Select the “Show previously created interaction and ties option”
Delete all the interactions and click “OK”
Reopen the “Find Contact Pairs window”
Click “Find Contact Pairs”
Right click “Type>Edit Cells…”
Click “Tie constraint”, then “OK”
Toggle the selection to “Cells”
Set the initial temperature to 25
In CYCLE_1, right click the Predefined field and “Switch Context”
Click the “Predefined Field Manager” icon in the “Load” menu
Click the “Copy” button. Rename to “Predefined Field-2” and set Step to “CYCLE_1”
Highlight the “Predefined Field-2” and “CYCLE_1” cell. Click “Edit”
Change the Magnitude to “1” and the Amplitude to the one created before (From 0 “TCB” in this example).
Click the “Copy” button. Rename to “Predefined Field-3” and set Step to “CYCLE_2”
Highlight the “Predefined Field-3” and “CYCLE_2” cell. Click “Edit”
Verify the Magnitude is set to “1” and the Amplitude is the one created before (From 0 “TCB” in this example).
Right click the “Field Output Requests” and select “Create”
Select “Energy”, Thermal>NT and Volumes/Thickness/Coordinates>EVOL Domain: “Set” and select one of the Element sets created for the detailed solder ball (In this example it is called “SED_1” in part instance BGA_AP_035)
Select Energy, NT, and EVOL
Repeat for the second ELEMENT SET (BGA_AP_035.SED_2)
Click on the field output icon
Name the Expression (SED _CALC for this example)
Select the second step (“CYCLE_2” in this example)
Select the last frame (Frame 11 in this example) the “Step Time” should be the Cycle time in seconds. (In this example it is equal to 3600 seconds)
Click on “s2f11_ECDDEN”
The value should appear in the “Expression” box
Next, scroll the Frame to “0-Increment 0: Step Time= 0.000”
Click on the minus “–” Operator or the minus key in your keyboard
Click on “s2f0_ECDDEN” value
The expression should now look like this:
Add a multiply “*” operator and parentheses to the expression. Click on the “s2f0_EVOL” value
The end result should look like this: “(s2f11_ECDDEN - s2f0_ECDDEN) * s2f0_EVOL”. This expression is serving to calculate the following value for each and every element individually
|(𝑆𝐸𝐷 𝑎𝑡 𝑒𝑛𝑑 𝑜𝑓 𝐶𝑦𝑐𝑙𝑒#2) − (𝑆𝐸𝐷 𝑎𝑡 𝑒𝑛𝑑 𝑜𝑓 𝐶𝑦𝑐𝑙𝑒#1)| ∗ 𝐸𝑙𝑒𝑚𝑒𝑛𝑡 𝑉𝑜𝑙𝑢𝑚𝑒
“S2f11” is pointing to the 11th frame of step 2. In this example that is the last step of the cycle. This expression can change depending on the cycle inputs.
Repeat this step to create another variable for the element volume alone.
Select the session step and session frame
Click Report>Field Output, then select “Variable”
Set up the report and Click “OK”
The report should have a header and underneath the header it will have three columns
This report will be for all active selected elements. It is possible to use the “Display Group” dialogue box to select only a subset of the elements in your model and create multiple reports.
Copy the values from the report to a spreadsheet
Create another column header called “ΔW_Element”
The formula in the cells should be the SED_CALC/(SUM of all EVOL)
In the example above this would be
The resulting value is the Strain range for each element
The sum of all of the “ΔW_Element” for SAC305 can be inserted to the equation on page 28 of: http://ansys.net/ansys/papers/asyed_ectc2004_corrected.pdf
In the example above this would be “Nf = (0.0019*sum(D:D))^)-1)”.
This equation calculates the number of cycles to failure for BGA solder joints loaded in shear in temperature cycling.
The calculation in the spread sheet gives a number for cycles to failure for the whole element set in the report.
DfR represents that a reasonable effort has been made to ensure the accuracy and reliability of the information within. However, DfR Solutions makes no warranty, both express and implied, concerning the content of this report, including, but not limited to the existence of any latent or patent defects, merchantability, and/or fitness for a particular use. The contents of this report and the observations and conclusions made by DfR are not intended to be comprehensive or exhaustive. DfR has used industry standard practices in preparing this report and has made assumptions it views as reasonable in reaching the conclusions contained herein. Reasonable experts’ observations and conclusions may differ after conducting a similar review and other factors not considered by DfR or present at the time of DfR’s review could impact such experts’ findings. While DfR recognizes that this report will help guide the evaluation of the device or product, DfR will not be liable for loss of use, revenue, profit, or any special, incidental, or consequential damages arising out of, connected with, or resulting from, the information presented within this report
Solder fatigue is the degradation of solder under cyclic loading. During temperature cycling, stresses are generated in the solder due to coefficients of thermal expansion (CTE) mismatches between the printed circuit board (PCB) and the components. Extensive work has been completed to characterize the behavior of various solder alloys and develop predictive solder fatigue damage models using Physics-of-Failure (PoF) approaches.
The increasing complexity of electronic components and assemblies has introduced new challenges to reliability engineers. Of these new challenges, solder fatigue is a primary concern for assemblies undergoing thermal excursions caused by fluctuations in environmental temperature, power dissipation or a combination of the two. Factors which arise due to package-specific construction, mounting conditions, electronic housing and configuration within the printed circuit boards can all influence the thermo-mechanical fatigue of solder interconnects.