Setup Hold violation, 원인과 해결 방법 정리

Setup Hold violation, 원인과 해결 방법 정리

단체 사진을 찍을 때 사진사는 “하나, 둘, 셋” 하고 셔터를 누릅니다. 셔터가 눌리기 전에 모두 자세를 잡고 있어야 하고, 셔터가 눌린 직후에도 잠깐은 움직이지 말아야 하죠. 너무 늦게 자리를 잡아도, 너무 빨리 움직여도 사진이 흔들립니다.

디지털 칩 안의 플립플롭도 클록이라는 셔터에 맞춰 데이터를 찍습니다. 데이터가 클록 직전에 미리 도착해 있어야 하고, 클록 직후에도 잠시 그대로 있어야 하죠. 이 규칙을 어기는 것이 Setup Hold violation입니다. 이 글에서는 정적 타이밍 분석(STA)에서 이 두 위반이 무엇을 뜻하고, 왜 생기며, 어떻게 고치는지 정리합니다.

STA와 Setup, Hold의 정의

정적 타이밍 분석(STA, Static Timing Analysis)은 회로에 실제 입력 패턴을 넣어 시뮬레이션하지 않고, 모든 신호 경로의 지연을 계산해 타이밍 규칙을 지키는지 검사하는 방법입니다. 수십억 개 트랜지스터가 든 칩의 모든 경로를 빠짐없이 확인할 수 있어 설계 사인오프의 핵심 단계로 쓰이죠.

셋업 시간(Setup Time)은 클록 에지보다 앞서 데이터가 안정되어 있어야 하는 최소 시간이고, 홀드 시간(Hold Time)은 클록 에지 뒤에도 데이터가 바뀌지 않고 유지되어야 하는 최소 시간입니다. 사진으로 치면 셋업은 ‘셔터 전에 자세 잡기’, 홀드는 ‘셔터 직후 잠깐 멈춰 있기’죠. 데이터가 이 창을 침범하면 플립플롭이 0도 1도 아닌 불안정한 상태에 빠질 수 있습니다.

타이밍 검사가 필요한 이유

동기식 디지털 회로는 모든 플립플롭이 같은 클록에 맞춰 데이터를 주고받습니다. 한 플립플롭이 클록에 맞춰 데이터를 내보내면, 그 데이터는 논리 게이트와 배선을 지나 다음 플립플롭에 도착하고, 다음 클록에서 그 플립플롭이 데이터를 받아들이죠.

문제는 이 경로를 지나는 데 시간이 걸린다는 점입니다. 게이트마다 지연이 있고, 배선이 길수록 지연이 커지죠. 공정, 전압, 온도에 따라 지연이 달라지기도 합니다. 그래서 데이터가 너무 늦지도, 너무 빠르지도 않게 도착하는지 모든 경로에서 확인해야 칩이 목표 주파수로 정확하게 동작합니다.

Setup Hold violation이 생기는 원리

Setup 위반: 데이터가 너무 늦다

데이터를 보내는 플립플롭을 런치(launch), 받는 플립플롭을 캡처(capture)라고 부릅니다. 셋업 검사는 런치 클록에서 출발한 데이터가 다음 캡처 클록 에지보다 셋업 시간만큼 먼저 도착하는지 확인하죠. 경로가 너무 길거나 느리면 데이터가 늦게 도착해 셋업 위반이 됩니다.

Hold 위반: 데이터가 너무 빠르다

홀드 검사는 반대로, 런치 클록에서 출발한 새 데이터가 같은 클록 에지에서 캡처 플립플롭이 이전 데이터를 받는 중에 너무 일찍 도착해 덮어쓰지 않는지 확인합니다. 경로가 너무 짧고 빠르면, 캡처 플립플롭이 이전 값을 다 받기도 전에 새 값이 밀려와 홀드 위반이 생기죠.

타이밍 조건 (클록 스큐 = 캡처 클록 도착 시각 – 런치 클록 도착 시각)

  1. Setup 조건: 클록-출력 지연 + 최대 경로 지연 + 셋업 시간 ≤ 클록 주기 + 클록 스큐
  2. Hold 조건: 클록-출력 지연 + 최소 경로 지연 ≥ 홀드 시간 + 클록 스큐
  3. 여유 시간(Slack) = 요구 시각과 실제 도착 시각의 차이. 음수이면 위반이다.

두 식을 나란히 보면 중요한 차이가 보입니다. Setup 조건에는 클록 주기가 들어 있지만, Hold 조건에는 들어 있지 않죠. 또 셋업은 가장 느린 경로와 느린 조건(공정 코너)이, 홀드는 가장 빠른 경로와 빠른 조건이 문제가 됩니다. 그래서 STA는 여러 공정·전압·온도 조건에서 두 검사를 모두 수행합니다.

위반을 해결하는 방법

Setup 위반 해결

셋업 위반은 경로를 빠르게 만들면 풀립니다. 논리 단계를 줄이도록 회로를 재구성하거나, 긴 경로 중간에 플립플롭을 넣어 여러 클록으로 나누는 파이프라이닝(Pipelining), 셀을 더 크고 빠른 것으로 바꾸는 업사이징, 문턱 전압이 낮은 빠른 셀로 바꾸기 등이 있죠. 셀을 가까이 배치해 배선 지연을 줄이거나, 캡처 클록을 의도적으로 조금 늦추는 방법도 씁니다.

Hold 위반 해결

홀드 위반은 반대로 너무 빠른 경로를 늦추면 풀립니다. 데이터 경로에 버퍼나 지연 셀을 넣어 도착을 늦추는 것이 가장 흔한 방법이죠. 클록 스큐가 원인이라면 클록 트리를 조정하기도 합니다. 홀드는 클록 트리가 완성된 뒤 실제 스큐를 반영해야 정확히 판단할 수 있어, 보통 CTS 이후에 본격적으로 고칩니다.

여기서 많은 사람이 클록 주파수를 낮추면 홀드 위반도 해결된다고 오해합니다. 앞의 식에서 보듯 홀드 조건에는 클록 주기가 없어서, 주파수를 아무리 낮춰도 홀드 위반은 사라지지 않죠. 두 위반의 해결 방향이 정반대라, 셋업을 고치려고 경로를 빠르게 하면 홀드가 깨지고 그 반대도 일어날 수 있다는 점도 주의해야 합니다.

실리콘에서의 의미와 설계 현장

두 위반이 생산된 칩에 미치는 영향은 크게 다릅니다. 셋업 위반이 남은 칩은 목표 주파수에서는 오동작하지만, 클록을 낮추면 동작할 수 있습니다. 반면 홀드 위반이 남은 칩은 어떤 주파수에서도 제대로 동작하지 않을 수 있죠. 그래서 현장에서는 홀드 위반을 테이프아웃 전에 반드시 없애야 할 치명적인 문제로 다룹니다.

실제 설계에서는 수천, 수만 개의 위반 경로가 보고되기도 합니다. 엔지니어는 위반을 원인별로 묶고, 셋업과 홀드, 면적과 전력의 균형을 맞추며 하나씩 줄여 나가죠. Setup Hold violation을 정확히 이해하는 것은 백엔드 엔지니어뿐 아니라 RTL 설계자에게도 중요합니다. 지나치게 긴 조합 논리를 한 클록에 몰아넣는 습관이 셋업 위반의 근본 원인이 되기 때문입니다.

Setup과 Hold 비교 표

구분SetupHold
검사 내용데이터가 클록 전에 충분히 일찍 도착하는가데이터가 클록 직후 너무 일찍 바뀌지 않는가
비교하는 클록 에지다음 캡처 에지같은 캡처 에지
문제가 되는 경로가장 느린 경로가장 빠른 경로
주로 문제가 되는 조건느린 공정 코너빠른 공정 코너
클록 주파수의 영향주파수를 낮추면 완화주파수와 무관
대표 해결책파이프라이닝, 셀 업사이징, 저문턱 셀버퍼·지연 셀 삽입, 스큐 조정
실리콘에 남으면낮은 주파수에서는 동작 가능모든 주파수에서 오동작 가능

핵심 정리

셋업은 데이터가 다음 클록 에지 전에 충분히 일찍 도착하라는 조건이고, 홀드는 같은 클록 에지 직후에 데이터가 너무 빨리 바뀌지 말라는 조건입니다. Setup Hold violation은 각각 너무 느린 경로와 너무 빠른 경로에서 생기며, 셋업은 경로를 빠르게, 홀드는 경로를 늦춰 고치죠. 홀드 조건에는 클록 주기가 없어 주파수를 낮춰도 해결되지 않는다는 점이 가장 중요한 차이입니다.

단체 사진에서 늦게 자리 잡는 사람도, 셔터가 끝나기 전에 움직이는 사람도 사진을 망치듯, 데이터도 너무 늦어도 너무 빨라도 안 됩니다. 타이밍 보고서를 볼 때 ‘이 경로는 너무 늦은가, 너무 빠른가’부터 묻는 습관을 들이면 해결책이 자연스럽게 따라옵니다.

면접 대비 질문

면접 대비 질문셋업 위반과 홀드 위반 중 실리콘에서 더 치명적인 것은 무엇이고, 그 이유는 무엇인가요?

[답변 포인트] 홀드 위반이 더 치명적이라고 답하고, 셋업 조건에는 클록 주기가 포함되어 주파수를 낮추면 여유가 생기지만 홀드 조건은 같은 클록 에지 안의 경쟁이라 주파수와 무관하다는 점을 식으로 설명합니다. 그래서 셋업 위반이 남은 칩은 낮은 주파수에서 동작할 수 있지만, 홀드 위반이 남은 칩은 어떤 주파수에서도 오동작할 수 있다고 정리합니다. 해결책으로 빠른 코너에서의 홀드 검사와 CTS 이후 지연 셀 삽입을 언급하면 좋습니다.