---
title: "Transition fault: 결국 맞아지는 값도 고장이 될 수 있다"
author: "브레이브브라우저쓰자"
published_at: "2026-11-04T11:41:03.563Z"
updated_at: "2026-10-06T02:19:59.369Z"
tags: ["transition fault"]
canonical_url: "https://ariser.io/@writer_a9817d5a8de0/transition-fault-%EA%B2%B0%EA%B5%AD-%EB%A7%9E%EC%95%84%EC%A7%80%EB%8A%94-%EA%B0%92%EB%8F%84-%EA%B3%A0%EC%9E%A5%EC%9D%B4-%EB%90%A0-%EC%88%98-%EC%9E%88%EB%8B%A4"
ai_assisted: true
---

# Transition fault: 결국 맞아지는 값도 고장이 될 수 있다

이 글은 AI가 활용됐습니다.

[원문](https://ariser.io/@writer_a9817d5a8de0/transition-fault-%EA%B2%B0%EA%B5%AD-%EB%A7%9E%EC%95%84%EC%A7%80%EB%8A%94-%EA%B0%92%EB%8F%84-%EA%B3%A0%EC%9E%A5%EC%9D%B4-%EB%90%A0-%EC%88%98-%EC%9E%88%EB%8B%A4)

논리 값은 결국 맞아지지만 필요한 시각보다 늦게 도착하는 고장은 정적인 검사에서 보이지 않을 수 있다. Transition fault는 노드의 0→1 또는 1→0 전이가 너무 느린 상태를 모델링한다. 중요한 것은 최종 값을 한 번 확인하는 것이 아니라, 전이를 시작한 뒤 정해진 시간 안에 결과를 관측하는 것이다.

## 값이 틀리는 고장과 시간이 틀리는 고장

출력이 0에 고정된 stuck-at-0이라면 충분히 기다려도 1이 되지 않는다. 반면 slow-to-rise 고장은 1로 바뀌지만 늦을 수 있다. Siemens의 ATPG 설명도 stuck-at의 정적 값과 동작 속도에서 전이를 확인하는 패턴을 구분한다. [Siemens의 ATPG fault model 설명](https://blogs.sw.siemens.com/xcelerator-academy/2026/04/20/unlocking-efficiency-a-deep-dive-into-tessent-atpg-for-digital-ic-testing/)

이 글의 가상 회로는 송신 플립플롭의 Q에서 하나의 논리 경로를 거쳐 수신 플립플롭의 D에 연결된다. 경로는 반전이 없고 다른 입력으로 차단되지 않는다고 가정하자. 처음 Q=0으로 초기화하고, 0ns의 launch 에지에서 Q가 1로 바뀌도록 만든다. 수신 플립플롭의 capture 에지는 2ns 뒤에 온다.

최대 clock-to-Q가 0.2ns, 배선 지연이 0.1ns, 수신 setup이 0.2ns라면 조합 논리에 남는 예산은 `2−0.2−0.1−0.2=1.5ns`다. 정상 논리 지연이 0.8ns면 D는 1.1ns에 바뀌어 1.8ns의 setup 마감 전에 안정된다. 지연이 2.5ns인 가상 고장은 2.8ns에 바뀌므로 capture에서 기대한 1을 보장하지 못한다.

이 예제에서는 늦은 입력이 capture 시점까지 확실히 0으로 남는다고 놓아 차이를 얻는다. 실제 입력이 setup·hold 창 안에서 바뀌면 결과는 불확실할 수 있으며, 작은 지연 증가가 항상 깔끔한 0과 1 차이를 만드는 것은 아니다. 테스트 타이밍과 관측 조건을 정해야 하는 이유다.

## 전이를 만들지 않으면 같은 고장도 보이지 않는다

처음부터 Q=1로 둔 채 같은 경로를 검사하면 slow-to-rise를 자극하는 0→1 전이가 없다. 고장이 있어도 최종 값은 정상과 같을 수 있다. 반대로 Q를 바꿨더라도 이후 AND 게이트의 다른 입력이 0이면 출력 차이는 막힌다. 초기 상태, 전이 생성, 차이의 전달을 모두 만족해야 한다.

launch와 capture를 기능 입력에서 두 에지로 수행할 때 두 번째 상태는 회로의 다음 상태 함수에 영향을 받는다. scan에서 자유롭게 넣을 수 있는 두 벡터를 기능 에지만으로 항상 만들 수 있다고 가정해서는 안 된다. 다른 launch 방식도 있을 수 있지만, 어느 입력에서 전이를 시작했는지와 scan enable이 언제 안정됐는지를 시험 조건에 기록해야 한다.

또한 slow-to-rise를 잡은 패턴이 slow-to-fall도 자동으로 잡는 것은 아니다. 하강 전이는 시작 상태와 기대 응답이 반대다. 두 방향을 구분해 자극과 관측을 만들어야 한다.

## capture 간격을 늘리면 숨겨지는 고장

앞의 회로에서 capture를 20ns 뒤로 옮기면 정상 경로와 2.8ns에 도착하는 고장 경로 모두 충분히 일찍 1이 된다. 그때 결과가 같다는 것은 정적 값의 전달을 확인한 것이지 원래 2ns 간격의 동작을 확인한 것이 아니다. shift를 느리게 수행하는 것과 launch–capture 간격을 동작 속도로 만드는 것은 분리해서 읽어야 한다.

반대로 모든 경로에 동일하게 짧은 시간을 강제한다고 올바른 검사가 되는 것도 아니다. 실제 설계의 클럭 관계와 유효 경로 조건을 반영해야 한다. 테스트에서 큰 동시 전환이 전원 전압을 흔들면 정상 경로의 지연도 달라질 수 있다. 패턴의 실패가 대상 지연 결함인지 테스트 조건의 문제인지 분석할 근거가 필요하다.

Transition fault는 특정 노드의 전이 결함을 추상화한 모델이다. 이 모델의 높은 coverage가 모든 경로의 모든 작은 지연 결함을 검사했다는 뜻은 아니다. 실제로 어떤 경로를 통해 차이를 전달했고 어느 capture 간격을 사용했는지가 해석에 남는다.

정적인 값이 맞는 것에서 시간 안에 값이 도착하는 것으로 질문을 옮기면 transition fault의 목적이 보인다. 올바른 초기화와 전이, 차이가 막히지 않는 경로, 정해진 시각의 capture가 함께 있어야 늦게 도착하는 고장을 관측할 수 있다.

