SDF(.sdf) 파일이란 무엇인가요?

SDF(.sdf) 파일이란 무엇인가요?
Photo by Erik Mclean / Unsplash

SDF(Standard Delay Format)는 gate-level netlist의 cell delay와 net delay를 기술하는 파일입니다. Gate-level simulation에서 timing을 반영하기 위해 사용되며, STA tool이 생성합니다.

자세한 문법은 IEEE1497 문서를 참고하세요.

1497-2001 - IEEE Standard for Standard Delay Format (SDF) for the Electronic Design Process
IEC 61523-3: 2004 Dual-logo document. Replaces IEEE Std 1497-2001. The Standard Delay Format (SDF) is defined in this standard. SDF is a textual file format for representing the delay and timing information of electronic systems. While both human and machine readable, in its most common usage it will be machine written and machine read in support of timing analysis and verification tools, and of other tools requiring delay and timing information. The primary audience for this standard is the implementors of tools supporting the format, but anyone with a need to understand the format’s contents will find it useful.

SDF 파일의 구조

(DELAYFILE
    (SDFVERSION "4.0")
    (DESIGN "top_design")
    (DATE "Mon Mar 23 10:30:00 2026")
    (VENDOR "Synopsys")
    (PROGRAM "PrimeTime")
    (VERSION "V-2024.06")
    (DIVIDER /)
    (VOLTAGE 0.750::0.750)
    (PROCESS "1.000::1.000")
    (TEMPERATURE 125.000::125.000)
    (TIMESCALE 1ns)
    
    (CELL
        (CELLTYPE "NAND2_X1")
        (INSTANCE U1)
        (DELAY
            (ABSOLUTE
                (IOPATH A1 ZN (0.046::0.046) (0.038::0.038))
                (IOPATH A2 ZN (0.052::0.052) (0.041::0.041))
            )
        )
    )
    
    (CELL
        (CELLTYPE "DFFRNQ_X1")
        (INSTANCE reg_0)
        (DELAY
            (ABSOLUTE
                (IOPATH CK Q (0.128::0.128) (0.115::0.115))
            )
        )
        (TIMINGCHECK
            (SETUP (posedge D) (posedge CK) (0.035::0.035))
            (HOLD  (posedge D) (posedge CK) (0.012::0.012))
            (RECOVERY (posedge RN) (posedge CK) (0.045::0.045))
            (REMOVAL  (posedge RN) (posedge CK) (0.008::0.008))
        )
    )
    
    (CELL
        (CELLTYPE "")
        (INSTANCE U1/ZN)
        (DELAY
            (ABSOLUTE
                (INTERCONNECT U1/ZN reg_0/D (0.015::0.015) (0.014::0.014))
            )
        )
    )
)

SDF의 주요 구성 요소

Header에는 SDF 버전, design 이름, 생성 tool, PVT 조건, timescale이 포함됩니다. IOPATH는 cell의 input pin에서 output pin까지의 delay입니다. (rise_delay::rise_delay) (fall_delay::fall_delay) 형식이며, min:typ:max 세 값을 가질 수 있습니다.

TIMINGCHECK는 flip-flop의 setup, hold, recovery, removal time을 정의합니다. INTERCONNECT는 net delay(wire delay)를 정의합니다. Cell 출력에서 다음 cell 입력까지의 wire RC에 의한 delay입니다.

SDF의 min:typ:max 값

(IOPATH A ZN (0.035:0.046:0.062) (0.028:0.038:0.051))

하나의 SDF에 min, typ, max 세 가지 delay를 모두 담을 수 있습니다. Simulation 시 어떤 값을 사용할지 선택합니다. 보통 setup 검증에는 max delay를, hold 검증에는 min delay를 사용합니다.

SDF를 사용한 Gate-Level Simulation

// Verilog testbench에서 SDF annotation
initial begin
    $sdf_annotate("top_design.sdf", top_inst, , , "MAXIMUM");
end

SDF annotation은 netlist의 각 cell instance에 delay를 부여합니다. Simulation 시 모든 gate를 통과하는 신호에 실제 delay가 적용되어, timing violation(setup/hold)을 확인할 수 있습니다. 이를 gate-level timing simulation이라 합니다.

SDF 생성 시점

Post-synthesis SDF는 wire delay를 estimation으로 계산합니다(정확도 낮음). Post-route SDF는 실제 routing 결과의 RC extraction을 반영합니다(정확도 높음). Sign-off simulation에서는 post-route SDF를 사용합니다.

정리

SDF는 cell delay, wire delay, timing check 값을 담는 표준 format입니다. STA tool이 생성하고, gate-level simulation에서 timing을 반영하는 데 사용됩니다. Post-route SDF가 가장 정확하며, sign-off simulation의 필수 입력입니다.

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