728x90

Static Timing Analysis

번역하면 '정적 타이밍 분석' 이게 무슨 말이냐면, 우리가 설계한 반도체가 얼마나 빨리, 정확한 타이밍에 동작하는 지를 검증하는 과정이다.

Static(정적) 이라는 말이 붙는 이유는, 실제 회로에 특정 값을 넣고 시뮬레이션해서 동작을 하나하나 확인 하는 방식을 Dynamic Analysis(동적 분석)이라고 하기에, 그와 반대되게 회로의 구조와 각 소자(gate 등)의 지연 시간 정보를 바탕으로 타이밍을 수학적으로 계산하고 분석하기 때문이다.

STA는 회로에 실제 신호를 넣지 않고,
회로의 구성과 각 소자의 Delay 정보만 갖고 디지털 회로의 타이밍을 분석하는 방법이다.

목적은 : 설계한 회로가 설정한 클럭 속도에서 문제 없이 동작할 수 있는가? 를 확인하는 것이다.

STA가 중요한 이유

디지털 회로는 대부분 클럭에 동기화되어 동작하는데, 클럭에 맞춰서 모든 동작이 정해진 박자에 맞춰 일사분란하게 이뤄진다. 만약에 어떤 연산이 주어진 클럭 주기 내에 완료되지 않거나 데이터가 너무 빠르거나 늦게 도착하면 회로는 오작동하거나 심각한 성능 저하를 맞게된다.
STA는 엄격한 타이밍 요구 조건을 설계가 만족하는지 검증하는 데 결정적인 역할을 한다.

STA 기본 개념

  1. Timing Path
    경로 종류:
    • Register -> Register(FF -> FF)
    • Input Port -> Register (Input -> FF)
    • Register -> Output Port (FF -> Output)
    • CLK -> FF(Clock Path) : Clock Path는 데이터 경로와는 분석의 초점(주로 skew, latency 확인)이 다르지만, STA에서 함께 분석되는 매우 중요한 경로다.
  • STA는 이 경로들의 지연을 계산해, 각 경로가 "요구된 시간(Required Time) 내에 신호가 도달하는 지(Arrived Time) 혹은 너무 빨리 변하지 않는 지"를 검사한다.
  1. Delay
    • Gate Delay + Net Delay
    • 조건에 따라 다르다.
      1. Slew : 입력 신호의 전압 변화 속도
      2. Load : 부하 용량
      3. rise/fall : 신호 전이 방향
        `.lib`(Liberty file) 에 다양한 조건에 따라 정의되어있다.
  2. [[Setup&Hold Violation Check|Setup/Hold Violation 검사]]
    • Setup : 클럭 엣지 전에 데이터가 도착해야 함
    • Hold : 클럭 엣지 이후에도 에디터가 안정되어야 함
    • 두 조건 중 하나라도 어기면 Violation 발생
  3. Timing Constraints
    • 설계자가 입력하는 "이 회로는 이렇게 동작해야 한다는" 규칙
    • 예:
      `create_clock`: 클럭 정의
      `set_input_delay`, `set_output_delay`: IO 타이밍
      `set_false_path`: 무시할 경로
      `set_multicycle_path`: 여러 클럭에 걸쳐 동작하는 경로

STA 장점

  • 빠르다 : 시뮬레이션보다 훨씬 빠르게 전체 경로를 분석할 수 있다.
  • 포괄적이다: 실제 입력 패턴에 제한되지 않고, 모든 경로를 대상으로 분석 가능하다.

시뮬레이션처럼 실제로 돌려보는 게 아니라, 설계도 같은 제약 조건만 갖고 수학적으로 맞는 지 따져보는 과정인것 같다. 얼마나 빨리, 정확한 타이밍에 동작하는지 검증하는 것
결국 내가 만든 회로가 이 클럭 속도에서 문제없이 잘 돌아갈 수 있을까?를 확인하는 것
CPU처럼 빠른 속도로 동작하는 프로세서 같은 경우에는 매우 중요할 것이다.

Timing Path = 신호가 흘러가는 길
Delay = 딜레이!
Setup/hold = 연결 링크 확인
Timing Constraints = 설계자가 STA Tool 에게 알려주는 회로의 규칙

대표적 STA Tool은 PrimeTime

728x90

'( * )Engineering > 💿Semiconductor' 카테고리의 다른 글

[설계 용어] Variation  (0) 2025.06.23
[설계 용어] Unate  (0) 2025.06.23
[설계 용어] Setup & Hold Violation Check  (0) 2025.06.23
[설계 용어] Increamental Delay  (0) 2025.06.23
[설계 용어] Fanout  (0) 2025.06.23