플립플롭의 셋업 시간에 대한 설명으로 올바른 것은?
- A클록 에지 이후에 데이터를 계속 유지해야 하는 최소 시간
- B클록 에지 이전에 데이터 입력이 안정되어 있어야 하는 최소 시간
- C전원을 켠 후 동작하기까지의 시간
이 계산기는 플립플롭에서 플립플롭으로 가는 단일 경로에 정적 타이밍 분석(STA)과 같은 방식을 적용해 셋업 슬랙과 홀드 슬랙을 구합니다. 지연과 스큐를 바꿔 보면서 어느 검사가 먼저 실패하는지 확인할 수 있습니다. 모든 값의 단위는 나노초(ns)입니다.
충족 위반
위쪽 행은 가장 늦은 데이터가 셋업 기한(점선)보다 먼저 도착하는지, 아래쪽 행은 가장 이른 데이터가 홀드 기한보다 나중에 도착하는지 검사합니다. 슬랙이 음수이면 위반입니다.
다른 입력은 현재 값 그대로 두고, 선택한 입력만 현재 값의 1/4~4배 범위에서 바꿨을 때의 결과입니다. 빨간 점이 현재 값입니다.
새 데이터가 캡처 플립플롭에 도달하는 가장 늦은 시간은 최대 클럭-Q 지연에 최대 조합 논리 지연을 더한 값입니다. 데이터는 다음 캡처 에지(주기 + 스큐)에서 셋업 타임과 클럭 불확실성을 뺀 시점보다 먼저 도착해야 합니다. 셋업 슬랙은 기한에서 도착 시간을 뺀 값이며, 음수이면 주기가 너무 짧은 것이므로 주파수를 낮추거나 논리를 줄여야 합니다.
홀드 검사는 같은 클럭 에지에서 런치된 데이터가 너무 빨리 도착해, 캡처 플립플롭이 아직 래치하고 있는 값을 망가뜨리지 않는지를 확인합니다. 가장 이른 도착 시간, 즉 최소 클럭-Q 지연과 최소 조합 논리 지연의 합은 스큐에 홀드 타임을 더한 시점보다 늦어야 합니다. 홀드 검사에는 클럭 주기가 나타나지 않으므로 클럭을 느리게 해도 홀드 위반은 결코 해결되지 않습니다. 대신 툴이 짧은 경로에 지연 버퍼를 삽입합니다.
캡처 클럭이 런치 클럭보다 늦게 도착하면(양의 스큐) 셋업 기한이 뒤로 밀려 셋업에는 유리하지만 홀드에는 불리합니다. 음의 스큐는 그 반대입니다. 설계자는 크리티컬한 셋업 경로를 살리기 위해 일부러 스큐를 넣기도 하지만(useful skew), 그 경우 홀드를 다시 검사해야 합니다. 실제 STA는 모든 경로를 최악 조건에서 검사합니다. 셋업은 슬로 코너에서, 홀드는 패스트 코너에서 검사합니다.
셋업 슬랙이 정확히 0이 되는 주기가 그 경로의 최소 주기이며, 그 역수가 최대 주파수입니다: fmax = 1 / (클럭-Q + 조합 논리 지연 + 셋업 + 불확실성 − 스큐). 칩의 최대 주파수는 가장 느린 경로, 즉 크리티컬 패스에 의해 정해집니다. 파이프라인 단을 추가하면 단당 논리가 짧아져 달성 가능한 주파수가 높아집니다.
셋업 위반은 클럭 주파수를 낮추거나, 논리를 빠르게 하거나 재구성하거나, 파이프라인 단을 추가해 해결합니다. 홀드 위반은 주파수와 무관하므로 짧은 경로에 버퍼를 추가해 지연을 늘려 해결합니다.
양쪽 모두에 반대 방향으로 영향을 줍니다. 캡처 클럭이 늦게 도착하는 양의 스큐는 셋업에 유리하고 홀드에 불리하며, 음의 스큐는 그 반대입니다.
슬랙은 타이밍 여유로, 요구 시간에서 실제 도착 시간을 뺀 값입니다. 슬랙이 양수이면 검사를 통과하고, 음수이면 위반입니다.
셋업 시간(Setup Time) 홀드 시간(Hold Time) 클록 스큐(Clock Skew) STA(정적 타이밍 분석) 메타스터빌리티(Metastability) 지터(Jitter)