PDF

Vacancy Electromigration in IC Interconnect Lines
Introduction
As integrated circuits (ICs) continue to become more powerful and designed to fit into smaller footprints, it is increasingly important to identify and prevent any cause of circuit failure. One such failure mechanism is due to electromigration effects within the circuit’s interconnects.
Electromigration refers to the mass transport due to momentum transfer between electrons and metal atoms. Diffusion in solids occurs due to atoms moving into neighboring vacancies. The migration and accumulation of vacancies within the metal can lead to failure, as voids increase the resistance of the line which in turn cause the severing of the circuit.
Electromigration is inherently multiphysics in nature, as it includes the transport of vacancies due to concentration, stress, potential, and temperature gradients. This example shows how to include all these effects. The results are compared with the values in Ref. 1.
Model Definition
The model geometry consists of a small metal stripe 50 μm wide and 15 μm high. The left side is connected to ground, a normal current density of 0.01 A/μm2 is applied on the right side, while the top and bottom boundaries are insulated. The displacement are constrained on all boundaries. No-flux boundary condition is used for the vacancy transport on all boundaries. The temperature is held fixed at 473 K on both left and right boundaries, to validate the results given in Ref. 1.
The vacancy transport is given by the balance equation:
The vacancy flux jv considers the effect of the vacancy concentration gradient, cv, the drift velocity, vd, the hydrostatic stress gradient, ∇σ, and the temperature gradient, T
here, Dv is the diffusivity, Ω is the atomic volume, Q is the heat of transport, and k is Boltzmann constant. The hydrostatic stress is positive in tension, and it is computed from the trace of the stress tensor .
The drift velocity vd due to the electric field E reads
where e is the elementary charge and z is the effective charge number of vacancies.
The electric field in the interconnect is proportional to the electric current density
where ρe is the resistivity of the metal, which in this example depends on the temperature.
The Rosenberg-Ohring recombination term G describes the vacancy generation and annihilation, and it depends on the relaxation time τ of the deviation in vacancy concentration cv with respect to the equilibrium concentration cv,eq
Assuming local equilibrium between the vacancy concentration and pressure, the equilibrium concentration is written as
where the parameter f is the average vacancy relaxation ratio, and cv0 is the reference vacancy concentration in the absence of stresses.
A volumetric strain is produced in the lattice by the influx of vacancies:
The model parameters are listed in Table 1.
2.7e-10 m2/s
1.8e-3 s
Results and Discussion
Figure 1 and Figure 2 show the build-up of hydrostatic stress and vacancy concentration on the anode and cathode versus time.
Figure 1: Hydrostatic stress at the center line on the anode and cathode.
Figure 2: Normalized concentration at the center line on the anode and cathode.
Figure 3 shows the hydrostatic stress on the centerline after 70 s.
Figure 3: Hydrostatic stress at centerline at 70 s.
The von Mises stress at steady state is shown in Figure 4.
Figure 4: von Mises stress at steady state.
Notes About the COMSOL Implementation
The stress, temperature, and potential contribution to the vacancy flux are included through the External Flux feature in the Transport in Solids interface. The vacancy-dependent volumetric deformation is included in the Solid Mechanics interface through the External Strain feature.
References
1. H. Ye, C. Basaran, and D.C. Hopkins, “Numerical simulation of stress evolution during electromigration in IC interconnect lines,” IEEE Transactions on Components and Packaging Technologies, vol. 26, no. 3, pp. 673–681, 2003.
2. R.L. Orio, H. Ceric, and S. Selberherr, “Physically based models of electromigration: from Black’s equation to modern TCAD models,” Microelectron. Reliab., vol. 50, no. 6, pp. 775–789, 2010.
Application Library path: Structural_Mechanics_Module/Diffusion_in_Solids/vacancy_electromigration
Modeling Instructions
From the File menu, choose New.
New
In the New window, click  Model Wizard.
Model Wizard
1
In the Model Wizard window, click  2D.
2
In the Select Physics tree, select Structural Mechanics>Solid Mechanics (solid).
3
Click Add.
4
In the Select Physics tree, select Chemical Species Transport>Transport in Solids (ts).
5
Click Add.
6
In the Select Physics tree, select AC/DC>Electric Fields and Currents>Electric Currents (ec).
7
Click Add.
8
In the Select Physics tree, select Heat Transfer>Heat Transfer in Solids (ht).
9
Click Add.
10
In the Select Physics tree, select Mathematics>ODE and DAE Interfaces>Domain ODEs and DAEs (dode).
11
Click Add.
12
Click  Study.
13
In the Select Study tree, select General Studies>Time Dependent.
14
Global Definitions
Geometric Parameters
1
In the Model Builder window, under Global Definitions click Parameters 1.
2
In the Settings window for Parameters, locate the Parameters section.
3
4
In the Label text field, type Geometric Parameters.
Transport Parameters
1
In the Home toolbar, click  Parameters and choose Add>Parameters.
2
In the Settings window for Parameters, locate the Parameters section.
3
4
In the Label text field, type Transport Parameters.
Electric Currents Parameters
1
In the Home toolbar, click  Parameters and choose Add>Parameters.
2
In the Settings window for Parameters, locate the Parameters section.
3
50 Ω
4
In the Label text field, type Electric Currents Parameters.
Heat Parameters
1
In the Home toolbar, click  Parameters and choose Add>Parameters.
2
In the Settings window for Parameters, locate the Parameters section.
3
4
In the Label text field, type Heat Parameters.
Load the reference data.
Hydrostatic Stress at t=70[s]
1
In the Home toolbar, click  Functions and choose Global>Interpolation.
2
In the Settings window for Interpolation, locate the Definition section.
3
From the Data source list, choose File.
4
Click  Browse.
5
6
Locate the Interpolation and Extrapolation section. From the Interpolation list, choose Piecewise cubic.
7
Locate the Units section. In the Function table, enter the following settings:
8
In the Argument table, enter the following settings:
9
In the Label text field, type Hydrostatic Stress at t=70[s].
Steady State Hydrostatic Stress
1
In the Home toolbar, click  Functions and choose Global>Interpolation.
2
In the Settings window for Interpolation, locate the Definition section.
3
From the Data source list, choose File.
4
Click  Browse.
5
Browse to the model’s Application Libraries folder and double-click the file vacancy_electromigration_hydrostatic_stress_steady.txt.
6
Locate the Interpolation and Extrapolation section. From the Interpolation list, choose Piecewise cubic.
7
Locate the Units section. In the Function table, enter the following settings:
8
In the Argument table, enter the following settings:
9
In the Label text field, type Steady State Hydrostatic Stress.
Stress vs. Time, Anode
1
In the Home toolbar, click  Functions and choose Global>Interpolation.
2
In the Settings window for Interpolation, locate the Definition section.
3
From the Data source list, choose File.
4
Click  Browse.
5
6
Locate the Interpolation and Extrapolation section. From the Interpolation list, choose Piecewise cubic.
7
Locate the Units section. In the Function table, enter the following settings:
8
In the Argument table, enter the following settings:
9
In the Label text field, type Stress vs. Time, Anode.
Stress vs. Time, Cathode
1
In the Home toolbar, click  Functions and choose Global>Interpolation.
2
In the Settings window for Interpolation, locate the Definition section.
3
From the Data source list, choose File.
4
Click  Browse.
5
6
Locate the Interpolation and Extrapolation section. From the Interpolation list, choose Piecewise cubic.
7
Locate the Units section. In the Function table, enter the following settings:
8
In the Argument table, enter the following settings:
9
In the Label text field, type Stress vs. Time, Cathode.
Concentration vs. Time, Cathode
1
In the Home toolbar, click  Functions and choose Global>Interpolation.
2
In the Settings window for Interpolation, locate the Definition section.
3
From the Data source list, choose File.
4
Click  Browse.
5
6
Locate the Units section. In the Function table, enter the following settings:
7
In the Argument table, enter the following settings:
8
In the Label text field, type Concentration vs. Time, Cathode.
Concentration vs. Time, Anode
1
In the Home toolbar, click  Functions and choose Global>Interpolation.
2
In the Settings window for Interpolation, locate the Definition section.
3
From the Data source list, choose File.
4
Click  Browse.
5
6
Locate the Units section. In the Function table, enter the following settings:
7
In the Argument table, enter the following settings:
8
In the Label text field, type Concentration vs. Time, Anode.
Concentration vs. Time, Anode (int6), Concentration vs. Time, Cathode (int5), Hydrostatic Stress at t=70[s] (int1), Steady State Hydrostatic Stress (int2), Stress vs. Time, Anode (int3), Stress vs. Time, Cathode (int4)
1
In the Model Builder window, under Global Definitions, Ctrl-click to select Hydrostatic Stress at t=70[s] (int1), Steady State Hydrostatic Stress (int2), Stress vs. Time, Anode (int3), Stress vs. Time, Cathode (int4), Concentration vs. Time, Cathode (int5), and Concentration vs. Time, Anode (int6).
2
Reference Values
In the Settings window for Group, type Reference Values in the Label text field.
Geometry 1
1
In the Model Builder window, under Component 1 (comp1) click Geometry 1.
2
In the Settings window for Geometry, locate the Units section.
3
From the Length unit list, choose µm.
Rectangle 1 (r1)
1
In the Geometry toolbar, click  Rectangle.
2
In the Settings window for Rectangle, locate the Size and Shape section.
3
In the Width text field, type Width.
4
In the Height text field, type Height.
Add Material
1
In the Home toolbar, click  Add Material to open the Add Material window.
2
Go to the Add Material window.
3
In the tree, select Built-in>Aluminum.
4
Click Add to Component in the window toolbar.
5
In the Home toolbar, click  Add Material to close the Add Material window.
Set the initial and boundary conditions for the temperature field in the Heat Transfer in Solids interface.
Heat Transfer in Solids (ht)
1
In the Model Builder window, under Component 1 (comp1) click Heat Transfer in Solids (ht).
2
In the Settings window for Heat Transfer in Solids, locate the Physical Model section.
3
In the dz text field, type Thick.
4
In the Tref text field, type Tref.
Initial Values 1
1
In the Model Builder window, under Component 1 (comp1)>Heat Transfer in Solids (ht) click Initial Values 1.
2
In the Settings window for Initial Values, locate the Initial Values section.
3
In the T text field, type T0.
Temperature 1
1
In the Physics toolbar, click  Boundaries and choose Temperature.
2
3
In the Settings window for Temperature, locate the Temperature section.
4
In the T0 text field, type T0.
Import additional variables to be used in the other interfaces.
Definitions
Variables 1
1
In the Model Builder window, under Component 1 (comp1) right-click Definitions and choose Variables.
2
In the Settings window for Variables, locate the Variables section.
3
Click  Load from File.
4
Set the resistivity of the interconnect and the boundary conditions for the electric field in the Electric Currents interface.
Electric Currents (ec)
1
In the Model Builder window, under Component 1 (comp1) click Electric Currents (ec).
2
In the Settings window for Electric Currents, locate the Thickness section.
3
In the d text field, type Thick.
Current Conservation 1
1
In the Model Builder window, under Component 1 (comp1)>Electric Currents (ec) click Current Conservation 1.
2
In the Settings window for Current Conservation, locate the Material Type section.
3
From the Material type list, choose Solid.
4
Locate the Constitutive Relation Jc-E section. From the Conduction model list, choose Linearized resistivity.
5
From the ρ0 list, choose User defined. In the associated text field, type rho_res.
6
From the Tref list, choose User defined. In the associated text field, type Tref.
7
From the α list, choose User defined. In the associated text field, type alpha_res.
Ground (Anode)
1
In the Physics toolbar, click  Boundaries and choose Ground.
2
3
In the Settings window for Ground, type Ground (Anode) in the Label text field.
Normal Current Density (Cathode)
1
In the Physics toolbar, click  Boundaries and choose Normal Current Density.
2
3
In the Settings window for Normal Current Density, locate the Normal Current Density section.
4
In the Jn text field, type Jden.
5
In the Label text field, type Normal Current Density (Cathode).
Now you setup the transport problem adding the contribution due to Fickian’s diffusion, electromigration, hydrostatic stress, and temperature.
Transport in Solids (ts)
1
In the Model Builder window, under Component 1 (comp1) click Transport in Solids (ts).
2
In the Settings window for Transport in Solids, locate the Out-of-Plane Thickness section.
3
In the dz text field, type Thick.
4
Locate the Transported Quantity section. From the list, choose Number density.
5
Click to expand the Discretization section. From the Transported quantity list, choose Linear.
Solid 1
1
In the Model Builder window, under Component 1 (comp1)>Transport in Solids (ts) click Solid 1.
2
In the Settings window for Solid, locate the Diffusion section.
3
In the Dc text field, type Dv.
Initial Values 1
1
In the Model Builder window, click Initial Values 1.
2
In the Settings window for Initial Values, locate the Initial Values section.
3
In the c text field, type Cv0.
Source 1
1
In the Physics toolbar, click  Domains and choose Source.
2
3
In the Settings window for Source, locate the Sources section.
4
In the Sc text field, type G.
Solid 1
In the Model Builder window, click Solid 1.
Flux Due to Electric Field
1
In the Physics toolbar, click  Attributes and choose External Flux.
2
In the Settings window for External Flux, locate the External Flux section.
3
Select the Species c check box.
4
In the γext,c table, enter the following settings:
5
In the Label text field, type Flux Due to Electric Field.
Solid 1
In the Model Builder window, click Solid 1.
Flux Due to Stress Gradient
1
In the Physics toolbar, click  Attributes and choose External Flux.
2
In the Settings window for External Flux, locate the External Flux section.
3
Select the Species c check box.
4
In the γext,c table, enter the following settings:
5
In the Label text field, type Flux Due to Stress Gradient.
Solid 1
In the Model Builder window, click Solid 1.
Flux Due to Temperature Gradient
1
In the Physics toolbar, click  Attributes and choose External Flux.
2
In the Settings window for External Flux, locate the External Flux section.
3
Select the Species c check box.
4
In the γext,c table, enter the following settings:
5
In the Label text field, type Flux Due to Temperature Gradient.
The volumetric strain is computed from its strain rate equation using the Domain ODEs and DAEs interface.
Domain ODEs and DAEs (dode)
1
In the Model Builder window, under Component 1 (comp1) click Domain ODEs and DAEs (dode).
2
In the Settings window for Domain ODEs and DAEs, click to expand the Discretization section.
3
From the Shape function type list, choose Lagrange.
4
Click to expand the Dependent Variables section. In the Field name (1) text field, type ev.
5
In the Dependent variables (1) table, enter the following settings:
6
Locate the Units section. In the Source term quantity table, enter the following settings:
Distributed ODE 1
1
In the Model Builder window, under Component 1 (comp1)>Domain ODEs and DAEs (dode) click Distributed ODE 1.
2
In the Settings window for Distributed ODE, locate the Source Term section.
3
In the f text field, type strate.
Finally, setup the Solid Mechanics interface and add the volumetric strain from the Domain ODEs and DAEs interface.
Solid Mechanics (solid)
1
In the Model Builder window, under Component 1 (comp1) click Solid Mechanics (solid).
2
In the Settings window for Solid Mechanics, locate the Thickness section.
3
In the d text field, type Thick.
4
Locate the Structural Transient Behavior section. From the list, choose Quasistatic.
5
Click to expand the Discretization section.
Fixed Constraint 1
1
In the Physics toolbar, click  Boundaries and choose Fixed Constraint.
2
Click in the Graphics window and then press Ctrl+A to select all boundaries.
Linear Elastic Material 1
In the Model Builder window, click Linear Elastic Material 1.
External Strain 1
1
In the Physics toolbar, click  Attributes and choose External Strain.
2
In the Settings window for External Strain, locate the External Strain section.
3
From the Strain input list, choose Strain tensor.
4
In the εext table, enter the following settings:
Mesh 1
Mapped 1
In the Mesh toolbar, click  Mapped.
Distribution 1
1
Right-click Mapped 1 and choose Distribution.
2
3
In the Settings window for Distribution, locate the Distribution section.
4
In the Number of elements text field, type 15.
Distribution 2
1
In the Model Builder window, right-click Mapped 1 and choose Distribution.
2
3
In the Settings window for Distribution, locate the Distribution section.
4
From the Distribution type list, choose Predefined.
5
In the Number of elements text field, type 50.
6
In the Element ratio text field, type 4.
7
Select the Symmetric distribution check box.
8
Click  Build All.
Study 1
Step 1: Time Dependent
1
In the Model Builder window, under Study 1 click Step 1: Time Dependent.
2
In the Settings window for Time Dependent, locate the Study Settings section.
3
In the Output times text field, type 0 40 50 60 70 80 range(500,500,3500) 24000 25200 26000 range(40000,10000,190000) range(200000,100000,1400000).
4
In the Home toolbar, click  Compute.
Results
Surface 1
1
In the Model Builder window, expand the Transported Quantity (ts) node, then click Surface 1.
2
In the Settings window for Surface, locate the Expression section.
3
In the Expression text field, type c/Cv0.
4
In the Transported Quantity (ts) toolbar, click  Plot.
Cut Line 2D 1
1
In the Results toolbar, click  Cut Line 2D.
2
In the Settings window for Cut Line 2D, locate the Line Data section.
3
In row Point 1, set y to 7.5.
4
In row Point 2, set x to 100.
5
In row Point 2, set y to 7.5.
Hydrostatic Stress (Centerline) at 70 s
1
In the Results toolbar, click  1D Plot Group.
2
In the Settings window for 1D Plot Group, locate the Data section.
3
From the Dataset list, choose Cut Line 2D 1.
4
From the Time selection list, choose From list.
5
In the Times (s) list, select 70.
6
In the 1D Plot Group 7 toolbar, click  Plot.
7
In the Label text field, type Hydrostatic Stress (Centerline) at 70 s.
8
Click to expand the Title section. From the Title type list, choose Label.
9
Locate the Plot Settings section.
10
Select the y-axis label check box. In the associated text field, type Hydrostatic stress (N/cm<sup>2</sup>).
Model Results
1
Right-click Hydrostatic Stress (Centerline) at 70 s and choose Line Graph.
2
In the Settings window for Line Graph, locate the y-Axis Data section.
3
In the Expression text field, type -solid.pm.
4
In the Unit field, type N/cm^2.
5
Click to expand the Legends section. Select the Show legends check box.
6
From the Legends list, choose Manual.
7
8
In the Label text field, type Model Results.
Results for Validation
1
In the Model Builder window, right-click Hydrostatic Stress (Centerline) at 70 s and choose Line Graph.
2
In the Settings window for Line Graph, locate the y-Axis Data section.
3
In the Expression text field, type int1(x).
4
In the Unit field, type N/cm^2.
5
Click to expand the Coloring and Style section. Find the Line style subsection. From the Line list, choose Dashed.
6
Find the Line markers subsection. From the Marker list, choose Circle.
7
From the Positioning list, choose Interpolated.
8
Locate the Legends section. Select the Show legends check box.
9
From the Legends list, choose Manual.
10
11
In the Label text field, type Results for Validation.
12
In the Hydrostatic Stress (Centerline) at 70 s toolbar, click  Plot.
Hydrostatic Stress (Centerline) at 70 s
Right-click Hydrostatic Stress (Centerline) at 70 s and choose Duplicate.
Hydrostatic Stress at Steady State (Centerline)
1
In the Model Builder window, click Hydrostatic Stress (Centerline) at 70 s 1.
2
In the Settings window for 1D Plot Group, locate the Data section.
3
From the Time selection list, choose Last.
4
In the Label text field, type Hydrostatic Stress at Steady State (Centerline).
Results for Validation
1
In the Model Builder window, expand the Hydrostatic Stress at Steady State (Centerline) node, then click Results for Validation.
2
In the Settings window for Line Graph, locate the y-Axis Data section.
3
In the Expression text field, type int2(x).
4
In the Hydrostatic Stress at Steady State (Centerline) toolbar, click  Plot.
Cut Point 2D, Anode
1
In the Results toolbar, click  Cut Point 2D.
2
In the Settings window for Cut Point 2D, locate the Point Data section.
3
In the x text field, type 0.
4
In the y text field, type 7.5.
5
In the Label text field, type Cut Point 2D, Anode.
6
Right-click Cut Point 2D, Anode and choose Duplicate.
Cut Point 2D, Cathode
1
In the Model Builder window, click Cut Point 2D, Anode 1.
2
In the Settings window for Cut Point 2D, locate the Point Data section.
3
In the x text field, type 50.
4
In the Label text field, type Cut Point 2D, Cathode.
Hydrostatic Stress vs. Time
1
In the Results toolbar, click  1D Plot Group.
2
In the Settings window for 1D Plot Group, type Hydrostatic Stress vs. Time in the Label text field.
3
Locate the Title section. From the Title type list, choose Label.
4
Locate the Plot Settings section.
5
Select the y-axis label check box. In the associated text field, type Hydrostatic stress (N/cm<sup>2</sup>).
6
Locate the Legend section. From the Position list, choose Middle right.
Model Results Anode
1
Right-click Hydrostatic Stress vs. Time and choose Point Graph.
2
In the Settings window for Point Graph, locate the Data section.
3
From the Dataset list, choose Cut Point 2D, Anode.
4
Locate the y-Axis Data section. In the Expression text field, type -solid.pm.
5
In the Unit field, type N/cm^2.
6
Locate the x-Axis Data section. From the Unit list, choose d.
7
Click to expand the Legends section. From the Legends list, choose Manual.
8
9
Select the Show legends check box.
10
In the Label text field, type Model Results Anode.
11
Right-click Model Results Anode and choose Duplicate.
Model Results Cathode
1
In the Model Builder window, click Model Results Anode 1.
2
In the Settings window for Point Graph, locate the Data section.
3
From the Dataset list, choose Cut Point 2D, Cathode.
4
Locate the Legends section. In the table, enter the following settings:
5
In the Label text field, type Model Results Cathode.
Reference
1
In the Model Builder window, right-click Hydrostatic Stress vs. Time and choose Global.
2
In the Settings window for Global, locate the x-Axis Data section.
3
From the Unit list, choose d.
4
Locate the y-Axis Data section. In the table, enter the following settings:
5
Click to expand the Coloring and Style section. Find the Line style subsection. From the Line list, choose Dashed.
6
Find the Line markers subsection. From the Marker list, choose Circle.
7
From the Positioning list, choose Interpolated.
8
In the Label text field, type Reference.
9
In the Hydrostatic Stress vs. Time toolbar, click  Plot.
Hydrostatic Stress vs. Time
Right-click Hydrostatic Stress vs. Time and choose Duplicate.
Normalized Concentrations vs. Time
1
In the Model Builder window, under Results click Hydrostatic Stress vs. Time 1.
2
In the Settings window for 1D Plot Group, type Normalized Concentrations vs. Time in the Label text field.
3
Locate the Plot Settings section. In the y-axis label text field, type Normalized concentration (1).
Model Results Anode
1
In the Model Builder window, expand the Normalized Concentrations vs. Time node, then click Model Results Anode.
2
In the Settings window for Point Graph, locate the y-Axis Data section.
3
In the Expression text field, type ts.c/Cv0.
Model Results Cathode
1
In the Model Builder window, click Model Results Cathode.
2
In the Settings window for Point Graph, locate the y-Axis Data section.
3
In the Expression text field, type ts.c/Cv0.
Reference
1
In the Model Builder window, click Reference.
2
In the Settings window for Global, locate the y-Axis Data section.
3
4
In the Normalized Concentrations vs. Time toolbar, click  Plot.