반도체 웨이퍼 결함/정렬 패턴의 클러스터를 결정하는 방법은 무엇입니까?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />안녕,
저는 최근에 JMP 12를 설치했습니다.
그렇게 한 주된 이유 중 하나는 JMP 12에 도입된 "클러스터링 개선"을 사용하여 데이터 마이닝 기능을 개선하기 위해서였습니다.
기본적으로 필요한 것은 웨이퍼 패턴을 그룹으로 나누어 변동 원인을 찾기 위한 공통성 분석을 수행하는 것입니다.
JMP 12 릴리스 노트에 명시된 바와 같이:
"반도체 및 기타 산업에서는 웨이퍼 결함 패턴의 클러스터를 결정하는 것이 중요합니다. 이것은 이전에 XY 좌표를 만들기 위해 하나의 변수를 만든 다음 이 차원에서 분할하고 클러스터링하고 클러스터를 병합하는 것을 의미했습니다. 이제 JMP는 이 작업을 한 번에 수행합니다."
내가하고 싶은 일의 예를 보여주는 그림이 있습니다.

나는 그러한 분석을 꽤 자주 수행할 필요가 있습니다. 이번 주의 예는 다음과 같습니다.

얼마나 많은 유사한 패턴이 존재하고 각 패턴에 속하는 웨이퍼가 몇 개인지 확인해야 합니까?
그런 분석을 한 사람이 있습니까?
어디에서나 사용할 수 있는 좋은 자습서/가이드가 있습니까?
이것이 반도체 및 MEM 장치 제조업체의 주요 관심사라고 확신합니다.
이 사례는 곧 있을 JMP Discovery Summit의 좋은 후보가 될 수 있습니다.
모든 조언과 의견을 부탁드립니다.
- 필립
Re: 반도체 웨이퍼 결함/정렬 패턴의 클러스터를 결정하는 방법은 무엇입니까?가장 쉬운 방법은 무엇입니까 "좋은" 다이 위치로 테이블을 채우시겠습니까?
이것보다 훨씬 쉬운 방법이 있을 것 같은데...
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Wafer Stacked.jmp" );
dt << Select Where( :Defects == 0 ) << Delete Rows;
xmin = -21;
ymin = -21;
xmax = 21;
ymax = 21;
dx= xmax-xmin;
dy= ymax-ymin;
nItems= (dx +1)*(dy + 1)-1;
tmp = New Table();
tmp<< Add Rows( nItems );
tmp: column1 << Data Type( Character ) << set name("Lot");
tmp << new column("Wafer");
tmp << new column("x", Set Each Value(xmin + Floor((row()-1)/dx)));
tmp << new column("y", Set Each Value(ymin +Mod((row()-1),dy)));
label= new column("label",Character, Set Each Value(Char(:x)||" "||Char(:y)));
tmp << new column("missing");
myEntries = tmp:label << get values();
entriesAsCols = tmp << Split(
Split By( :x, :y ),
Split( :missing ),
Group( :lot, :wafer ),
OutPut Table("split")
);
myMatrix = entriesAsCols << Join(
With( dt ),
Merge Same Name Columns,
Match Flag(0),
By Matching Columns( :Lot = :Lot, :Wafer=:Wafer ),
Drop multiples( 0, 1 ),
Include Nonmatches( 0, 1 ),
OutputTable("Matrix")
);
// Stack data table
// → Data Table( "Untitled 26" )
cols = Transform each ({col},As List( myEntries),Column(myMatrix,Char(col)));
myMatrixStacked = myMatrix << Stack(
columns(cols),
Source Label Column( "label" ),
Stacked Data Column( "Data" ),
"Non-stacked columns"n( Keep( :Lot, :Wafer ) ),
Output Table("stacked")
);
myMatrixStacked << new Column ("Defects", Set Each Value(.));
colX = myMatrixStacked << new column ("X_Die",Set Each Value(Num(Word(1,:label," "))));
colY = myMatrixStacked << new column ("Y_Die",Set Each Value(Num(Word(2,:label," "))));
floodedTable = dt << Join(
With( myMatrixStacked ),
Match flag(0),
Merge Same Name Columns,
By Matching Columns(
:Lot = :Lot, :Wafer = :Wafer, :X_Die = :X_Die, : Y_Die = :Y_Die
),
Include Nonmatches( 1, 1 ),
OutputTable("flooded")
);
floodedTable << Recode Column(
dt:Defects,
{Map Value( _rcOrig, {., 0}, Unmatched( _rcNow ) )},
Target Column( :Defects )
);
CLose(dt,myMatrix,entriesAsCols,myMatrixStacked, noSave);Re: 반도체 웨이퍼 결함/정렬 패턴의 클러스터를 결정하는 방법은 무엇입니까?안녕 @jerry_cooper ,
측정 설정 "실패시 중지"로 인해 값이 손실됩니다. 즉, 누락된 값이 있습니다.
내 문제를 극복하기 위해 "누락 값 대치"를 사용합니다. 답장을 보내 주셔서 감사합니다!!
또 다른 질문: 내가 보는 히트맵. 어떻게 계산하거나 정규화합니까?
열/변수의 최소/최대 = 범위?
그러면 그 범위 내에서 특정 값의 색상이 지정되는 건가요?
Re: 반도체 웨이퍼 결함/정렬 패턴의 클러스터를 결정하는 방법은 무엇입니까?안녕 @날짜 ,
데이터를 보지 않고는 확실하게 알기 어렵습니다. 그러나 수신되는 오류는 불완전한 웨이퍼 맵을 쌓거나 웨이퍼를 다른 레이아웃으로 쌓으려고 시도한 결과일 수 있습니다. 데이터에 결함이 있는 다이(및 해당 위치)만 포함된 경우 각 웨이퍼에 대한 "양호한" 다이 위치로 테이블을 채우고 결함이 없음을 표시해야 합니다. 즉, 결함 열에 0을 입력합니다. 어렵게 들릴 수 있지만 웨이퍼 맵에 대해 가능한 모든 다이 위치가 포함된 테이블을 생성한 후 조인을 통해 쉽게 수행할 수 있습니다.이 접근법은 각 웨이퍼가 동일한 레이아웃을 가지고 있다고 가정합니다.
이 플랫폼을 사용하여 레이아웃이 다른 웨이퍼를 비교하려면 상당한 데이터 조작과 창의성이 필요합니다.
가능한 경우 데이터를 게시하면 보다 확실한 과정을 결정하는 데 도움이 됩니다.
Re: 반도체 웨이퍼 결함/정렬 패턴의 클러스터를 결정하는 방법은 무엇입니까?안녕 마이크,
Wafer Stacked 방식을 해보고 싶습니다. 그러나 "비결측 데이터가 충분하지 않습니다"라는 문제가 발생합니다.
나는 그것을 전혀 이해하지 못한다. 내 데이터를 샘플 데이터 "wafer stacked.jmp"와 비교했습니다.
원칙적으로 다른 것은 없습니다.
다른 알려진 문제가 있습니까?
@martindemel
Re: 반도체 웨이퍼 결함/정렬 패턴의 클러스터를 결정하는 방법은 무엇입니까?포괄적인 답변을 해주셔서 감사합니다.
공간 탐색을 기대하고 있습니다.
이 주제에 들인 시간과 노력에 감사드립니다.
친애하는,
필립
Re: 반도체 웨이퍼 결함/정렬 패턴의 클러스터를 결정하는 방법은 무엇입니까?필립,
안녕!알아내서 다행입니다!이 두 가지 새로운 질문에 대한 다양한 피팅 방법에 대한 자세한 내용은 JMP 설치와 함께 제공되는 책에 자세히 설명되어 있습니다.당신이 원하는 것은 Multivariate Methods 책입니다.도움말 > 책 > 다변량 방법에서 찾을 수 있습니다.피팅 방법에 대한 자세한 내용은 75페이지부터 찾을 수 있는 계층적 클러스터링에 대한 통계 세부 정보 섹션에서 찾을 수 있습니다.
공간 구성 요소에 관한 두 번째 질문입니다. 숫자는 분석에서 찾은 잠재적인 공간 구성 요소의 수입니다(이 시점에서 이미 일부 예비 작업을 수행함).
- 속성 설정 대화 상자의 속성 필드에 제공된 변수의 특정 조합입니다.이 경우 개별 다이는 (X,Y) 좌표 쌍으로 정의됩니다.
- 앵글, 파이 쐐기 모양 또는 반구형 모양을 찾습니다(예: 도금 전극과의 잘못된 연결로 인해 웨이퍼의 절반이 Cu 결절로 장식됨).
- 반지름, 원 CMP에서 링 스크래치 또는 샤워 헤드 증착이 설정된 CVD 기반 패턴과 같은 것을 찾습니다.
- 줄무늬, 각도 동일한 각도를 가진 선형 특징으로 보입니다(예: 잘못된 Marangoni 건조 설정의 줄무늬).
- 연속, 위치 공간적으로 비슷한 위치의 줄무늬를 찾습니다.
이 "공간" 대화 상자가 나타나면 제공된 데이터 테이블에서 각 기능이 어떻게 보이는지 확인할 수 있습니다.각 기능에 대한 기타 정보와 함께 대화 상자의 각 변수에 대한 Hough 변환이 표시됩니다.대화 상자의 각 기능 유형 옆에 있는 확인란을 선택 취소하여 포함할 항목을 결정할 수 있습니다. 즉, 이 분석에서 링 스크래치가 걱정되지 않는 경우 Hough 변환을 기반으로 해당 기능이 있는 변수 유형을 선택 취소 정보 - 아마도 반지름, 원.
Spatial Dialog의 가중치는 말 그대로 클러스터링 분석에서 각 변수 유형의 중요도에 가중치를 부여합니다.고려해야 할 사항이 있지만 특정 기능 유형보다 덜 중요한 경우 다른 기능 유형보다 덜 중요하게 만들 수 있습니다.
설정에 대한 마지막 질문에서 설정은 Hough 변환, 대화(각 기능 유형의 개수) 및 선에 대해 알고 있는 내용을 기반으로 합니다.줄무늬 문제로 영향을 받은 재료가 아직 라인에 있다는 것을 알고 있다면 스테이크의 무게를 줄이는 것이 현명할 수 있습니다.아마도 재발을 모니터링하고 싶지만 이미 알고 있는 것에 대해 꼬리를 쫓고 싶지는 않을 것입니다. 줄무늬가 전혀 신경쓰이지 않는다면 완전히 끄십시오.이 유형에 대한 나의 기본 권장 사항은 데이터(수치적 또는 상황적)를 얻을 때까지 기본값을 사용하는 것입니다.
최상의,
중
Re: 반도체 웨이퍼 결함/정렬 패턴의 클러스터를 결정하는 방법은 무엇입니까?안녕 마이클,
당신의 응답을 주셔서 감사합니다. 당시에는 하나의 결함 수 열만 사용하고 있었습니다.
JMP를 다시 시작한 후 더 이상 간헐적인 경보 메시지가 표시되지 않습니다.
귀하의 지시에 따라 분석을 실행할 수 있었습니다. 아래 예를 참조하십시오.

이 기능에 대한 문서가 "약간 밝음"이기 때문에 언제 Ward를 사용해야 하는지 설명하는 데 도움이 될 수 있는지 궁금합니다. 평균, .. 완전한 옵션?

또한 공간 구성 요소에서 수와 가중치의 의미를 설명할 수 있습니까?

라인에서 나온 웨이퍼 맵 유형을 볼 때(위 참조) 이러한 구성 요소 설정에 대한 권장 사항이 있습니까?
- 필립
Re: 반도체 웨이퍼 결함/정렬 패턴의 클러스터를 결정하는 방법은 무엇입니까?필립,
그것은 완전히 다른 문제입니다.데이터 세트에 대해 더 말씀해 주시겠습니까?익명화된 데이터 버전을 게시할 수 있습니까?데이터를 너무 많은 하위 그룹으로 분할하려고 시도하는 것일 수 있습니다.이것은 매우 넓지만(많은 열) 데이터 세트가 얕지만(적은 행) 데이터 세트가 있는 경우에 발생했습니다.제공한 JMP가 아닌 맵과 같은 반도체 결함 데이터를 수행하는 경우 보고 있는 오류는 너무 많은 잠재적 원인 클러스터에 클러스터링을 시도하는 것에 더 가깝습니다.몇 가지 세부 정보를 제공할 수 있습니까?
최상의,
중
Re: 반도체 웨이퍼 결함/정렬 패턴의 클러스터를 결정하는 방법은 무엇입니까?귀하의 의견에 감사드립니다.
친애하는,
필립
Re: 반도체 웨이퍼 결함/정렬 패턴의 클러스터를 결정하는 방법은 무엇입니까?고마워 케빈,
훌륭하고 유익한 기사.
정확히 내가 하고 싶은 일의 유형.
불행히도 기술은 공유되지 않습니다
친애하는,
필립
Re: 반도체 웨이퍼 결함/정렬 패턴의 클러스터를 결정하는 방법은 무엇입니까?안녕 마이클,
입력해 주셔서 감사합니다.
나는 당신이 지시 한대로 분석을 시도했고 심지어 몇 번 성공했습니다.
그러나 나는 종종 아래의 알람 메시지를 받아 분석을 갑작스럽고 .

이 문제의 원인이 무엇인지 아십니까?
데이터 유형에 제한이 있습니까?
그러나 그것은 매우 유망해 보이며 계속해서 평가/조사할 것입니다.
이 기술에 대한 추가 문서가 있습니까?
친애하는,
필립
Re: 반도체 웨이퍼 결함/정렬 패턴의 클러스터를 결정하는 방법은 무엇입니까?응... 이것은 12의 멋진 기능이지만 문서에서는 약간 가볍습니다.(클러스터의 웨이퍼 맵과 함께) 그것을 사용하는 방법의 기본은 다음과 같습니다 일하다.):
- JMP12에서 분석 > 다변량 방법 > 클러스터링으로 이동합니다.
- 결함 수를 포함하는 데이터 열을 Y에 넣습니다.
- 대화 상자의 왼쪽 하단에서 "평소와 같은 데이터"라고 표시된 드롭다운을 선택합니다.이 드롭다운 메뉴에서 "데이터 누적"을 선택합니다.
- 드롭다운 목록 아래의 "공간 측정 추가"를 선택합니다("데이터 누적"을 선택한 후 나타남).
- 관심 있는 구조의 x 및 y 좌표를 대화 상자의 속성 ID 영역에 추가합니다.
- 개체 ID 영역에 웨이퍼 ID를 추가합니다(즉, 로트 ID, 웨이퍼 ID, 슬롯 ID 등 또는 이들의 조합).
- 확인을 클릭합니다.
- 다음 대화 상자에서 분석에서 다양한 공간 구성 요소의 가중치를 조정할 수 있습니다.(지금은 그냥 기본값으로 가겠습니다)
- 확인을 클릭합니다.
- 이제 보고서에 고려하려는 클러스터 수를 조정할 수 있는 dandrogram이 표시됩니다. 덴드로그램의 x축에 있는 작은 다이아몬드를 사용하여 이를 조정할 수 있습니다.
- 클러스터를 웨이퍼 맵으로 보려면 보고서 상단의 빨간색 화살표 아래에서 "클러스터 요약"을 선택합니다.또한 보고서는 클러스터가 있는 데이터 테이블을 표현식 열의 그림으로 출력합니다.
도움이 되길 바랍니다!
최상의,
중
Re: 반도체 웨이퍼 결함/정렬 패턴의 클러스터를 결정하는 방법은 무엇입니까?2014년에도 비슷한 주제로 발표가 있었습니다.이것을 확인하고 도움이 되는 것을 볼 수 있습니다.완전한 답은 없지만 올바른 길로 인도하는지 확인할 수 있습니다.정렬 공간 패턴을 보도록 설계되었습니다.
JSL을 이용한 반도체 웨이퍼 공간 패턴 분류
-칼
Re: 반도체 웨이퍼 결함/정렬 패턴의 클러스터를 결정하는 방법은 무엇입니까?안녕, 필립!
당신이 올바른지; 이 문제는 반도체 장치 제조업체의 주요 관심사였으며 앞으로도 그럴 것입니다.예를 들어, SEMATECH는 1999년에 공간 통계에 관한 전체 통계 방법 심포지엄을 후원했습니다.나는 반도체의 공간 통계에 대해 구체적으로 설명하는 훌륭한 튜토리얼이나 가이드가 없다는 것을 알고 있습니다... 이론적으로 정당화되고 잘 작동하는 시스템이 소유자에게 제공할 수 있는 경쟁 우위에 부분적으로 기인한다고 생각합니다.지적 재산은 해당 산업에서 높은 가치를 지닙니다.
아마도 이 JMP Discovery 2014 프레젠테이션에 관심이 있으실 것입니다. https://community.jmp.com/servlet/JiveServlet/download/6695-5-69366/Semiconductor%20Wafer%20Spatial%20Pattern%20Classification%20With%20JSL%20%E2%80%93%20JMP%20Discovery%20Summit% 202014.pdf
모든 Star Trek 에피소드의 시작 부분에서 말합니다. Space really ~이다 최후의 국경!행운을 빌어요!