In semiconductor manufacturing, wafers are made in batches and can contain thousands of chips, making them highly sensitive to defects from particles, contamination, or misalignment. Wafer inspection systems detect and count these defects on each wafer. A C-Chart is then used to track the number of defects per wafer and ensure the process remains stable.
A retrospective C-Chart was constructed using 100 wafer samples. The chart was generated with the qcc library in R, where the wafer defect dataset was analyzed with a fixed sample size of 100 chips per wafer. The center line (CL) represents the average number of defects per wafer, while the upper and lower control limits (UCL and LCL) define the expected range of variation. All observed points fell within these limits, indicating that the process was stable during the retrospective period.
#install.packages("qcc")
library(qcc)
## Package 'qcc' version 2.7
## Type 'citation("qcc")' for citing this R package in publications.
#read in retrospective dataset
retro_data <- read.csv("~/Downloads/wafer_defect_retrospective.csv",header=FALSE)
retro_data
## V1
## 1 3
## 2 1
## 3 7
## 4 3
## 5 4
## 6 2
## 7 1
## 8 4
## 9 4
## 10 1
## 11 2
## 12 3
## 13 5
## 14 5
## 15 3
## 16 2
## 17 3
## 18 3
## 19 1
## 20 6
## 21 1
## 22 5
## 23 4
## 24 3
## 25 2
## 26 3
## 27 2
## 28 6
## 29 2
## 30 6
## 31 3
## 32 0
## 33 5
## 34 0
## 35 6
## 36 2
## 37 4
## 38 3
## 39 5
## 40 8
## 41 4
## 42 1
## 43 3
## 44 0
## 45 0
## 46 2
## 47 4
## 48 1
## 49 5
## 50 3
## 51 0
## 52 4
## 53 1
## 54 6
## 55 3
## 56 1
## 57 1
## 58 0
## 59 3
## 60 2
## 61 4
## 62 5
## 63 1
## 64 0
## 65 5
## 66 5
## 67 1
## 68 0
## 69 2
## 70 2
## 71 2
## 72 6
## 73 6
## 74 5
## 75 5
## 76 0
## 77 2
## 78 5
## 79 5
## 80 1
## 81 4
## 82 3
## 83 2
## 84 2
## 85 2
## 86 6
## 87 4
## 88 1
## 89 1
## 90 1
## 91 5
## 92 3
## 93 1
## 94 3
## 95 6
## 96 2
## 97 5
## 98 2
## 99 1
## 100 7
qcc(data=retro_data$V1,size=100,type="c")
## List of 11
## $ call : language qcc(data = retro_data$V1, type = "c", sizes = 100)
## $ type : chr "c"
## $ data.name : chr "retro_data$V1"
## $ data : int [1:100, 1] 3 1 7 3 4 2 1 4 4 1 ...
## ..- attr(*, "dimnames")=List of 2
## $ statistics: Named int [1:100] 3 1 7 3 4 2 1 4 4 1 ...
## ..- attr(*, "names")= chr [1:100] "1" "2" "3" "4" ...
## $ sizes : num [1:100] 100 100 100 100 100 100 100 100 100 100 ...
## $ center : num 3
## $ std.dev : num 1.73
## $ nsigmas : num 3
## $ limits : num [1, 1:2] 0 8.2
## ..- attr(*, "dimnames")=List of 2
## $ violations:List of 2
## - attr(*, "class")= chr "qcc"
The established control limits from the retrospective analysis were applied to monitor 30 additional wafer samples. The online C-Chart shows that all points for the new data fall within the upper and lower control limits. This indicates that the process has remained stable.
#read in online dataset
online_data <- read.csv("~/Downloads/wafer_defect_online.csv",header=FALSE)
online_data
## V1
## 1 4
## 2 1
## 3 3
## 4 3
## 5 2
## 6 3
## 7 2
## 8 3
## 9 0
## 10 2
## 11 4
## 12 2
## 13 1
## 14 3
## 15 4
## 16 4
## 17 1
## 18 2
## 19 3
## 20 2
## 21 3
## 22 4
## 23 1
## 24 3
## 25 3
## 26 3
## 27 5
## 28 0
## 29 1
## 30 4
#add online data to in-control c chart
qcc(data=retro_data$V1,size=100,type="c",
newdata=online_data$V1,newsizes=30)
## List of 15
## $ call : language qcc(data = retro_data$V1, type = "c", sizes = 100, newdata = online_data$V1, newsizes = 30)
## $ type : chr "c"
## $ data.name : chr "retro_data$V1"
## $ data : int [1:100, 1] 3 1 7 3 4 2 1 4 4 1 ...
## ..- attr(*, "dimnames")=List of 2
## $ statistics : Named int [1:100] 3 1 7 3 4 2 1 4 4 1 ...
## ..- attr(*, "names")= chr [1:100] "1" "2" "3" "4" ...
## $ sizes : num [1:100] 100 100 100 100 100 100 100 100 100 100 ...
## $ center : num 3
## $ std.dev : num 1.73
## $ newstats : Named int [1:30] 4 1 3 3 2 3 2 3 0 2 ...
## ..- attr(*, "names")= chr [1:30] "101" "102" "103" "104" ...
## $ newdata : int [1:30, 1] 4 1 3 3 2 3 2 3 0 2 ...
## $ newsizes : num [1:30] 30 30 30 30 30 30 30 30 30 30 ...
## $ newdata.name: chr "online_data$V1"
## $ nsigmas : num 3
## $ limits : num [1, 1:2] 0 8.2
## ..- attr(*, "dimnames")=List of 2
## $ violations :List of 2
## - attr(*, "class")= chr "qcc"
The retrospective C-Chart, constructed from 100 wafer samples, established the baseline in-control limits for the process. All samples were found to be within the limits, indicating stable process performance during the historical period. These limits were then applied to monitor 30 additional wafers. The online monitoring phase also showed that all samples remained within the established limits, confirming that the process continued to operate in control.
To ensure quality in microchip production, manufacturers inspect subgroups of 50 chips at different stages of the process. Specialized inspection systems, such as optical inspection, automated test equipment (ATE), X-ray imaging, and scanning electron microscopes (SEM), are used to detect defects. The number of defective chips in each subgroup is recorded, and an np control chart is used to monitor process stability.
A retrospective np chart was constructed using 100 subgroups of 50 chips each. The center line represents the average number of defective chips per subgroup, while the control limits (UCL and LCL) indicate the expected natural variation in the process. Reviewing the retrospective chart allows identification of any special-cause variation that may have occurred in the past. In this case, the majority of points fell within control limits, suggesting that the process was stable across the initial 100 subgroups.
The frozen control limits from the retrospective phase were then applied to monitor 50 additional subgroups, each consisting of 50 chips. The np chart for the online phase shows that all samples remain within the established control limits, confirming the process continues to operate in control.
The retrospective np-Chart, constructed from 100 subgroups of 50 chips each, established the baseline in-control limits for the process. All subgroup results were within the control limits, indicating stable process performance during the historical period. These frozen limits were then applied to monitor 50 additional subgroups. The online monitoring phase also showed that all subgroup points remained within the established limits, confirming that the process continued to operate in control.