UPF(.upf)와 CPF(.cpf) 파일이란 무엇인가요? RTL-to-GDS 파일 가이드

UPF(Unified Power Format)와 CPF(Common Power Format)는 multi-voltage 설계의 power intent를 기술하는 파일입니다. Power domain, supply network, level shifter/isolation cell...

UPF(.upf)와 CPF(.cpf) 파일이란 무엇인가요? RTL-to-GDS 파일 가이드
Photo by Gez Xavier Mansfield / Unsplash

UPF(Unified Power Format)와 CPF(Common Power Format)는 multi-voltage 설계의 power intent를 기술하는 파일입니다. Power domain, supply network, level shifter/isolation cell 삽입 규칙 등을 정의합니다.

UPF는 IEEE 1801 표준이며, CPF는 Cadence의 format입니다. (주로 UPF가 쓰입니다.) 정확한 정의는 IEEE1801 가이드를 검색해서 보시면 됩니다.

Motherboard surrounded by glowing neon rings and metallic spheres.
Photo by Brecht Corbeel on Unsplash

UPF 파일 예제

# top_design.upf

# UPF version
set_scope top_design
upf_version 2.1

# ============================================
# Supply Network 정의
# ============================================
# Always-on supply
create_supply_net VDD_AON
create_supply_net VSS

# Switchable supply
create_supply_net VDD_SW

# Supply port
create_supply_port VDD_AON -direction in
create_supply_port VSS     -direction in

# Supply set
create_supply_set SS_AON \
    -function {power VDD_AON} \
    -function {ground VSS}

create_supply_set SS_SW \
    -function {power VDD_SW} \
    -function {ground VSS}

# ============================================
# Power Domain 정의
# ============================================
# Always-on domain
create_power_domain PD_AON \
    -supply {primary SS_AON}

# Switchable domain
create_power_domain PD_CORE \
    -elements {cpu_core dma_ctrl} \
    -supply {primary SS_SW}

# ============================================
# Power Switch 정의
# ============================================
create_power_switch PSW_CORE \
    -domain PD_CORE \
    -input_supply_port {vin VDD_AON} \
    -output_supply_port {vout VDD_SW} \
    -control_port {sleep_n sleep_n} \
    -on_state {on vin {!sleep_n}}

# ============================================
# Isolation 정의
# ============================================
set_isolation ISO_CORE \
    -domain PD_CORE \
    -isolation_power_net VDD_AON \
    -isolation_ground_net VSS \
    -clamp_value 0 \
    -applies_to outputs

set_isolation_control ISO_CORE \
    -domain PD_CORE \
    -isolation_signal iso_en \
    -isolation_sense high \
    -location parent

# ============================================
# Level Shifter 정의
# ============================================
set_level_shifter LS_AON_TO_CORE \
    -domain PD_AON \
    -applies_to inputs \
    -rule both \
    -location self

# ============================================
# Retention 정의
# ============================================
set_retention RET_CORE \
    -domain PD_CORE \
    -retention_power_net VDD_AON \
    -retention_ground_net VSS

set_retention_control RET_CORE \
    -domain PD_CORE \
    -save_signal {save_n posedge} \
    -restore_signal {restore_n posedge}

# ============================================
# Power State Table
# ============================================
create_pst top_pst \
    -supplies {SS_AON SS_SW}

add_pst_state ACTIVE \
    -pst top_pst \
    -state {FULL_ON FULL_ON}

add_pst_state SLEEP \
    -pst top_pst \
    -state {FULL_ON OFF}

UPF 주요 개념 설명

Supply Network은 전원 공급 경로를 정의합니다. VDD_AON은 항상 켜져 있는 전원, VDD_SW는 power switch를 통해 제어되는 전원입니다.

Power Domain은 동일한 전원으로 동작하는 logic의 그룹입니다. -elements로 해당 domain에 속하는 module을 지정합니다.

Power Switch는 domain의 전원을 on/off하는 switch입니다. control_port로 제어 신호를, on_state로 switch가 켜지는 조건을 정의합니다.

Isolation은 power-off domain의 출력을 고정값으로 clamping합니다. -clamp_value 0은 isolation 시 출력을 0으로 고정합니다. -location parent는 isolation cell을 parent domain(always-on)에 배치합니다.

Retention은 power-off 시 flip-flop 값을 보존합니다. save/restore signal로 제어합니다.

CPF와의 차이는?

CPF는 Cadence가 개발한 format으로, UPF와 유사한 기능을 제공합니다. 문법이 다르지만 개념은 동일합니다. 현재는 UPF(IEEE 1801)가 업계 표준으로 자리잡았으며, 대부분의 tool이 UPF를 지원합니다. Cadence tool도 UPF를 지원하므로, 신규 설계에서는 UPF를 사용하는 것이 일반적입니다.

정리

UPF는 multi-voltage 설계의 power intent를 기술하는 IEEE 표준입니다. Supply network, power domain, switch, isolation, level shifter, retention을 정의하며, synthesis부터 P&R, verification까지 동일한 UPF를 사용합니다.

글 참여 도구

공유하기 토론 참여
이 글이 어떤 도움을 줬나요? 공개 숫자 없이 품질 개선 신호로만 사용합니다.

비공개 제보

오류나 추가 설명이 필요한가요?

공개 토론 대신 편집자에게 직접 보낼 수정·질문·다음 글 요청을 남겨주세요.

VLSI Korea

비공개 제보 보내기

작성한 내용은 [email protected]로 전달됩니다.

어떻게 받을까요?

익명 모드는 이름과 이메일을 보내지 않습니다. 다만 전송 서비스가 IP 등 기술 정보를 처리할 수 있어 절대적인 익명성을 보장하지는 않습니다.

ENGINEER DISCUSSION

현장에서는 어떻게 보고 계신가요?

동의, 반론, 보완 자료와 현업 경험을 남겨주세요. 답글 알림이 다시 토론으로 연결됩니다.

VLSI KOREA BRIEFING

매일, 중요한 신호만.

반도체 설계와 산업의 변화를 현직 엔지니어 관점에서 정리합니다. 무료이며 페이월이 없습니다.

FOR BUSINESS

이런 기술 콘텐츠가 필요하신가요?

기업용 기술 콘텐츠, 스폰서드 딥다이브, 사내 브리핑을 명확한 범위와 가격으로 진행합니다.

협업 방식·가격 보기 →
VLSI Korea Free forever · No paywall · Weekly semiconductor insights from practicing engineers
MY VLSI

내 읽기 보관함

저장한 글과 읽던 글을 한곳에서 이어보세요.