0. 목표
- STA Tool이 어떻게 Setup/Hold Violation을 계산하고 리포트할까?
- STA Tool이 보고하는 Setup/Hold Violation의 원인은 무엇이고, 진짜 문제인지? 아니면 Tool의 한계인지?
- 여러 개의 Setup/Hold Violation이 있을 경우, 진짜 원인을 어떻게 찾아낼 것인지?
1. 개념 정리
- Setup Time:
데이터를 클럭 엣지 이전에 미리 안정적으로 도착해 있어야 하는 시간
즉, 클럭이 올라가기 전에 데이터가 준비되어야 하는 최소 선행 시간.
클럭 엣지 전에 데이터가 안정적으로 도착해야 하는 시간 - Hold Time:
클럭 엣지가 발생한 후에도 데이터를 일정 시간 동안 유지해야 하는 시간
즉, 데이터를 너무 빨리 바꾸면 안 되는 최소 유지 시간.
클럭 엣지 이후에도 데이터를 유지해야 하는 시간 - Clock Skew:
같은 클럭 신호가 여러 플립플롭에 도달할 때, 도달 시간에 차이가 생기는 현상.
즉, Launch FF와 Capture FF에 클럭이 도달하는 시간이 다를 경우 그 차이를 Skew라고 부른다.
2. 개념 이해
FF1(Launch FF), FF2(Capture FF) 두 개의 플립플롭이 있는데,
타이밍 path에서 데이터의 발생(Launch)과 캡쳐(Capture)를 담당한다.
skew가 없는 상황이라고 가정.
Netdelay는 Ideal 하다고 가정.
FF1이 클럭 엣지 "1"에서 발생시킨 데이터는 클럭 엣지 "2"에서 FF2(Capture FF)에 의해 캡쳐된다.
Setup 및 Hold 체크는 FF2를 기준으로 이루어집니다. 그렇기 때문에, FF2의 클럭 엣지를 기준으로 생각해야 합니다.
CLK2의 2번 엣지가 FF2의 Capture Clock인데, CLK1에서 발생한 데이터는 클럭 엣지 "1"에서 "A"라는 값을 갖고, 엣지 "2"에서는 "B" 값을 갖는다.
이 데이터가 도달한 시점은 다이어그램 상 "D2"이다.
FF2의 Setup Time과 Hold Time은 회색, 갈색처럼 표시된다.
- FF2의 Setup 조건:
데이터 A는 D2 지점에서 안정된 상태여야 하고, CLK2의 2번 클럭 엣지 이전에 Setup Time이 만족되어야 한다. - FF2의 Hold 조건:
데이터 A는 D2 지점에서 안정된 상태여야 하고, CLK2의 2번 클럭 엣지 이후에 Hold Time만큼 유지되어야 한다.
A를 불안정하게 만들 수 있는 데이터는 CLK1의 2번 엣지에서 발생한 B가 유일하다. 이 데이터가 Hold Time 범위 내에 D2에 도달할 경우 문제가 발생한다.
따라서 B 데이터는 CLK2의 2번 엣지 이후의 Hold Time 이후에만 D2에 도달해야 한다.
위 그림에선 B는 갈색 영역 밖에 있기때문에 A는 그 시간동안 안정적으로 유지된다.
정리해보면
Setup Violation 발생 시
- 동일한 데이터 : A
- 서로 다른 클럭 엣지 :
- CLK1의 1번 엣지
- CLK2의 2번 엣지
Hold Violation 발생 시
- 동일한 데이터 : B
- 동일한 클럭 엣지 :
- CLK1의 2번 엣지
- CLK2의 2번 엣지
Violation 판별 기준
- A가 회색 영역 안에 있으면 Setup Violation
- B가 갈색 영역 안에 있으면 Hold Violation
이론적으로 이해는 되지만, 디자인에 실제 입력 데이터가 주어지지 않은 상태에서 타이밍 툴은 어떻게 어떤 데이터가 언제 발생하는지 판단할까?라는 질문이 생길 수 있다.
그니까, CLK1이 1이나 2엣지에서 어떤 데이터를 Launch 했는지 알 수 없는데, Setup과 Hold Violation을 어떻게 계산하냐는 의문이 들 수 있다.
Timing Analysis 및 Setup/Hold Violation 판단 로직
위 그림에서 ==A==는 ==CLK1의 엣지1== 에서 발생한 데이터고, ==B==는 ==CLK1의 엣지2==에서 발생한 데이터다. 해당 다이어그램은 두 데이터가 D2 지점에 도달하는 시점을 보여주고 있다. (CLK2 기준)
B가 너무 일찍 도착하면
D2에 너무 일찍 도착하면, 엣지 2의 Hold Time에 포함될 수 있다.
그러면 A를 불안정하게 만들어 Hold Violation이 발생한다.
B가 너무 늦게 도착하면
D2에 너무 늦게 도착하면, 엣지 3의 Setup Time 이전에 포함될 수 있다.
그러면 A가 Setup Time을 만족하지 못하기에 Setup Violation이 발생한다.
Timing Analysis 정보
Clock Frequency : Tool은 엣지 1, 2, 3의 시간 차이를 정확하게 알고 있다.
Data 전달 시간(Q1 → D2) : 회로 지연 기반으로 계산
플립플롭 라이브러리 정보 : Setup Time, Hold Time, Edge Trigger 방식(Positive/Negative)을 가져온다.
Net Delay, Clock Path Skew 등도 STA 수행 시점에 따라 적용된다.
그래서 Tool은 신호가 실제로 어떻게 이동하는 지 몰라도,
이 모든 정보를 기반으로 정확히 Setup/Hold Violation 여부를 판단할 수 있다.
'( * )Engineering > 💿Semiconductor' 카테고리의 다른 글
[설계 용어] Unate (0) | 2025.06.23 |
---|---|
[설계 용어] STA(Static Timing Analysis) (0) | 2025.06.23 |
[설계 용어] Increamental Delay (0) | 2025.06.23 |
[설계 용어] Fanout (0) | 2025.06.23 |
[설계 용어] Co-Design (0) | 2025.06.23 |