Defect Detection in Semiconductor Wafer Production

In semiconductor manufacturing, wafers are produced in batches, and each wafer contains hundreds or even thousands of individual chips. During the production process, defects can occur, such as dust particles landing on the wafer, contamination, or misalignment during lithography. These defects can affect the performance or yield of the chips.

The inspection of wafers for defects, such as particles, is typically performed using specialized machines known as wafer inspection systems. These systems use advanced technologies to detect and classify defects on the wafer surface.

How the Inspection Occurs:

Wafer Scanning:

The wafer inspection system scans the surface of each wafer using optical or electron-beam imaging technology. It captures high-resolution images or uses other detection methods to identify particles or defects on the wafer’s surface.

Defect Detection:

The machine compares the detected particles or defects against a reference (defect-free) image or a predefined defect size threshold to determine if the defect exceeds acceptable limits. These systems can detect defects as small as a few nanometers, depending on the technology used.

Counting Defects:

After scanning the entire wafer, the system counts the number of detected defects (particles, scratches, or other abnormalities). These defect counts are then reported and can be analyzed using statistical process control tools, like the C-Chart, to ensure the manufacturing process remains within control limits.

The machine that counts the number of particles or defects on a wafer is commonly referred to as a wafer defect inspection system or particle counter. Specific machines from well-known manufacturers include:

KLA-Tencor (now KLA): One of the most prominent companies in wafer inspection. Their machines, like the KLA 8xxx series (e.g., 8100, 8300), use optical or electron-beam inspection to detect defects.

Applied Materials: They offer a line of wafer inspection systems, including tools like the Applied Materials SEMVision for defect review and classification.

ASML HMI: Provides e-beam inspection systems for detecting defects with very high resolution.

These machines are essential in ensuring the quality and yield of semiconductor manufacturing processes, identifying defects that could otherwise lead to faulty chips. Here is an image of the Applied Materials SEMVision particle counter.

library(qcc)
## Warning: package 'qcc' was built under R version 4.4.3
## Package 'qcc' version 2.7
## Type 'citation("qcc")' for citing this R package in publications.
defdetretro <- read.csv("C:/Users/Acer/Downloads/wafer_defect_retrospective.csv")
defdetonline <- read.csv("C:/Users/Acer/Downloads/wafer_defect_online.csv")

head(defdetretro)
##   X3
## 1  1
## 2  7
## 3  3
## 4  4
## 5  2
## 6  1

Here we have read the data into the file

qcc_retro <- qcc(data = defdetretro$X3, type = "c", plot = TRUE,title = "Retrospective C-Chart trial 1", xlab = "Sample", ylab = "Defects")

As we see there are no points violating the limits.

qcc_online <- qcc(data = defdetonline$X4, type = "c",center = 3, limits = c(0,8.196152),title = "Online C-Chart", xlab = "Sample", ylab = "Defects")

Using the data we got from the retrospective analysis we can say that the online process is in control.

Monitoring the Percent of Defective Microchips

To maintain high-quality standards, manufacturers often conduct defect inspections on batches of microchips at various stages of the production process. These inspections aim to identify defective chips early in the process to avoid downstream failures and ensure that products meet strict performance and safety requirements.

Context:

The company inspects 100 subgroups, each consisting of 50 chips, as part of their quality assurance program. During these inspections, a number of defective chips are detected and recorded. The goal is to monitor these results to ensure the manufacturing process is stable and identify any points where corrective action might be necessary.

Inspection Process:

The defects are identified using specialized equipment that tests each microchip for various performance characteristics. Some of the machines used for defect inspection include:

Optical Inspection Systems: These machines use high-resolution cameras and optical systems to detect physical defects, such as cracks or surface damage, on microchips. They can identify defects with extreme precision and are commonly used for inspecting chips at the wafer level. 

Automated Test Equipment (ATE): ATE machines are used to test the electrical functionality of each microchip. They simulate real-world operating conditions to ensure that each chip performs as expected under different voltages, temperatures, and loads. Defects such as short circuits or failure to meet performance standards are detected using ATE systems. 

X-ray Inspection Systems: These systems use X-ray technology to detect internal defects, such as voids, cracks, or improper solder connections within the microchips. X-ray inspection is crucial for identifying defects that are not visible to the naked eye or through optical systems. Scanning Electron Microscopes (SEM): SEMs provide high-resolution images of the chip’s surface and structure at the microscopic level. This tool is used for detailed analysis of suspected defects to determine the root cause of failures. 

Retrospective Analysis: 

For this problem, the manufacturer conducts a retrospective analysis of 100 subgroups of microchips, where each subgroup consists of 50 chips. The number of defective chips is recorded for each subgroup, and an np chart is constructed to monitor the stability of the process. 

Online Monitoring:

In addition to the retrospective analysis, the manufacturer also sets up a system for online process monitoring. Here, 50 additional subgroups are inspected in real-time, and the results are recorded for continuous process control. The online np chart helps ensure that the production process remains stable and that any deviations are immediately addressed.

The np control chart is essential for both retrospective and online monitoring because it provides visual indicators of process stability and highlights any points where the process may need corrective action.

retro <- read.csv("C:/Users/Acer/Downloads/retrospective_semiconductor_np_chart.csv")
online <- read.csv("C:/Users/Acer/Downloads/online_monitoring_semiconductor_np_chart.csv")
qcc(retro$X5,type="np",sizes = 50, title = "Retrospective np-Chart",xlab = "Sample", ylab = "Defects")

## List of 11
##  $ call      : language qcc(data = retro$X5, type = "np", sizes = 50, title = "Retrospective np-Chart",      xlab = "Sample", ylab = "Defects")
##  $ type      : chr "np"
##  $ data.name : chr "retro$X5"
##  $ data      : int [1:99, 1] 4 4 4 2 5 2 5 3 5 7 ...
##   ..- attr(*, "dimnames")=List of 2
##  $ statistics: Named int [1:99] 4 4 4 2 5 2 5 3 5 7 ...
##   ..- attr(*, "names")= chr [1:99] "1" "2" "3" "4" ...
##  $ sizes     : num [1:99] 50 50 50 50 50 50 50 50 50 50 ...
##  $ center    : num 4.08
##  $ std.dev   : num 1.94
##  $ nsigmas   : num 3
##  $ limits    : num [1, 1:2] 0 9.89
##   ..- attr(*, "dimnames")=List of 2
##  $ violations:List of 2
##  - attr(*, "class")= chr "qcc"

We see that there is one run violating the process. We remove it.

retroclean <- retro[-95, ]
qcc(retroclean,type="np",sizes = 50, title = "cleaned Retrospective np-Chart",xlab = "Sample", ylab = "Defects")

## List of 11
##  $ call      : language qcc(data = retroclean, type = "np", sizes = 50, title = "cleaned Retrospective np-Chart",      xlab = "Sample", y| __truncated__
##  $ type      : chr "np"
##  $ data.name : chr "retroclean"
##  $ data      : int [1:98, 1] 4 4 4 2 5 2 5 3 5 7 ...
##   ..- attr(*, "dimnames")=List of 2
##  $ statistics: Named int [1:98] 4 4 4 2 5 2 5 3 5 7 ...
##   ..- attr(*, "names")= chr [1:98] "1" "2" "3" "4" ...
##  $ sizes     : num [1:98] 50 50 50 50 50 50 50 50 50 50 ...
##  $ center    : num 3.97
##  $ std.dev   : num 1.91
##  $ nsigmas   : num 3
##  $ limits    : num [1, 1:2] 0 9.7
##   ..- attr(*, "dimnames")=List of 2
##  $ violations:List of 2
##  - attr(*, "class")= chr "qcc"

Now no point is outside the control limits. We will use the new CL,LCL and UCL to judge online data.

qcc(online$X7,type="np",sizes = 50,limits = c(0,9.704229),center=3.969388, title = "Retrospective np-Chart", xlab = "Sample", ylab = "Defects")

## List of 11
##  $ call      : language qcc(data = online$X7, type = "np", sizes = 50, center = 3.969388, limits = c(0,      9.704229), title = "Retrospe| __truncated__
##  $ type      : chr "np"
##  $ data.name : chr "online$X7"
##  $ data      : int [1:49, 1] 8 1 8 2 10 6 8 1 4 0 ...
##   ..- attr(*, "dimnames")=List of 2
##  $ statistics: Named int [1:49] 8 1 8 2 10 6 8 1 4 0 ...
##   ..- attr(*, "names")= chr [1:49] "1" "2" "3" "4" ...
##  $ sizes     : num [1:49] 50 50 50 50 50 50 50 50 50 50 ...
##  $ center    : num 3.97
##  $ std.dev   : num 1.84
##  $ nsigmas   : num 3
##  $ limits    : num [1, 1:2] 0 9.7
##   ..- attr(*, "dimnames")=List of 2
##  $ violations:List of 2
##  - attr(*, "class")= chr "qcc"

We see that there is violation. We can look into the causes of this violation and try to find out the reason.