스캔 진단과 비트맵
테스터는 "이 다이는 불합격"이라고만 말하지 않는다. 몇 번째 패턴의 몇 번째 관측점이 기대와 달랐는지를 기록으로 남긴다. 이 기록과 설계 데이터(넷리스트, 레이아웃)를 맞춰 보면, 칩을 열지 않고도 수천만 개의 넷 가운데 용의자를 몇 개로 줄일 수 있다. 진술만으로 용의자를 좁히는 단계다. 로직은 스캔 진단(Scan diagnosis)으로, 메모리는 비트맵(Bitmap)으로 한다. 시료는 전혀 손상되지 않지만, 얻는 것은 물리적 위치가 아니라 논리적 후보라는 점을 끝까지 기억해야 한다.
- 고착·천이 지연·브리지·단선·셀 내부 고장 모델이 실제 결함을 어떻게 근사하는지 설명한다.
- 스캔 체인의 시프트–캡처 동작을 이해하고, 체인 불량과 로직 불량을 구분한다.
- 불합격 관측점에서 거꾸로 추적하고 고장 시뮬레이션으로 후보에 점수를 매기는 과정을 직접 해 본다.
- 진단 분해능의 한계와 볼륨 진단이 체계적 원인을 찾는 방식을 이해한다.
- 메모리 비트맵의 무늬를 읽어 결함이 있을 만한 구조를 추정한다.
고장 모델: 결함을 논리의 말로 옮기기
물리적 결함은 무한히 다양하다. 비아 바닥의 보이드, 배선 사이에 낀 이물, 끊어진 게이트 콘택은 모양도 저항도 제각각이다. 테스트 패턴을 만드는 도구와 진단 도구는 이것을 그대로 다룰 수 없으므로, 결함이 회로의 논리 동작에 남기는 흔적만 추린 고장 모델(Fault model)을 쓴다. 고장 모델은 결함이 아니다. 결함의 전기적 증상을 논리 수준으로 옮긴 근사다.
| 고장 모델 | 가정 | 잘 맞는 실제 결함 | 드러나는 조건 |
|---|---|---|---|
| 고착 (Stuck-at 0/1) | 넷 하나가 0 또는 1에 고정 | 전원·접지로의 단락, 완전한 단선의 일부 | 느린 속도에서도 항상 |
| 천이 지연 (Transition) | 넷의 상승 또는 하강이 한 주기 안에 끝나지 않음 | 저항성 비아·콘택, 가는 배선, 약한 트랜지스터 | 실제 동작 속도, 낮은 전압 |
| 브리지 (Bridge) | 이웃한 두 넷이 연결됨. 센 쪽이 이기거나 AND·OR처럼 동작 | 배선 사이 금속 잔류물, 이물 | 두 넷이 반대 값일 때만 |
| 단선 (Open) | 넷의 일부가 구동단에서 떨어져 부유 | 비아 미접속, 끊어진 배선 | 부유 전위에 따라 달라짐. 패턴 순서에 의존하기도 함 |
| 셀 내부 (Cell-aware) | 표준 셀 안의 트랜지스터·콘택 결함을 회로 시뮬레이션으로 미리 계산 | 셀 내부 콘택 단선, 게이트–소스 단락 | 셀 입력의 특정 조합 |
고착 고장은 가장 단순하지만 여전히 기본이다. 넷이 \(n\)개면 고장은 \(2n\)개뿐이고, 고착 고장을 잡는 패턴은 다른 결함도 상당수 함께 잡는다. 그러나 저항성 결함은 고착 모델로 설명되지 않는다. 신호는 결국 올바른 값에 도달하지만 늦게 도달하기 때문이다. 이것을 잡으려면 값을 바꾸는 패턴(발사)과 한 주기 뒤에 읽는 패턴(캡처)을 실제 동작 속도로 이어서 준다.
스캔 설계: 칩 안에 심어 둔 관측점
칩의 핀은 수백~수천 개인데 내부 플립플롭은 수십만~수백만 개다. 핀만으로는 내부 상태를 정하지도, 읽지도 못한다. 스캔 설계(Scan design, DFT)는 플립플롭마다 입력 앞에 2:1 선택기(MUX)를 달아, 테스트 때는 플립플롭들이 한 줄의 시프트 레지스터로 이어지게 만든다. 이 줄이 스캔 체인(Scan chain)이다.
테스트 한 패턴은 세 단계다. ① 시프트 인: SE = 1로 두고 체인 길이만큼 클록을 주어 원하는 값을 모든 플립플롭에 밀어 넣는다. ② 캡처: SE = 0으로 바꾸고 클록을 한 번(지연 테스트는 실제 속도로 두 번) 준다. 조합 논리의 응답이 플립플롭에 담긴다. ③ 시프트 아웃: 다시 SE = 1로 두고 담긴 값을 밀어내 기대값과 비교한다. 패턴은 ATPG(Automatic test pattern generation)가 고장 목록을 보고 자동으로 만든다. 설계 하나에 스캔 셀은 약 105~107개, 패턴은 수천~수만 개 규모다.
핀 수와 테스트 시간을 줄이려고 대부분의 설계는 스캔 압축을 쓴다. 입력 쪽 해제기가 몇 개의 핀에서 수백 개의 짧은 체인으로 값을 펼치고, 출력 쪽 압축기(XOR 트리)가 여러 체인의 응답을 몇 개의 핀으로 묶는다. 압축비는 수십~수백 배다. 진단에는 불리하다. 압축기 출력의 한 비트가 틀렸을 때 어느 체인의 어느 셀이 틀렸는지를 거꾸로 풀어야 하고, 풀리지 않는 모호함이 남을 수 있다.
체인 불량과 로직 불량
스캔 진단은 체인이 멀쩡하다는 전제 위에 선다. 그래서 가장 먼저 캡처 없이 0011 0011…을 밀어 넣고 그대로 받아 보는 체인 테스트를 한다. 체인 어딘가의 셀 출력이 고착되어 있으면 그 셀을 지난 모든 값이 상수가 되어 나온다. 스캔 셀과 스캔 배선은 로직 면적의 꽤 큰 부분(약 10~30%)을 차지하므로 체인 불량도 드물지 않다. 체인 테스트만으로는 고장의 종류(0 고착인지 1 고착인지)만 알 수 있고 위치는 알 수 없다. 위치는 캡처 패턴으로 찾는다. 고장 난 셀보다 출구에 가까운 셀들은 캡처로 얻은 값을 온전히 내보내기 때문이다.
스캔 체인: 시프트 인 → 캡처 → 시프트 아웃
진단의 논리: 불합격에서 거꾸로 걷기
진단의 입력은 세 가지다. 설계 넷리스트, 적용한 패턴, 그리고 테스터의 불합격 로그(몇 번째 패턴에서 어느 스캔 셀·출력이 기대와 달랐는가). 여기서 출발해 원인 쪽으로 거슬러 가는 방식을 결과-원인(Effect-cause) 진단이라 한다. 반대로 모든 고장의 응답을 미리 계산해 사전으로 만들어 두고 찾아보는 원인-결과(Cause-effect) 방식도 있으나, 큰 설계에서는 사전이 지나치게 커서 주로 결과-원인 방식을 쓴다.
- 원뿔 교집합. 틀린 값을 캡처한 관측점 하나에 영향을 줄 수 있는 넷은 그 관측점의 입력 쪽으로 거슬러 올라간 원뿔(Fan-in cone) 안에만 있다. 결함이 하나라고 가정하면, 범인은 불합격한 모든 관측점의 원뿔이 겹치는 곳에 있다.
- 고장 시뮬레이션. 교집합 안의 넷마다 고장을 하나씩 가정하고 같은 패턴을 시뮬레이션해, 테스터가 본 것과 얼마나 같은지 센다.
- 점수와 순위. 일치율이 높은 순으로 후보 목록을 만든다.
아래 회로에는 고착 고장 하나가 숨어 있다. 테스터가 보는 것은 출력 Y1~Y3뿐이다. 입력을 바꿀 때마다 그 패턴이 적용되어 로그에 쌓이고, 30개 고장(넷 15개 × 0/1 고착)을 전부 고장 시뮬레이션해 점수를 다시 매긴다.
조합 회로 고장 진단: 원뿔 교집합과 일치율
논리 후보를 레이아웃으로 옮기기
진단 결과는 "넷 n6, 1 고착, 일치율 100%"처럼 논리 이름으로 나온다. 불량 분석에 필요한 것은 좌표다. 그래서 후보 넷을 배치·배선 데이터와 맞춰 그 넷이 지나는 금속 층, 선분, 비아의 목록으로 바꾼다. 레이아웃 인식 진단(Layout-aware diagnosis)은 한 걸음 더 나간다. 브리지 후보는 실제로 가까이 지나는 넷 쌍으로만 제한하고, 단선 후보는 넷을 분기점 기준으로 구간으로 나눠 "어느 분기의 수신단이 틀렸는가"로 끊어진 구간을 좁힌다. 같은 불합격 로그에서 후보 면적이 몇 배 줄어든다.
분해능의 한계와 볼륨 진단
진단의 품질은 두 숫자로 말한다. 정확도는 후보 목록 안에 실제 결함이 들어 있는 비율이고, 분해능은 목록이 얼마나 짧은가다. 분해능을 제한하는 요인은 다음과 같다.
- 등가 고장. 논리적으로 구별되지 않는 고장은 어떤 패턴을 더해도 한 묶음으로 남는다.
- 패턴 부족. 양산 패턴은 검출용으로 최소화되어 있다. 후보를 가르는 진단용 패턴을 추가로 만들어 다시 재면 목록이 줄어든다.
- 잘린 불합격 로그. 테스터는 시간 때문에 불합격을 일정 개수까지만 기록하고 멈추는 경우가 많다. 로그가 짧으면 원뿔이 덜 겹친다.
- 압축과 다중 결함. 압축기를 거친 응답은 모호함이 남고, 결함이 둘 이상이면 단일 고장 가정이 깨진다.
- 넷의 크기. 후보가 넷 하나로 줄어도 그 넷은 여러 금속 층에 걸쳐 수십~수백 µm를 달리고 비아를 여러 개 거칠 수 있다.
| 단계 | 남는 범위 | 대표 크기 |
|---|---|---|
| 테스트 불합격 (3장) | 다이 전체 | 한 변 약 5~10 mm, 넷 약 107~108개 |
| 스캔 진단 | 후보 넷 약 1~10개 | 넷 하나의 길이 수 µm~수백 µm, 여러 층 |
| 레이아웃 인식 진단 | 후보 구간·비아 몇 개 | 수 µm~수십 µm |
| 전기적 위치 추적 (6~8장) | 한 점 | 약 1 µm 안팎(광학 분해능) |
| 물리 분석 (10~12장) | 결함 자체 | 수 nm~수십 nm |
진단은 범위를 여러 자릿수 줄이지만 마지막 한 점은 주지 못한다. FIB 단면은 폭 수 µm의 구덩이를 한 번 파는 일이고, 한 번 파면 되돌릴 수 없다. 수백 µm 길이의 넷 어디를 팔지 모르는 채로 팔 수는 없다. 그래서 진단이 정한 영역 안에서 빛·레이저·전자 빔으로 한 점을 찾는 위치 추적이 뒤따른다.
볼륨 진단: 다이 하나가 아니라 수백 개를 묻는다
진단은 소프트웨어이므로 불량 다이 전부에 돌릴 수 있다. 다이 하나의 후보 목록은 모호해도, 수백 개의 목록을 겹치면 공통된 특징이 떠오른다. 특정 비아 층, 특정 표준 셀, 특정 배선 형상이 우연보다 훨씬 자주 지목되면 그것이 체계적 원인이다. 이것이 볼륨 진단(Volume diagnosis)이다. 주의할 점은 설계 안에 많이 있는 구조일수록 무작위 결함으로도 자주 지목된다는 것이다. 건수가 아니라 기대치 대비 비율을 봐야 한다.
볼륨 진단 파레토: 건수와 정규화
스캔 진단과 비트맵은 시료를 건드리지 않는다. 필요한 것은 테스터 시간과 설계 데이터뿐이고, 같은 다이를 몇 번이든 다시 잴 수 있다. 다만 진단용 패턴을 더 재려고 높은 전압이나 긴 스트레스를 걸면 약한 저항성 결함이 타 버리거나 오히려 붙어서 증상이 바뀔 수 있다. 추가 측정은 불량이 재현되는 가장 온화한 조건에서 한다.
알려 주는 것은 "어느 넷이, 어떤 논리적 행동으로" 틀렸는가다. 알려 주지 못하는 것은 넷 위의 정확한 지점, 결함의 물리적 정체, 그리고 그것이 왜 생겼는가다.
메모리 비트맵: 불량 주소로 그린 지도
메모리는 진단이 가장 쉬운 회로다. 모든 셀을 주소로 직접 쓰고 읽을 수 있으니, 불량 셀의 주소가 곧 위치다. 테스터나 내장 자가 테스트(BIST)가 불량 비트의 주소를 모으고, 이를 셀 배열의 물리적 배치대로 찍은 그림이 비트맵이다. 로직 진단이 넷 단위의 후보를 준다면 비트맵은 셀 하나(28 nm SRAM에서 약 0.1~0.2 µm² 수준) 단위의 위치를 준다. 그래서 SRAM은 새 공정의 결함을 배우는 창으로 쓰인다.
| 무늬 | 의심 위치 | 대표 결함 |
|---|---|---|
| 단일 비트 | 셀 내부 | 셀 트랜지스터·셀 콘택 결함, 작은 이물 |
| 쌍 비트 (이웃한 두 셀) | 두 셀이 공유하는 구조 | 공유 비트라인 콘택·전원 콘택 단선, 셀 사이 단락 |
| 행 전체 / 행 일부 | 워드라인, 행 구동 회로 | WL 단락(전체), WL 중간 단선(구동단에서 먼 쪽만) |
| 열 전체 / 열 일부 | 비트라인, BL 콘택, 열 선택 스위치 | BL 단락(전체), BL 단선·저항성 콘택(센스 앰프에서 먼 쪽만) |
| 십자 | 행과 열의 교차점 | 워드라인–비트라인 단락 |
| 이웃한 여러 열의 띠 | 센스 앰프, 쓰기 구동 | 한 데이터 비트를 맡는 주변 회로 고장 |
| 일정 간격의 줄무늬 | 열(행) 디코더 | 선택선 하나의 단선·단락 |
| 블록·덩어리 | 국소 영역 | 큰 이물, 긁힘, 국소적인 막 두께 이상 |
| 가장자리 | 배열 경계 | 패턴 밀도 차이에 따른 노광·식각·CMP 편차 |
| 흩어진 다수 | 없음(위치 정보 없음) | 셀 특성 산포, 동작 마진 부족 |
무늬와 함께 어떤 테스트에서 틀렸는가도 본다. 0을 읽을 때만 틀리는지 1을 읽을 때만 틀리는지, 쓰기 직후에는 맞다가 시간이 지나면 틀리는지(유지 불량), 낮은 전압에서만 틀리는지에 따라 같은 단일 비트라도 의심하는 트랜지스터가 달라진다.
주소 스크램블
테스터가 아는 것은 논리 주소다. 물리 배열에서 이웃한 셀이 논리 주소로도 이웃하지는 않는다. 열 MUX 때문에 한 데이터 비트의 열들이 묶여 있고, 배치 효율을 위해 행과 열이 접히거나 뒤집혀 있으며, 이웃 셀은 대개 거울 대칭이라 참/보수 비트라인의 위치도 번갈아 바뀐다. 논리 주소와 물리 위치 사이의 이 대응을 스크램블(Address scramble)이라 한다. 설계 정보로 이를 풀어(디스크램블) 그려야 무늬가 보인다. 풀지 않고 주소 순서대로 그리면 한 줄짜리 결함도 흩어진 점으로 보인다.
메모리 비트맵: 무늬 읽기와 주소 스크램블
진단 결과의 쓰임
진단의 산출물은 보고서가 아니라 다음 장비에 넣을 좌표다. 후보 넷을 레이아웃에 겹쳐 그리면 관측 영역(ROI)이 정해지고, 그 넷을 구동하는 셀과 받는 셀의 위치, 넷이 지나는 층이 다음 단계의 계획을 정한다.
- 어디를 볼 것인가. 포톤 에미션과 레이저 자극(6·7장)은 다이 전체를 훑을 수도 있지만, 후보 넷 주변 수십 µm로 시야를 좁히면 배율을 올려 약한 신호를 잡을 수 있다.
- 어떻게 동작시킬 것인가. 진단은 불합격하는 패턴과 그때 후보 넷이 가져야 할 값을 알려 준다. 동적 분석(8장)에서 그 패턴을 반복해 돌린다.
- 어느 층까지 내려갈 것인가. 후보 넷이 지나는 가장 낮은 층이 디프로세싱(9장)의 목표 깊이다.
- 어느 다이를 고를 것인가. 볼륨 진단에서 체계적 원인으로 지목된 특징을 가진 다이, 그중 후보 목록이 가장 짧은 다이를 물리 분석 시료로 고른다. 파괴 분석은 다이 하나에 며칠이 걸리므로 고르는 일이 결과를 좌우한다.
스무 개 가운데 열일곱 개가 같은 길을 가리켰다
앞에서 불량 다이가 웨이퍼 가장자리 고리에 몰려 있고, 1.0 V에서는 정상이지만 0.85 V 아래와 고주파 모서리에서 스캔 테스트에 떨어지며, IDDQ는 정상임을 알았다. 그 가운데 20개 다이의 불합격 로그를 모아 스캔 진단을 돌렸다.
20개 중 17개에서 같은 종류의 넷이 지목되었다. 다이마다 넷의 이름은 다르지만 레이아웃에 겹쳐 보니 공통점이 있었다. 모두 M2와 M3 사이를 V2로 여러 번 오르내리는 긴 신호선이다. 고장 모델로는 천이 지연이 잘 맞는다. 값이 틀린 것이 아니라 늦는 것이다. 저전압·고주파에서만 불량이라는 3장의 관측과 같은 방향이다.
핵심 정리
- 고장 모델(고착, 천이 지연, 브리지, 단선, 셀 내부)은 결함의 논리적 증상을 옮긴 근사다. 어느 모델이 잘 맞는지 자체가 단서가 된다.
- 스캔 체인은 모든 플립플롭을 제어점이자 관측점으로 만든다. 체인 테스트로 체인 불량을 먼저 가르고, 체인 불량의 위치는 캡처 패턴에서 상수가 시작되는 경계로 찾는다.
- 로직 진단은 불합격 관측점의 원뿔 교집합으로 후보를 줄이고, 고장 시뮬레이션의 일치율 TFSF / (TFSF + TFSP + TPSF)로 순위를 매긴다. 합격한 패턴도 증거다.
- 진단의 답은 넷이지 점이 아니다. 등가 고장, 패턴 부족, 잘린 로그, 압축이 분해능을 제한하고, 후보 넷은 여러 층과 수십~수백 µm에 걸친다. 물리적 위치 추적이 필요한 이유다.
- 볼륨 진단은 많은 다이의 후보를 통계로 묶어 체계적 원인을 찾는다. 건수가 아니라 설계 비율로 정규화한 기대치 대비로 본다.
- 비트맵은 불량 주소를 물리 배열로 그린 그림이다. 무늬의 모양은 고장 난 공유 구조(워드라인, 비트라인, 센스 앰프, 디코더)의 모양이며, 스크램블을 풀어야 보인다.
확인 퀴즈
셀 12개짜리 스캔 체인(셀 12가 출구)에서 캡처 패턴의 시프트 아웃 결과, 먼저 나온 5비트는 패턴에 따라 변하고 뒤의 7비트는 항상 0이었다. 고착된 셀은?
어떤 후보 고장을 시뮬레이션했더니 테스터가 본 불합격 비트 10개 중 8개를 재현했고, 테스터가 합격으로 본 비트를 불합격으로 예측한 것은 없었다. 일치율 S는?
디스크램블한 비트맵에서 한 열의 셀 가운데 센스 앰프에서 먼 쪽 절반만 불량이다. 가장 그럴듯한 원인은?
볼륨 진단에서 지목 건수가 가장 많은 층은 콘택이었다. 이것만으로 콘택 공정이 원인이라고 할 수 없는 이유는?