AOCV(.aocvm)와 POCV(.pocvm) 파일이란 무엇인가요?

AOCV(.aocvm)와 POCV(.pocvm) 파일이란 무엇인가요?
Photo by Igor Shalyminov / Unsplash

AOCV와 POCV 파일은 On-Chip Variation을 모델링하는 derate 정보를 담습니다. Flat OCV (set_timing_derate)의 과도한 pessimism을 줄이기 위해 사용되며, sign-off STA의 정확도를 높입니다.

AOCV Table(.aocvm) 파일 예제

# example_aocv.aocvm
version: 1.0

# Cell AOCV table
# Format: depth-based derate
object_type: cell
rf_type: rise
delay_type: cell
derate_type: early

object_spec: NAND2_X1
depth:  1    2    3    5    8    12   20
derate: 0.92 0.93 0.94 0.95 0.96 0.97 0.98

object_spec: BUF_X4
depth:  1    2    3    5    8    12   20
derate: 0.91 0.92 0.93 0.945 0.96 0.97 0.98

# Distance-based AOCV (2D table)
object_type: cell
rf_type: rise
delay_type: cell
derate_type: late

object_spec: INV_X1
depth:     1     2     3     5     8
dist  50:  1.08  1.07  1.06  1.05  1.04
dist 100:  1.09  1.08  1.07  1.06  1.05
dist 200:  1.10  1.09  1.08  1.07  1.06
dist 500:  1.12  1.11  1.10  1.09  1.08

AOCV Table 읽는 법

Depth는 path의 stage 수(cell 수)입니다. 공정 엔지니어들이 실리콘의 특성을 파악해보니, Cell Depth가 클수록 derate가 1.0에 가까워집니다. 즉, Path에 cell이 많을수록 개별 cell의 variation이 서로 상쇄되어 전체 variation이 줄어든다는 의미입니다.

Distance는 path의 cell 간 거리가 멀 수록 Variation 차이가 커지는 경향성을 갖습니다. (일부 AOCV Table들은 distance 경향은 무시합니다.)

POCV Coefficient(.pocvm) 파일 예제

# example_pocv.pocvm
version: 2.0
object_type: lib_cell

# POCV uses sigma (standard deviation) per cell
# Instead of fixed derate, statistical variation is modeled

object_spec: NAND2_X1
rf_type: rise
delay_type: cell
variation_type: cell_sigma
index_1 ("0.01 0.05 0.1 0.2 0.5 1.0");
index_2 ("0.005 0.01 0.02 0.05 0.1 0.2");
sigma_values ( \
    "0.0008 0.0010 0.0013 0.0020 0.0035 0.0065", \
    "0.0009 0.0011 0.0014 0.0022 0.0038 0.0070", \
    "0.0010 0.0013 0.0016 0.0025 0.0042 0.0078", \
    "0.0012 0.0015 0.0019 0.0030 0.0050 0.0092", \
    "0.0018 0.0022 0.0028 0.0044 0.0073 0.0135", \
    "0.0030 0.0037 0.0047 0.0074 0.0123 0.0228"  \
);

# Random variation component
object_spec: NAND2_X1
variation_type: random_sigma
sigma_value: 0.0005

POCV의 계산 원리

POCV는 각 cell의 delay를 mean ± σ(standard deviation)로 모델링합니다. Path delay의 variation은 개별 cell의 σ를 RSS(Root Sum Square)로 합산합니다: σ_path = √(σ₁² + σ₂² + ... + σₙ²). Cell이 많을수록 평균에 대한 상대 variation이 줄어들므로, AOCV와 유사한 depth 효과가 자연스럽게 나타납니다.

POCV는 AOCV보다 pessimism이 적습니다. AOCV는 depth/distance 기반의 고정 derate인 반면, POCV는 통계적으로 정확한 variation을 계산합니다. 최신 sign-off에서는 POCV 사용이 증가하고 있습니다.

STA에서의 사용

# PrimeTime에서 AOCV 적용
set_timing_derate -early -cell_delay -aocvm aocv_early.aocvm
set_timing_derate -late  -cell_delay -aocvm aocv_late.aocvm

# POCV 적용
read_variation -pocvm example_pocv.pocvm

정리

AOCV(.aocvm)는 depth/distance 기반의 derate table이고, POCV(.pocvm)는 cell별 σ(sigma) 값을 제공하는 통계적 모델입니다. 둘 다 flat OCV의 pessimism을 줄여 현실적인 timing 분석을 가능하게 하며, POCV가 더 정확합니다.

Enjoyed this article?

Get deep-dive semiconductor analysis and career insights delivered weekly. Free forever — no paywall, no upsell. Funded by sponsorships with a strict editorial firewall (Editorial Standards).

Work with me

Consulting · Collaboration · Support

Paid 1:1 technical consulting, speaker invitations, collaboration proposals, or just want to say thanks — all welcome.

View options →
VLSI Korea Free forever · No paywall · Weekly semiconductor insights from practicing engineers
Support