Dislocation-Counting Algorithm

Measuring dislocation density of crystalline silicon wafers with a flatbed scanner

We developed a method for quantifying dislocation density in large-area crystalline silicon wafers. A detailed explanation of the method can be found in:

D. Berney Needleman, H.J. Choi, D.M. Powell, T. Buonassisi, “Rapid dislocation-density mapping of as-cut crystalline-silicon wafers,” Physica Status Solidi Rapid Research Letters, DOI:10.1002/pssr.201308150 (2013).

Please cite this paper if you use the code for academic research. The basic procedure is as follows:

    • (Optional) Isotropic saw damage etch to reduce surface texture noise – acidic etches with Nitric:Acetic:HF ratios from 9:0:1 to 9:0:2 were tested successfully.
    • Dislocation reveal etch – 1 minute Sopori etch [1] was found to give 5μm-diameter etch pits, which provided sufficient contrast in scanner images.
    • 9:0:1 Nitric:Acetic:HF dip to remove surface staining – only 2 seconds.
    • Obtain microscope image of a small region – 1cm2 was tested.
    • Scan wafer – resolutions down to 600 DPI were found to have almost identical accuracy for mapping resolution down to 1mm by 1mm, however there is evidence of a resolution floor for any given mapping resolution (e.g., 600 DPI is not high enough resolution for 500μm by 500μm).
    • Crop microscope and scanner images to the same region.
    • Input cropped microscope and scanner images into respective MATLAB codes – use the same mapping resolution, set “calibrationFlag” variable in scanner code to 0.
    • Plot scanner output vs. microscope output (scanner data must be on the y-axis) and obtain a linear fit to this data.
    • Use the fitting parameters as values for the “calibrationSlope” and “calibrationYint” variables in the scanner code, set the “calibrationFlag” variable to 1, and run scanner code again for full scanner image. These calibration values can also be used for any other wafers processed identically.

The necessary MATLAB files are below. Note that they are text files and will need to be saved as .m files.


Version Title Description
1.1 Microscope Counting Code This counts dislocations with optical microscope
1.1 Scanner Counting Code This counts dislocations with scanner
1.0 Fourier Filter Function This is a Fourier filter to remove image noise


Copyright © 2013  Massachusetts Institute of Technology

This program is free software: you can redistribute it and/or modify it under the terms of the GNU GPL License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.


dbn AT mit DOT edu


1. B.L. Sopori, Journal of The Electrochemical Society 131, 667-672 (1984).

9767 Total Views 4 Views Today