테스트 커버리지, Stuck-at과 Transition 결함
어부는 잡으려는 물고기에 맞춰 그물코의 크기를 고릅니다. 그물코가 성기면 작은 고기는 빠져나가고, 촘촘하게 짤수록 많이 걸리지만 그물이 무겁고 비싸지죠. 그리고 아무리 촘촘해도 그물의 모양을 벗어난 곳으로 지나가는 고기는 잡히지 않습니다.
반도체 테스트도 그물을 던지는 일과 비슷합니다. 테스트 패턴이 결함을 얼마나 촘촘하게 걸러 내는지를 숫자로 나타낸 것이 테스트 커버리지죠. 이 글에서는 커버리지를 계산하는 기준이 되는 결함 모델, 그중에서도 가장 기본인 Stuck-at과 Transition 결함을 중심으로, 이 숫자가 출하 품질과 어떻게 이어지는지 정리합니다.
테스트 커버리지란 무엇인가
테스트 커버리지는 넓게 보면 가정한 결함 가운데 테스트 패턴이 찾아낼 수 있는 비율입니다. 가장 기본 형태인 고장 검출률(Fault Coverage)은 검출된 결함 수를 전체 결함 수로 나누어 백분율로 나타내죠.
고장 검출률 계산고장 검출률(%) = 검출된 결함 수 ÷ 전체 결함 수 × 100
예: 결함 목록에 100만 개의 결함이 있고 패턴이 99만 5천 개를 검출하면 고장 검출률은 99.5%입니다.
여기서 분모의 결함은 실제 칩에 생긴 물리적 결함이 아니라, 회로 도면 위에 모델로 가정한 결함 목록이라는 점이 중요합니다. 설계 도구에 따라서는 회로 구조상 어떤 패턴으로도 검출할 수 없는 결함을 분모에서 빼고 계산한 값을 따로 테스트 커버리지라고 부르기도 하므로, 숫자를 볼 때는 어떤 정의로 계산했는지 함께 확인해야 하죠.
결함 모델이 필요한 이유
실제 제조 결함은 끝없이 다양합니다. 먼지 한 톨이 배선 둘을 이을 수도 있고, 비아가 덜 채워져 저항이 커질 수도 있으며, 트랜지스터 하나가 약하게 만들어질 수도 있죠. 이 모든 경우를 물리적으로 하나하나 시뮬레이션하는 것은 불가능합니다.
그래서 결함이 회로 동작에 남기는 흔적을 논리 수준에서 단순하게 흉내 낸 결함 모델(Fault Model)을 씁니다. 결함 모델은 그물의 모양을 정하는 설계도와 같아서, 어떤 모델을 쓰느냐에 따라 그물이 잡을 수 있는 결함의 종류가 달라지죠. 대표적인 두 모델이 Stuck-at과 Transition입니다.
Stuck-at 결함, 0이나 1에 붙어 버린 선
Stuck-at 결함(고착 결함)은 회로의 어떤 신호선이 입력과 상관없이 0에 붙어 있거나(Stuck-at-0, SA0) 1에 붙어 있다고(Stuck-at-1, SA1) 가정합니다. 신호선마다 두 가지 결함이 있으므로, 신호선이 N개인 회로의 결함 목록은 처음에 2N개가 되죠.
결함을 검출하려면 두 조건이 필요합니다. 결함이 있는 선에 정상이라면 반대 값이 나오도록 만드는 활성화, 그리고 그 차이가 바깥에서 관찰할 수 있는 출력까지 전달되게 하는 전파죠.
2입력 AND 게이트의 예입력 A, B와 출력 Z가 있을 때 A의 SA0를 찾으려면 A=1로 활성화하고, B=1로 두어 A의 값이 Z까지 전달되게 합니다.
정상 회로: Z = 1
결함 회로: Z = 0
입력 (1,1), (0,1), (1,0) 세 패턴이면 이 게이트의 신호선 세 개에 대한 결함 여섯 개를 모두 검출할 수 있습니다.
Stuck-at 모델은 단순하지만 오래 쓰여 온 이유가 있습니다. 실제 결함을 정확히 묘사하지는 않아도, 이 모델로 만든 패턴이 회로의 거의 모든 선을 0과 1로 흔들어 보기 때문에 많은 실제 결함을 덤으로 잡아내죠. 또 같은 패턴으로 늘 함께 검출되는 결함을 하나로 묶는 결함 축약(Fault Collapsing)으로 목록 크기를 줄일 수 있습니다.
Transition 결함, 제때 바뀌지 못하는 선
미세 공정에서는 값이 아예 고정되는 결함보다 값이 늦게 바뀌는 결함이 문제가 되는 경우가 많습니다. 저항이 커진 비아나 약한 트랜지스터는 결국 올바른 값에 도달하지만, 정해진 클록 주기 안에 도착하지 못하죠. Transition 결함(전이 결함)은 이를 0에서 1로 늦게 바뀌는 Slow-to-Rise와, 1에서 0으로 늦게 바뀌는 Slow-to-Fall로 모델링합니다.
이 결함은 패턴 하나로 찾을 수 없습니다. 첫 번째 패턴으로 선을 초기 값에 맞추고, 두 번째 패턴으로 값을 바꾸는 전이를 일으킨 뒤, 정격 속도의 클록으로 결과를 잡아야 하죠. 스캔 구조에서는 마지막 시프트 동작으로 전이를 일으키는 LOS(Launch-on-Shift)와, 기능 클록으로 전이를 일으키는 LOC(Launch-on-Capture) 방식을 씁니다.
흔히 Stuck-at 커버리지가 높으면 속도 관련 결함도 함께 걸러진다고 생각하지만, 느린 클록으로 돌린 Stuck-at 패턴은 늦게 도착하는 신호를 정상으로 판정합니다. 그래서 요즘 양산 테스트는 Stuck-at과 Transition 커버리지 목표를 각각 따로 세웁니다.
커버리지를 계산하고 끌어올리는 과정
커버리지는 ATPG(Automatic Test Pattern Generation) 도구와 결함 시뮬레이션(Fault Simulation)으로 계산합니다. ATPG가 결함 목록의 결함을 하나씩 겨냥해 패턴을 만들고, 결함 시뮬레이터는 그 패턴이 겨냥한 결함 말고도 어떤 결함을 덤으로 잡는지 확인해 목록에서 지워 나가죠.
이때 회로 내부의 값을 마음대로 정하고 읽을 수 있어야 ATPG가 일을 할 수 있습니다. 플립플롭을 시험 모드에서 하나로 이어 바깥에서 값을 넣고 빼는 스캔 체인이 바로 이 제어성과 관찰성을 만들어 주는 장치죠. 끝내 검출되지 않는 결함은 원인을 분류해, 구조상 검출이 불가능한 결함인지, 도구가 시간 안에 패턴을 찾지 못한 결함인지에 따라 시험 지점 추가나 설계 수정으로 대응합니다.
테스트 커버리지와 출하 품질의 관계
테스트 커버리지가 결국 중요한 이유는 출하 품질 때문입니다. 테스트를 통과했지만 실제로는 불량인 칩의 비율을 결함 수준(DL, Defect Level)이라 하고, 백만 개당 개수인 DPPM(Defective Parts Per Million)으로 흔히 나타내죠. 커버리지가 낮을수록 그물을 빠져나가는 불량이 많아집니다.
이 관계를 단순하게 표현한 식으로 윌리엄스–브라운(Williams–Brown) 모델이 있습니다. 수율을 Y, 커버리지를 T(0과 1 사이 값)라고 하면 결함 수준은 DL = 1 − Y^(1−T)로 추정하죠. 수율이 90%일 때 커버리지 99%면 DL은 약 0.105%로 약 1,050 DPPM이고, 커버리지를 99.9%로 올리면 약 105 DPPM으로 열 배쯤 줄어듭니다.
다만 이 모델은 모든 결함이 같은 확률로 생기고 모델 결함이 실제 결함을 잘 대표한다는 가정을 깔고 있습니다. 그래서 커버리지 숫자는 품질의 절대값이라기보다 그물이 얼마나 촘촘한지를 보여 주는 지표로 읽고, 실제 출하 품질은 현장 불량 데이터로 함께 확인합니다.
결함 모델 비교 표
| 구분 | Stuck-at 결함 | Transition 결함 |
|---|---|---|
| 가정 | 신호선이 0 또는 1에 고정 | 신호선의 0→1 또는 1→0 전이가 늦음 |
| 결함 종류 | SA0, SA1 | Slow-to-Rise, Slow-to-Fall |
| 필요한 패턴 | 패턴 하나 | 초기화와 전이를 위한 패턴 한 쌍 |
| 시험 속도 | 느린 클록으로도 가능 | 정격 속도로 결과를 잡아야 함 |
| 주로 잡는 결함 | 단선, 단락으로 값이 고정되는 결함 | 저항성 비아, 약한 트랜지스터 같은 지연 결함 |
| 한계 | 속도 관련 결함을 놓침 | 패턴 수가 많고 작은 지연은 놓칠 수 있음 |
핵심 정리
테스트 커버리지는 결함 모델로 가정한 결함 가운데 테스트 패턴이 검출하는 비율입니다. Stuck-at 모델은 신호선이 0이나 1에 고정된 결함을, Transition 모델은 값이 제때 바뀌지 못하는 지연 결함을 가정하고, ATPG와 결함 시뮬레이션, 스캔 구조가 커버리지를 계산하고 끌어올리죠. 커버리지가 높을수록 출하되는 불량의 비율이 줄어든다는 관계는 윌리엄스–브라운 모델로 설명할 수 있습니다.
그물코를 아무리 촘촘히 짜도 그물 모양 밖으로 지나가는 고기는 잡히지 않습니다. 커버리지 숫자를 볼 때는 얼마나 촘촘한지와 함께 어떤 모양의 그물인지, 즉 어떤 결함 모델로 계산한 값인지를 먼저 묻는 습관을 들이면 숫자에 속지 않습니다.
면접 대비 질문
면접 대비 질문Stuck-at 커버리지가 99% 이상인데도 현장에서 속도 관련 불량이 나온다면 원인과 대책을 어떻게 설명하겠습니까?
[답변 포인트] Stuck-at 모델은 값이 고정된 결함만 가정하고 느린 클록으로도 시험할 수 있어, 늦게 도착하는 신호는 정상으로 판정된다는 점을 먼저 짚습니다. 저항성 비아나 약한 트랜지스터 같은 지연 결함을 잡으려면 Slow-to-Rise와 Slow-to-Fall을 가정한 Transition 결함 모델로 패턴 한 쌍을 만들고 정격 속도로 결과를 잡는 앳스피드 테스트가 필요하다고 답합니다. 커버리지는 모델 결함 기준의 수치라는 한계와, Transition 커버리지 목표를 별도로 세우고 미검출 결함을 분석해 시험 지점을 보강한다는 대책까지 언급하면 좋습니다.









