DFT와 Diagnosis에 대해서
반도체 수율은 대체 어떻게 개선할까? (1)
https://brunch.co.kr/@857bd4e3f8b84b0/3
앞선 글에서 보았던 반도체 개발 과정에서, 모든 설계 과정 (RTL2GDS라고 한다. 그냥 그렇다고 알자)이 끝나면, 반도체 Tape out을 하게 된다.
(Tape out : 모든 설계 과정이 끝나고 Fab 생산으로 나가는 것을 의미, 보통 MTO(Mask Tape Out)라고 함)
그리고 보통 모든 반도체 개발 제품에는 아래 처럼 Device 이름과 Device version이 존재한다.
엑시노스 2100 - S5E9840 - Olympus
(삼성 입사한 후에 내가 처음으로 참여했던 과제였었지..)
그리고 처음 MTO 되어 나온 Device version (Version 0, EVT0) 에서 가장 중요한 점은, 아래 그림처럼 수율을 끌어올릴 수 있는 인자를 초기에 얼마나 빠르게 발견할 수 있는가, 이다.
이전 글에서도 얘기했듯이, 나노 단위의 불량을 하나하나 physical 적으로 다 분석하는 것은 불가능하거니와, 비용과 시간적으로도 매우 큰 낭비이다.
그래서, 우리는 DFT 라는 것을 사용한다.
(DFT - Design for Test, 테스트를 용이하게 해주는 설계방법)
테스트라는건 (아주아주아주) 쉽게 얘기해서, chip에 input을 넣고, 그 결과로 나온 output을 보았을때, 내가 예상한 값이 나오면 Pass, 그렇지 않으면 Fail이다.
그런데 그 input 값들 (Test Pattern) 을 대체 어떻게 만드느냐? 하는 것은 또 다른 문제에 직면하게 된다. 단순하게 생각해서 chip의 pin이 100개라고 하고, 각 pin에 인가될 수 있는 값에 0혹은 1이라고 한다면, 우리가 인가할 수 있는 전체 값은 2의 100승..이 될텐데.. 그걸 다 넣어 본다는 건 상식적으로도 이상하다.
그래서, 우리는 이런 테스트 과정을 좀 더 용이할 수 있게 하기 위해 반도체 설계 단계에서 부터 DFT라는 기법을 적용해서 설계하고, 그에 맞는 패턴들을 만들어 낸다. 우리는 이 과정을 ATPG (Automatic Test Pattern Generation) 이라고 한다.
그렇다면, 다시 반대로 생각해 보자. (여기까지 잘 이해했다면 당신도 이제 전문가다)
우리는 DFT라는 것을 통해 테스트 패턴을 직접 만들었고,
테스트 패턴을 인가하였을 때, 테스트 결과 값이 잘못나온 경우가 Chip Fail이라고 했으니,
잘은 모르겠지만, 테스트 패턴을 만들때 사용한 알고리즘을 잘 활용해서 역추적하는 알고리즘을 사용하고,
실제 Fail된 테스트 결과값이 있다면 (+그리고 기본적으로 가지고 있는 설계 정보가 있다면),
설계 내 어느 지점에서 문제가 야기되어 Fail을 유발하는지 알 수 있지 않을까?
왠지 그럴것 같은 기분이 아니더라도 그렇게 믿어주길 바란다.
우리는 이 과정을 Diagnosis라고 부르고, Failure Anlaysis 하시는 분들은 이 과정을 eFA 라고 부른다.
그리고 나의 현재 업이 바로 이 Diagnosis 과정에 대한 연구 및 개발이다.
왠지 모르게 복잡해 보이는 Diagnosis 과정이지만,
eFA라는 단어의 뉘앙스에서 느껴지듯이 어쨌든 Simulation으로 진행되는 과정이고, 짧은 시간안에 불량이 발생한 위치 (정확히는 발생했을 거라고 simulation 상 예상되는 위치 - candidate 혹은 suspect라고 부른다)를 report 해주기 때문에, 전체 Failure analysis에서 가장 선행되고, 기본이 되는 과정이라고 할 수 있다.
그리고 보통 수율 분석을 위해서 진행되는 Diagnosis 과정은, 하나의 chip이 아니라, wafer, lot 단위로 진행이 되며 우리는 Diagnosis를 대량으로 한다는 뜻으로 volume diagnosis라는 용어를 사용한다.
(Lot : 여러 wafer를 같은 공정 기준으로 묶어둔 단위, 보통 25wafer가 하나의 lot)
왜 이런 Volume diagnosis 기법이 필요할까?
앞서 보았던 그림에서 처럼, 사실 불량의 종류와 원인은 수백가지이기 때문에,
가장 중요한 것은 각 공정별로 주요한 불량을 빠르게 캐치하여 그 불량들을 개선하여 일정 수준까지 수율을 빠르게 끌어올리는 것이 가장 중요한 핵심이다. (Yield Ramp up)
그런데 내가 만약 1번 Wafer 에서 candidate들을 분석했더니, 위의 그림처럼 Defect A가 60% 비율로 가장 많이 검출되었다고 해보자. 내가 빠르게 이 Wafer 1에서 사용된 공정 과정 중 Defect A 주요 불량이라고 정의하여 이를 유발할 수 있는 공정 process를 개선한다면, Defect A에 대한 불량이 개선이 될 것이다.
그런데, 과연 Defect A가 주요한 불량일까?
그래서 같은, 유사한 공정을 사용한 Wafer 4장에 대한 candidate들을 다시 한꺼번에 분석해 보았더니,
사실은 Defect B가 62.5% 비율로 주요한 불량임을 알 수 있었다.
즉, 가장 빠르게, 주요한 불량을 핵심적으로 찾아내기 위해서는 이런 volume diagnosis 기법이 필요한 것이다.
Diagnosis engineer는,
DFT에 기반한 설계적 지식과, 테스트 지식, 이와 관련된 공정 지식, 불량 분석 지식, 통계 분석 방법 등 지금까지 보아왔던 반도체의 전 과정을 잘 알고 이를 조율할 수 있어야 한다.
사실 "DFT Diagnosis란 무엇일까?" 라고 제목을 지으면 아무도 안볼거기 때문에
반도체 수율을 대체 어떻게 개선할까? 라는 다소 거창한 제목으로 시작했지만,
사실 수율 개선이라는 것은 어느 한 분야에서 뚝딱하고 해결될 수 있는 문제는 아니다.
그럼에도, 이 수율 개선을 위해 반드시 필요한 분야인 나의 이 Diagnosis 분야에 대해 누군가는 알았으면 하는 마음으로 이 내용을 최대한 이해하기 쉬운 언어와 그림으로 작성해 보았다.
이 글을 읽은 당신이, 해당 내용의 지식이 하나도 없더라도, 반도체 상식이 +1 되었길 바라며,
혹은 반도체 취업을 준비하거나 반도체 업계에 관심있는 사람이, 반도체 지식이 +1 되었길 바라며
이 글을 마친다.