셋업 시간 vs 홀드 시간: 정의·지연·주파수·수정 방법 비교

둘 다 플립플롭이 데이터를 올바르게 받아들이기 위한 시간 조건이지만, 지키는 방향이 반대입니다. 셋업 시간은 클럭 에지보다 앞서 데이터를 확정해 두어야 하는 시간으로, 데이터가 너무 늦지 않은지를 확인합니다. 홀드 시간은 에지 이후에도 데이터를 유지해야 하는 시간으로, 데이터가 너무 빠르지 않은지를 확인합니다. 셋업 조건에는 클럭 주기가 들어가므로 클럭을 늦추면 해결되지만, 홀드는 같은 에지끼리의 비교이므로 주파수를 낮춰도 해결되지 않습니다.

비교 항목셋업 시간홀드 시간
정의클럭의 유효 에지보다 앞서 데이터를 확정해 두어야 하는 최소 시간클럭의 유효 에지 이후에도 데이터를 바꾸지 않고 유지해야 하는 최소 시간
확인하는 것데이터가 너무 늦지 않은지. 다음 에지에 맞출 수 있는지데이터가 너무 빠르지 않은지. 같은 에지에서 새 데이터가 끼어들지 않는지
비교하는 에지송신 측 에지와 1주기 뒤의 수신 측 에지송신 측과 수신 측의 같은 에지
검사에 쓰는 지연최대(max) 지연. 가장 느린 경로최소(min) 지연. 가장 빠른 경로
조건식(기준)tcq(max) + tlogic(max) + tsu ≤ T + tskewtcq(min) + tlogic(min) ≥ th + tskew(tskew는 수신 측 클럭이 늦어지는 방향을 양으로 함)
클럭 주파수와의 관계주기 T가 식에 들어갑니다. 최대 동작 주파수를 결정합니다주기가 식에 들어가지 않습니다. 주파수와 무관합니다
클럭 스큐의 영향수신 측 클럭이 늦어지면 여유가 늘어납니다수신 측 클럭이 늦어지면 여유가 줄어듭니다
위반 수정 방법논리 단수 줄이기, 구동력이 큰 셀이나 문턱 전압이 낮은 빠른 셀로 교체, 배치를 가깝게, 파이프라인으로 경로 분할, 클럭 늦추기데이터 경로에 지연용 버퍼 삽입, 문턱 전압이 높은 느린 셀로 교체, 클럭 스큐 조정
위반하기 쉬운 코너느린 조건. 느린 공정·낮은 전압·고온(미세 공정에서는 저온 쪽이 느린 경우도 있음)빠른 조건. 빠른 공정·높은 전압·저온 등
칩 제작 후 발견되면클럭을 늦추면 동작합니다. 성능은 떨어집니다주파수를 낮춰도 해결되지 않아 올바르게 동작하지 않습니다. 수정하려면 설계 변경이 필요한 경우가 많습니다

수치는 대략적인 자릿수 기준이며, 공정 세대와 제품에 따라 달라져요.

상황별 선택 기준

셋업 시간
최대 동작 주파수를 정할 때, 느린 경로를 찾아 빠르게 만들 때. 정적 타이밍 분석에서는 max 지연과 느린 코너로 확인합니다.
홀드 시간
플립플롭 사이의 경로가 짧을 때, 클럭 스큐가 클 때. min 지연과 빠른 코너로 확인하며, 보통 클럭 트리를 만든 뒤에 수정합니다.
조합
한쪽을 고치면 다른 쪽이 나빠질 수 있습니다. 홀드를 고치려고 버퍼를 너무 많이 넣으면 셋업 여유가 줄어들므로, 모든 코너에서 둘 다 동시에 만족해야 합니다.

자주 묻는 질문

홀드 위반은 왜 클럭을 늦춰도 해결되지 않나요?

홀드 조건은 송신 측과 수신 측의 같은 클럭 에지끼리 비교하므로, 식에 클럭 주기가 들어가지 않기 때문입니다. 데이터 경로에 버퍼를 넣어 늦추는 등 경로의 지연 자체를 바꿔서 수정합니다.

셋업 확인에 max, 홀드 확인에 min 지연을 쓰는 이유는 무엇인가요?

셋업은 데이터가 가장 늦게 도착할 때 다음 에지에 맞출 수 있는지가 문제이므로 최대 지연으로 확인합니다. 홀드는 새 데이터가 가장 빨리 도착할 때 이전 데이터를 망가뜨리지 않는지가 문제이므로 최소 지연으로 확인합니다.

셋업 시간이나 홀드 시간을 지키지 못하면 어떻게 되나요?

플립플롭이 잘못된 값을 받아들이거나, 출력이 한동안 0도 1도 정해지지 않는 준안정(메타스테이블) 상태가 됩니다. 비동기 신호에서는 이를 완전히 피할 수 없으므로, 2단 이상의 플립플롭으로 동기화해서 받습니다.

이해도 확인

플립플롭의 셋업 시간에 대한 설명으로 올바른 것은?

  1. A클록 에지 이후에 데이터를 계속 유지해야 하는 최소 시간
  2. B클록 에지 이전에 데이터 입력이 안정되어 있어야 하는 최소 시간
  3. C전원을 켠 후 동작하기까지의 시간
정답과 해설 보기

정답: B. 클록 에지 이전에 데이터 입력이 안정되어 있어야 하는 최소 시간

플립플롭이 올바르게 받아들이려면 클록 에지보다 일정 시간 전부터 데이터가 안정되어 있어야 하며, 이것이 셋업 시간입니다. 데이터 경로의 지연이 클록 주기에서 셋업 시간을 뺀 값을 넘으면 위반이 되며, 클록을 느리게 하면 해소할 수 있습니다. 에지 이후 데이터를 유지해야 하는 시간은 홀드 시간이며, 둘 중 하나라도 만족하지 못하면 잘못된 값의 취득이나 메타스터빌리티의 원인이 됩니다.

플립플롭의 홀드 시간에 대한 설명으로 올바른 것은?

  1. A클록의 유효 에지 전에 데이터 입력을 확정해 두어야 하는 시간
  2. B클록이 들어온 후 출력이 바뀔 때까지의 시간
  3. C클록의 유효 에지 이후에도 데이터 입력을 바꾸지 않고 유지해야 하는 시간
정답과 해설 보기

정답: C. 클록의 유효 에지 이후에도 데이터 입력을 바꾸지 않고 유지해야 하는 시간

홀드 시간은 클록 에지 이후에도 데이터를 안정적으로 유지해야 하는 최소 시간입니다. 앞단 플립플롭에서 다음 단까지의 경로가 너무 짧으면, 같은 에지로 갱신된 새 데이터가 다음 단에 너무 빨리 도달하여 위반이 됩니다. 주기와 무관하므로 클록을 느리게 해도 해결되지 않으며, 데이터 경로에 버퍼를 삽입하여 지연을 추가하는 것이 대책입니다. 제조 후에 발견되면 칩을 쓸 수 없게 되므로 설계 시 검증이 중요합니다.

동기식 회로의 '클록 스큐'에 대한 설명으로 올바른 것은?

  1. A클록 주파수가 시간에 따라 변동하는 것
  2. B클록 신호가 플립플롭마다 도착하는 시각의 차이
  3. C클록 신호의 전압이 전원 전압보다 높아지는 것
정답과 해설 보기

정답: B. 클록 신호가 플립플롭마다 도착하는 시각의 차이

클록 스큐는 같은 클록이 배선 길이나 부하의 차이로 플립플롭마다 서로 다른 시각에 도착하는 차이입니다. 수신 측 클록이 늦어지면 셋업에는 유리하지만 홀드에는 불리하며, 반대의 경우도 마찬가지입니다. 칩 전체에 도달하는 클록 트리를 CTS(클록 트리 합성)로 설계하고, 버퍼 배치와 배선 길이를 맞추어 스큐를 수십 ps 이하로 억제합니다. 주기의 시간적 흔들림은 지터입니다.

  1. 정적 타이밍 분석에서 신호가 클록 에지 직후에 너무 빨리 변화하여 플립플롭이 이전 데이터를 올바르게 유지하지 못하게 되는 타이밍 위반은?
  2. 정적 타이밍 분석을 공정 편차·전원 전압·온도의 조합을 바꾼 여러 조건에서 수행하는 이유로 올바른 것은?
  3. 수신 측의 홀드 시간을 만족하는지 확인할 때, 송신 측 클록→출력 지연으로 사용해야 할 값은 무엇입니까?

논리 회로 문제 풀기

주요 용어 설명

셋업 시간(Setup Time)
플립플롭에서 클록의 유효 에지보다 앞서 데이터 입력을 확정해 두어야 하는 최소 시간. 지키지 못하는 경로는 회로의 최대 동작 주파수를 제한한다.
홀드 시간(Hold Time)
플립플롭에서 클록의 유효 에지 이후에도 데이터 입력을 바꾸지 않고 유지해야 하는 최소 시간. 위반하면 클록 주파수를 낮춰도 해결되지 않으므로 지연을 추가하여 대처한다.
클록 스큐(Clock Skew)
같은 클록 신호가 플립플롭마다 도착하는 시각의 차이. 셋업·홀드 여유를 바꾸므로 클록 트리 합성에서 작게 억제한다.
STA(정적 타이밍 분석)
테스트 패턴 없이 회로의 각 경로 지연을 계산하여 타이밍 제약을 만족하는지 검증하는 기법.
메타스터빌리티(Metastability)
플립플롭에서 셋업 시간이나 홀드 시간이 지켜지지 않을 때 출력이 한동안 0도 1도 아닌 상태로 정해지지 않는 현상. 비동기 신호는 2단 플립플롭으로 동기화하여 대처한다.

관련 비교