Setup / Hold Timing Check
제가 신입때 제일 어려웠던... 머리로는 이해가는데 마음으로는 받아들일수 없었던 setup / hold 개념에 대해 간략하게 소개하도록 하겠습니다.
[STA] 1. STA와 Timing Path
Timing Pathauto PnR 엔지니어로 막 입사했을 때, 가장 어려웠던 부분이 STA였습니다. (사실은 지금도 어려워요)setup/hold가 무엇인지, Timing Violation이 발생하면 어떻게 Fix 하는지 등등... 그래서 시리즈
vlsiatelier.tistory.com
먼저 위에 글에대한 이해하고 있어야 내용 이해가 쉽습니다.
Setup
Clock이 Active 되기 전 Data가 Stable하게 유지 되어야 하는 최소시간.
(이게 무슨말이지..?)

그림을 보시면 Clock이 Active 하기 전, 빨간 영역이 Setup Time이 됩니다.
Data는 이때 Stable 하게 유지해야합니다.
만일 이 최소시간을 만족하지 못하면 Setup Violation이 발생하게됩니다.
Setup Violation을 요약하자면
Require Time보다 Arrival Time이 늦어 발생하는데
* Require Time = Phase shift + library setup time - uncertainty + cppr 로 계산할수 있습니다.
이때 늦어진 값 (=violation)을 Slack 이라고 합니다.
.
Hold
Clock이 Active 된 Data가 바뀌지 않고 Stable하게 유지 되어야 하는 최소시간.

다시 위의 그림을 가져와서, Clock이 Active 된 후 파란 영역이 Hold Time이 됩니다.
이 시간 내에 Data는 Stable하게 유지되어야 하며
이 시간을 만족하지 못하고 Data가 바뀐다면 Hold Violation이 발생하게 됩니다.
Hold Violation을 요약하면
Require Time보다 Arival Time이 빨라서 발생하는데,
* Require TIme = Library Hold Time + Clock uncertainty - cppr 로 계산할수 있습니다.
Setup과 Hold의 Require Time에서 Phase Shift 계산 부분이 다름을 알수 있습니다.
아래 그림과 같이 Setup Time은 다음 Phase Shift, Hold Time은 동일 Pahse Shift에서 계산됩니다.

오늘 내용을 요약한다면
Violation 원인 | Data가 Require Time보다 늦게 도착 | Data가 Require Time보다 빨리 도착 |
Violation 발생시 | 다음 클럭에서 잘못된 데이터 샘플링 | 현재 클럭에서 잘못된 데이터 샘플링 |
Fix | Clock 속도를 낮춤, Data Path 줄이기, | Data Path를 늘리기 (Insert Buffer) |
Timing Violation Fix 방법은 4장에서 다루도록 하겠습니다.
'VLSI' 카테고리의 다른 글
[STA] 5. Slack, Skew, Slew, useful Skew (0) | 2025.02.13 |
---|---|
[STA] 4. Timing Violation Fix (setup / hold) (0) | 2025.02.10 |
[STA] 2. OCV와 CPPR (CRPR) (0) | 2025.02.04 |
[STA] 1. STA와 Timing Path (0) | 2024.11.27 |
STA에서 GBA와 PBA (0) | 2024.10.22 |