DfR Solutions Reliability Designed and Delivered

Performing a solder fatigue analysis with Sherlock and Abaqus is fun!

Gil Sharon and Nathan Blattau

Download PDF

This is a step by step guide to performing a solder fatigue analysis of BGA balls loaded in shear due to temperature cycling.

1.  Make the BGA model in Sherlock

Import the ODB++ files for the BGA and the board into Sherlock.

fig1-1

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.

fig2-1

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.

fig3-1-610032-edited

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.

fig4-1

 

3.  Create the solder material

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!

4.  Import the Solder material model

fig5-1

Select this file and the material will be created. (Don’t forget to set the file filter to “Abaqus Input File (*.inp,*.pes)”)

fig6-1

Model>Copy objects

fig7

From model: SAC305 Select the material To Model: Your model name

fig8

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.

Model>Edit Attributes>MODEL_NAME

fig9

Click the absolute zero temperature option and set to “-273”

fig10

5.  Create two temperature cycling steps

fig11

Name it “CYCLE_1” and set to “Visco”

fig12

The time period should be set to the cycle time is seconds. This example is for a one-hour cycle (3600 seconds).

fig13

Repeat to add another cycle called “CYCLE_2”

fig14

6.  Create the temperature Cycle

fig15

Type: Tabular.

In this example, we are setting the amplitude name to “TCB”.

fig16

Define the temperature cycle in seconds (Time/Frequency) and degrees Celsius(Amplitude)

fig18

7.Create the boundary conditions on the PCB

fig19

Create the boundary conditions in the “Initial Step”

fig20

8.  Edit the BGA ball of interest

In this example, the ball of interest is called BGA_AP_035. The blue elements are SAC305 and the Red elements are Copper.

fig21

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.

fig22

fig23

In this example, they are called “SED_1” and “SED_2”

9.  Redo the constraints if necessary

After re-meshing the BGA ball you may have to redefine the constraints.

Select Module>Interaction

fig24

Click the “Find Contact Pairs” Icon

fig25

Select the “Show previously created interaction and ties option”

fig26

Delete all the interactions and click “OK”

Reopen the “Find Contact Pairs window”

Click “Find Contact Pairs”

fig27

Right click “Type>Edit Cells…”

fig28

Click “Tie constraint”, then “OK”

fig29

Click “OK”

fig30

10.  Create a predefined field in the Initial Step

fig31

Category: Other

Type: Temperature

fig32

Toggle the selection to “Cells”

fig33

Select everything

Set the initial temperature to 25

fig34

In CYCLE_1, right click the Predefined field and “Switch Context”

fig35

Click the “Predefined Field Manager” icon in the “Load” menu

fig36

Click the “Copy” button. Rename to “Predefined Field-2” and set Step to “CYCLE_1”

fig37

Highlight the “Predefined Field-2” and “CYCLE_1” cell. Click “Edit”

fig38

Change the Magnitude to “1” and the Amplitude to the one created before (From 0 “TCB” in this example).

fig39

Click the “Copy” button. Rename to “Predefined Field-3” and set Step to “CYCLE_2”

fig40

Highlight the “Predefined Field-3” and “CYCLE_2” cell. Click “Edit”

fig41

Verify the Magnitude is set to “1” and the Amplitude is the one created before (From 0 “TCB” in this example).

fig42

Click “Dismiss”

fig43

11.  Field output request

Right click the “Field Output Requests” and select “Create”

Click Continue

fig44

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)

fig45

Select Energy, NT, and EVOL

fig46

Repeat for the second ELEMENT SET (BGA_AP_035.SED_2)

12.  Create a job and run it

EDIT FIG

13.  Create a field output from fields

Click on the field output icon

fig49

fig50

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

fig51

Next, scroll the Frame to “0-Increment 0: Step Time= 0.000”

fig52

Click on the minus “–” Operator or the minus key in your keyboard

fig53

Click on “s2f0_ECDDEN” value

fig54

The expression should now look like this:

fig55

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.

fig56

14.  Export the Result

Click Result>Step/Frame…

fig57

Select the session step and session frame

fig58

Click Report>Field Output, then select “Variable”

fig59

Set up the report and Click “OK”

fig60

The report should have a header and underneath the header it will have three columns

fig61

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.

15.  Open the report in Excel

fig62

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

“Cell D2=C2/sum(B:B)”

“Cell D3=C3/sum(B:B)”

“Cell D4=C4/sum(B:B)”

The resulting value is the Strain range for each element

fig63

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

fig64

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.

DISCLAIMER

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