OCV AOCV POCV 차이, 타이밍 변동을 다루는 세 방식
지하철 환승 시간표를 짠다고 생각해 보겠습니다. 모든 열차가 정확히 같은 시간에 움직인다면 환승 여유는 1분이면 충분하겠지만, 실제로는 승객이 몰리는 역에서 문이 늦게 닫히고 신호에 따라 속도도 조금씩 달라집니다.
칩의 정적 타이밍 분석(STA, Static Timing Analysis)도 같은 문제를 안고 있고, OCV AOCV POCV 차이는 그 편차를 계산에 넣는 방식의 차이입니다. 모든 구간에 같은 여유를 일률로 더하는 방식, 정거장 수와 거리에 따라 여유를 달리하는 방식, 구간마다 소요 시간의 흩어짐을 통계로 적어 두는 방식이 차례로 대응됩니다.
다만 지하철과 다른 점이 있습니다. 칩에서는 편차가 운행 중의 환경이 아니라 제조에서 이미 정해져 있고, 경로를 이루는 셀이 많아질수록 편차가 서로 상쇄되는 정도가 달라집니다. 이 상쇄를 얼마나 반영하느냐가 세 방식을 가르는 핵심입니다.
OCV AOCV POCV 차이가 필요한 이유, 같은 칩 안의 편차
같은 칩 안에 같은 설계로 만든 인버터 두 개도 지연이 정확히 같지는 않습니다. 도핑 원자의 개수와 위치가 소자마다 조금씩 다르고, 패터닝에서 생기는 선폭의 거칠기와 막 두께의 미세한 차이가 더해지기 때문입니다.
이런 칩 내부의 편차를 온칩 변동(OCV, On-Chip Variation)이라고 부릅니다. 칩 전체가 빠르거나 느리게 나오는 이동은 공정 코너가 맡고, 같은 칩 안의 국소적인 차이는 OCV가 맡는 식으로 역할이 나뉩니다.
편차는 성격에 따라 두 갈래로 볼 수 있습니다. 한쪽은 바로 옆 소자와도 무관하게 흩어지는 랜덤 변동(random variation)이고, 다른 쪽은 칩 위에서 완만하게 변해 가까운 소자끼리 비슷한 방향으로 움직이는 시스템적 변동(systematic variation)입니다. 세 방식은 이 두 성격을 어떻게 나누어 다루느냐에서 갈립니다.
이 편차를 무시하면 어떻게 될까요? 모든 셀이 정확히 평균 지연으로 동작한다고 가정하고 타이밍을 맞추면, 실제 칩에서 일부 경로가 평균보다 느리게 나오는 순간 셋업 위반이 되고, 빠르게 나오면 홀드 위반이 생깁니다. 그래서 STA는 평균 지연에 마진을 더하는 방식으로 편차를 반영합니다.
타이밍 분석이 칩 안의 편차를 넣는 방식
셋업 분석은 데이터가 너무 늦게 도착하는 경우를 막는 검사입니다. 그래서 보수적으로 보려면 데이터를 내보내는 쪽(launch)의 클록과 데이터 경로는 느리게, 받는 쪽(capture)의 클록 경로는 빠르게 계산합니다.
셋업과 홀드의 가정셋업 분석에서는 launch 클록과 데이터 경로를 late(느리게), capture 클록을 early(빠르게)로 계산합니다.
홀드 분석에서는 반대로 launch 클록과 데이터 경로를 early, capture 클록을 late로 계산합니다.
이렇게 하면 같은 칩 안에서 두 경로가 서로 가장 불리한 방향으로 어긋난다고 가정하는 셈입니다. launch와 capture 클록이 같은 버퍼를 지나는 공통 구간은 실제로 하나의 셀이어서 동시에 느리고 빠를 수 없는데, 단순 계산이 이 구간에 서로 다른 지연을 적용하는 함정이 생깁니다.
이 인위적인 마진을 걷어내는 일을 CRPR(Common Reconvergence Pessimism Removal)이라 부르며, 툴에 따라 CPPR이라고도 합니다. 이후에 나오는 세 방식 모두 이 보정 위에서 동작합니다.
고정 derate 방식, 단순하지만 비관적인 이유
가장 먼저 쓰인 방식은 모든 셀 지연에 같은 계수를 곱하는 것입니다. 이 계수를 데레이트(derate)라고 하며, 느린 쪽은 1.10, 빠른 쪽은 0.90처럼 정합니다. 흔히 OCV라고만 하면 이 고정 계수 방식을 가리킵니다.
장점은 설정이 간단하고 분석이 빠르다는 점입니다. 단점은 경로의 길이와 셀의 위치를 가리지 않는다는 점으로, 셀이 두 개인 짧은 경로와 스무 개인 긴 경로에 똑같은 10%가 붙습니다.
긴 경로에서는 어떤 셀은 느리게, 어떤 셀은 빠르게 나와 편차가 서로 상쇄되므로 실제로 필요한 마진은 훨씬 작습니다. 이렇게 필요 이상으로 붙는 마진을 비관(pessimism)이라고 부르며, 비관이 크면 셀 크기 확대와 버퍼 삽입이 늘어 면적과 전력이 불필요하게 늘어납니다.
그렇다고 계수를 낮추면 짧은 경로가 위험해집니다. 하나의 숫자로 짧은 경로와 긴 경로를 함께 만족시키기 어렵다는 점이 다음 방식이 나온 이유입니다.
AOCV, 경로 깊이와 거리로 계수를 줄이는 방식
어드밴스드 OCV(AOCV, Advanced OCV)는 데레이트를 숫자 하나가 아니라 표로 둡니다. 표를 찾는 입력은 경로가 지나는 셀의 개수인 깊이(depth)와, 경로가 놓인 영역의 크기를 나타내는 거리(distance)입니다.
깊이가 깊을수록 랜덤 변동이 서로 상쇄되므로 계수가 1에 가까워집니다. 반대로 거리가 멀수록 시스템적 변동의 차이가 커지므로 계수가 커집니다.
가상 AOCV 표 예시, 느린 쪽(late) 데레이트깊이만 기준으로 한 단순화된 값입니다.
- 깊이 1: 1.20
- 깊이 4: 1.10
- 깊이 9: 1.07
- 깊이 16: 1.05
- 깊이 25: 1.04
실제 값은 공정과 셀 라이브러리의 특성화 결과로 정해지며, 거리 축이 더해진 2차원 표로 주어집니다.
AOCV에도 한계가 있습니다. 표는 특성화 단계에서 보수적으로 만든 값이어서 셀 종류와 입력 슬루, 출력 부하에 따라 달라지는 변동을 충분히 반영하지 못합니다.
또 그래프 기반 분석(GBA, Graph-Based Analysis)에서는 한 지점을 지나는 여러 경로 중 가장 불리한 깊이를 가정해야 하므로 마진이 다시 늘어납니다. 이를 줄이려고 경로 하나씩 깊이를 다시 세는 경로 기반 분석(PBA, Path-Based Analysis)을 함께 쓰기도 합니다.
POCV, 셀마다 평균과 표준편차를 두는 방식
파라메트릭 OCV(POCV, Parametric OCV)는 편차를 표 하나로 요약하지 않고 셀 지연마다 평균과 표준편차를 붙입니다. 어떤 셀의 지연이 평균 50 ps, 표준편차 3 ps인 분포로 주어지는 식입니다. 이름은 툴과 문서에 따라 SOCV 등으로 달라지고, 표준편차 정보를 라이브러리에 담는 형식으로는 LVF(Liberty Variation Format)가 쓰이는 경우가 많습니다.
핵심 아이디어는 경로 지연을 셀 지연의 합으로 보는 것입니다. 평균은 그대로 더하고, 서로 독립이라고 가정하면 표준편차는 제곱합의 제곱근으로 합칩니다. 셀이 N개이고 표준편차가 모두 같다면 경로의 표준편차는 셀 하나의 √N배로 늘 뿐입니다.
평균은 N배로 커지지만 표준편차는 √N배로만 커지므로, 비율로 보면 경로가 길수록 변동이 상대적으로 작아집니다. 마진은 평균에서 몇 시그마까지 볼 것인가로 정하는데, 흔히 3시그마를 기준으로 삼지만 실제 수준은 사인오프 기준에 따라 달라집니다.
AOCV가 깊이에 따른 상쇄를 표로 근사했다면, POCV는 그 상쇄를 셀별 통계로 직접 계산합니다. 같은 깊이의 경로라도 셀 종류와 슬루에 따라 서로 다른 값을 쓰므로 더 정밀합니다.
POCV에도 한계가 있습니다. 독립이라는 가정은 랜덤 변동에는 맞지만 가까운 셀이 같은 방향으로 움직이는 시스템적 변동에는 맞지 않아, 이 성분은 툴에 따라 별도의 계수나 거리 기반 보정으로 더해 줍니다. 또 지연 분포를 대칭인 정규분포로 근사하기 때문에, 저전압에서 지연이 비선형으로 늘어나 분포가 한쪽으로 치우치는 구간에서는 오차가 생길 수 있습니다.
세 방식의 마진을 숫자로 비교해 보기
OCV AOCV POCV 차이가 실제 마진으로 얼마나 벌어지는지 가상의 숫자로 계산해 보겠습니다. 경로를 이루는 셀이 모두 지연 50 ps, 표준편차 3 ps라고 가정하고, 고정 derate는 10%, AOCV는 위의 가상 표, POCV는 3시그마를 씁니다.
가상 계산 예시, 깊이별 마진깊이는 경로의 셀 개수이고, 마진은 평균 지연에 더하는 시간입니다.
- 깊이 1 (경로 50 ps): 고정 5 ps, AOCV 10 ps, POCV 9 ps
- 깊이 4 (경로 200 ps): 고정 20 ps, AOCV 20 ps, POCV 18 ps
- 깊이 9 (경로 450 ps): 고정 45 ps, AOCV 31.5 ps, POCV 27 ps
- 깊이 16 (경로 800 ps): 고정 80 ps, AOCV 40 ps, POCV 36 ps
- 깊이 25 (경로 1,250 ps): 고정 125 ps, AOCV 50 ps, POCV 45 ps
POCV의 표준편차는 3 ps × √깊이이므로 깊이 25에서는 3 × 5 = 15 ps, 3시그마는 45 ps입니다.
이 가상 조건에서 깊이 25 경로에 고정 derate는 125 ps를 더하지만 POCV는 45 ps면 되므로, 차이인 80 ps는 설계 여유로 돌아옵니다. 반대로 깊이 1 경로에서는 고정 derate가 5 ps로, 3시그마 값인 9 ps에 못 미칩니다.
하나의 숫자로 모든 경로를 덮는 방식이 짧은 경로에는 모자라고 긴 경로에는 넘치는 이유가 여기에 있습니다.
그렇다고 POCV를 쓰면 마진이 사라진다는 것은 흔한 오해입니다. 마진은 없어지는 것이 아니라 통계로 필요한 만큼만 남는 것이며, 라이브러리의 변동 데이터가 부정확하면 결과도 그만큼 틀어집니다. 또 OCV 방식을 쓰면 PVT 코너는 필요 없다는 생각도 맞지 않아서, 세 방식 모두 각 코너의 분석 위에 얹는 보정입니다.
OCV AOCV POCV 차이 비교 표
| 구분 | OCV (고정 derate) | AOCV | POCV |
|---|---|---|---|
| 편차 표현 | 모든 셀에 같은 계수 | 깊이와 거리의 표 | 셀별 평균과 표준편차 |
| 경로 길이 반영 | 반영하지 않음 | 깊이로 상쇄를 근사 | 제곱합의 제곱근으로 직접 계산 |
| 시스템적 변동 | 계수에 뭉뚱그려 포함 | 거리 축으로 반영 | 별도 보정으로 추가 |
| 마진 경향 | 긴 경로에서 비관이 큼 | 중간 | 가장 작게 줄일 수 있음 |
| 필요한 데이터 | 계수 몇 개 | AOCV 표 | 셀별 표준편차(LVF 등) |
| 분석 부담 | 가장 낮음 | 중간 | 가장 높음 |
핵심 정리
OCV AOCV POCV 차이를 한 줄로 말하면, 같은 칩 안의 편차를 계수 하나로 덮느냐, 깊이와 거리의 표로 줄이느냐, 셀별 통계로 계산하느냐입니다. 방식이 정교해질수록 불필요한 마진이 줄어 면적과 전력, 타이밍 수정의 부담이 가벼워지지만 라이브러리 데이터와 분석 시간은 더 필요합니다.
시간표 비유로 옮기면 고정 derate는 모든 노선에 같은 환승 여유를 주는 것이고, AOCV는 노선 길이별 표를, POCV는 노선마다 소요 시간의 흩어짐을 기록한 통계를 쓰는 것입니다. 비유와 달리 칩의 편차는 제조에서 정해져 운행 중에 바뀌지 않으므로, 실제 설계에서는 사인오프 기준에 맞춰 방식과 시그마 수준을 미리 합의해 둡니다.
면접 대비 질문
면접 대비 질문OCV, AOCV, POCV의 차이를 설명하고, 경로가 길어질수록 POCV가 마진을 줄일 수 있는 이유를 말해 보세요.
[답변 포인트] 같은 칩 안에서 소자마다 지연이 달라지는 온칩 변동을 STA에 반영하는 방식이라는 점으로 시작합니다. 고정 derate는 모든 셀에 같은 계수를 곱해 단순하지만 긴 경로에서 비관이 크고, AOCV는 경로 깊이와 거리 표로 계수를 줄이며, POCV는 셀별 평균과 표준편차를 제곱합의 제곱근으로 합쳐 계산한다고 구분합니다. 랜덤 변동은 셀이 많을수록 상쇄되어 평균은 N배, 표준편차는 √N배로 늘기 때문에 상대적 변동이 줄어든다고 설명하고, 시스템적 변동은 독립 가정이 맞지 않아 별도 보정이 필요하다는 점과 라이브러리 데이터와 분석 시간 부담까지 덧붙이면 좋습니다.









