스캔 체인 원리, DFT로 칩 내부를 시험하는 방법

스캔 체인 원리, DFT로 칩 내부를 시험하는 방법

요즘 자동차에는 운전석 아래에 진단 포트가 있습니다. 정비소에서 장비를 꽂으면 엔진, 변속기, 센서 상태를 한눈에 읽을 수 있죠. 이 포트가 없다면 정비사는 엔진을 하나하나 뜯어 봐야 고장 부위를 찾을 수 있을 겁니다. 처음 차를 설계할 때부터 진단할 길을 만들어 둔 덕분입니다.

칩도 마찬가지입니다. 수십억 개 트랜지스터가 든 칩을 밖에서 핀 몇 개로만 시험하기는 거의 불가능하죠. 그래서 설계 단계에서부터 내부를 들여다볼 통로를 넣어 둡니다. 그 대표적인 통로가 스캔 체인입니다. 이 글에서는 테스트 용이성 설계(DFT)의 개념과 이 통로의 동작 원리, 그리고 그 비용과 보완 기법을 정리합니다.

DFT란 무엇인가

DFT(Design for Testability, 테스트 용이성 설계)는 생산된 칩이 제대로 만들어졌는지 쉽고 빠르게 시험할 수 있도록, 설계 단계에서 시험용 회로를 미리 넣는 기법입니다. 여기서 시험은 기능이 맞게 설계되었는지 보는 ‘검증’과 다릅니다. 설계는 맞았다는 전제에서, 공장에서 만든 칩 하나하나에 제조 결함이 없는지 가려내는 일이죠.

칩은 미세한 먼지 하나, 배선이 살짝 끊기거나 붙는 작은 결함으로도 불량이 됩니다. 이런 결함을 놓쳐 고객에게 불량 칩이 가면 큰 손해가 생기죠. DFT는 결함을 빠짐없이, 그러면서도 짧은 시간에 찾아내기 위한 설계 장치입니다.

완성된 칩은 왜 시험하기 어려운가

시험의 핵심 개념은 두 가지입니다. 회로 내부의 특정 지점을 원하는 값으로 만들 수 있는 정도인 제어 가능성(Controllability), 그리고 내부 지점의 값을 바깥에서 읽어 낼 수 있는 정도인 관측 가능성(Observability)이죠.

칩 깊숙한 곳의 플립플롭은 입력 핀에서 수많은 논리를 거쳐야 도달합니다. 특정 값을 넣으려면 아주 긴 입력 순서를 설계해야 하고, 그 결과가 출력 핀까지 나오기도 어렵죠. 상태를 기억하는 순차 회로가 수백만 개 얽혀 있으면, 바깥 핀만으로 모든 결함을 찾는 시험 패턴을 만드는 것은 현실적으로 불가능에 가깝습니다. 진단 포트 없는 자동차와 같은 상황입니다.

스캔 체인의 구조와 동작

스캔 플립플롭과 체인

스캔 방식의 출발점은 일반 플립플롭을 스캔 플립플롭(Scan Flip-Flop)으로 바꾸는 것입니다. 플립플롭 입력 앞에 선택기(MUX)를 하나 달아, 평소에는 원래 회로의 데이터를 받고, 시험 모드에서는 옆 플립플롭의 출력을 받게 하죠. 이렇게 하면 시험 모드에서 플립플롭들이 줄줄이 이어져 하나의 긴 시프트 레지스터가 됩니다. 이것이 스캔 체인입니다.

체인의 맨 앞은 칩의 시험 입력 핀에, 맨 끝은 시험 출력 핀에 연결됩니다. 그러면 바깥에서 비트를 하나씩 밀어 넣어 내부 플립플롭을 원하는 값으로 채우고, 반대로 내부 값을 하나씩 밀어내 읽을 수 있죠. 깊숙한 곳의 플립플롭이 모두 바깥과 직접 연결된 셈이라, 제어 가능성과 관측 가능성이 크게 높아집니다.

시프트, 캡처, 시프트

스캔 시험 한 번의 흐름

  1. 시험 모드를 켜고, 시험 패턴을 체인에 한 비트씩 밀어 넣는다(시프트 인).
  2. 정상 모드로 바꿔 클록을 한 번 준다. 조합 논리를 지난 결과가 플립플롭에 저장된다(캡처).
  3. 다시 시험 모드로 바꿔 저장된 결과를 밀어낸다(시프트 아웃).
  4. 밀어낸 결과를 기대값과 비교해 불량 여부를 판정한다.
  5. 결과를 밀어내는 동안 다음 패턴을 함께 밀어 넣어 시간을 아낀다.

이 방식 덕분에 복잡한 순차 회로 시험이 ‘플립플롭 사이의 조합 논리를 하나씩 시험하는 문제’로 바뀝니다. 조합 논리 시험 패턴은 ATPG(Automatic Test Pattern Generation) 도구가 자동으로 만들어 주죠. 이때 신호선이 0이나 1에 고정되어 버리는 고착 고장(Stuck-at Fault), 신호 변화가 늦게 전달되는 지연 고장 같은 결함 모델을 기준으로, 전체 결함 가운데 몇 %를 찾아낼 수 있는지를 고장 검출률(Fault Coverage)로 평가합니다.

DFT의 비용과 보완 기법

스캔에는 대가가 따릅니다. 플립플롭마다 선택기가 붙으니 면적이 늘고, 데이터 경로에 지연이 조금 더해지죠. 시프트할 때는 수많은 플립플롭이 동시에 값을 바꿔 정상 동작보다 전력이 크게 오르기도 합니다. 흔히 스캔을 넣으면 시험 문제가 다 해결된다고 생각하지만, 이런 부담과 함께 시험 시간이라는 비용까지 관리해야 하죠.

체인이 길수록 비트를 밀어 넣는 데 시간이 오래 걸립니다. 그래서 체인을 여러 개로 나누고, 바깥 핀 몇 개로 들어온 데이터를 칩 안에서 풀어 수많은 체인에 나눠 주는 스캔 압축(Scan Compression)을 함께 씁니다. 또 메모리처럼 규칙적인 블록은 칩 안에 시험 회로를 넣어 스스로 시험하게 하는 BIST(Built-In Self-Test)를 쓰죠. 칩과 칩 사이의 연결은 IEEE 1149.1로 표준화된 JTAG 바운더리 스캔으로 확인합니다.

테스트 비용과 산업의 의미

반도체 시험에는 고가의 자동 테스트 장비(ATE)가 쓰이고, 장비를 쓰는 시간이 곧 비용입니다. 칩 하나당 시험 시간을 조금만 줄여도 수많은 칩에 곱해지면 큰 차이가 되죠. 그래서 DFT는 품질과 원가를 동시에 좌우하는 설계 영역으로 다뤄집니다.

자동차나 의료 기기처럼 불량을 거의 허용하지 않는 분야에서는 고장 검출률 요구가 특히 높습니다. 출하된 뒤에도 칩이 주기적으로 스스로를 점검하는 기능이 요구되기도 하죠. 스캔 체인 원리를 이해하는 것은 DFT 엔지니어뿐 아니라, 웨이퍼 테스트와 최종 테스트를 맡는 테스트 엔지니어에게도 기본이 됩니다.

주요 DFT 기법 비교 표

구분스캔스캔 압축BIST바운더리 스캔(JTAG)
대상논리 회로의 플립플롭대규모 논리 회로메모리, 일부 논리칩의 입출력 핀과 기판 연결
원리플립플롭을 시프트 레지스터로 연결적은 핀으로 많은 체인 구동칩 안의 회로가 패턴 생성·판정핀마다 시험 셀을 두고 직렬 연결
장점제어·관측 가능성 대폭 향상시험 시간과 데이터량 감소외부 장비 의존 감소기판 연결 불량 진단
부담면적, 지연, 시프트 전력압축 회로 추가시험 회로 면적핀별 셀 추가

핵심 정리

DFT는 생산된 칩의 제조 결함을 쉽고 빠르게 찾기 위해 설계 단계에서 시험 회로를 넣는 기법입니다. 스캔 체인은 플립플롭을 시험 모드에서 하나의 시프트 레지스터로 이어, 바깥에서 내부 값을 채우고 읽을 수 있게 하죠. 시프트, 캡처, 시프트를 반복하며 ATPG가 만든 패턴으로 고장 검출률을 높이고, 스캔 압축과 BIST, 바운더리 스캔이 그 한계를 보완합니다.

자동차의 진단 포트가 설계할 때부터 들어가듯, 칩의 시험 통로도 처음부터 계획해야 합니다. 설계 직무든 테스트 직무든 ‘이 회로를 나중에 어떻게 시험할 것인가’를 함께 묻는 습관이 좋은 칩을 만드는 출발점입니다.

면접 대비 질문

면접 대비 질문스캔 체인의 동작 원리를 설명하고, 스캔을 넣었을 때 생기는 부담과 그 대응 방법을 말해 보세요.

[답변 포인트] 플립플롭 앞에 선택기를 달아 시험 모드에서 시프트 레지스터로 연결하고, 시프트 인, 캡처, 시프트 아웃으로 내부 값을 제어하고 관측한다는 원리를 먼저 설명합니다. 부담으로는 면적 증가, 데이터 경로 지연, 시프트 중 전력 급증, 긴 시험 시간을 듭니다. 대응으로 체인 분할과 스캔 압축, 시프트 주파수 조절과 저전력 패턴 생성, 타이밍에 민감한 경로를 고려한 스캔 배치를 언급하면 좋습니다.