๐Ÿ“š SDC ๋งˆ์Šคํ„ฐ ํด๋ž˜์Šค ์‹œ๋ฆฌ์ฆˆ | Chapter 3

SDC ๋งˆ์Šคํ„ฐ ํด๋ž˜์Šค #3: STA์™€ Setup/Hold ์™„๋ฒฝ ์ดํ•ด
๐Ÿ“š SDC ๋งˆ์Šคํ„ฐ ํด๋ž˜์Šค ์‹œ๋ฆฌ์ฆˆ | Chapter 3

๐Ÿ“Š ํƒ€์ด๋ฐ ๋ถ„์„(STA)๊ณผ ์ œ์•ฝ ์กฐ๊ฑด์˜ ํ•ต์‹ฌ
Setup๊ณผ Hold ์™„๋ฒฝ ์ดํ•ดํ•˜๊ธฐ

"Constraining Designs for Synthesis and Timing Analysis" ์™„๋ฒฝ ํ•ด์„ค ์‹œ๋ฆฌ์ฆˆ

์ง€๋‚œ ์ฑ•ํ„ฐ์—์„œ ํ•ฉ์„ฑ์„ ํ†ตํ•ด RTL ์ฝ”๋“œ๋ฅผ ๊ฒŒ์ดํŠธ๋กœ ๋ณ€ํ™˜ํ–ˆ๋‹ค๋ฉด, ์ด์ œ๋Š” "๊ณผ์—ฐ ์ด ํšŒ๋กœ๊ฐ€ ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ์†๋„๋กœ ๋™์ž‘ํ• ๊นŒ?"๋ฅผ ๊ฒ€์ฆํ•  ์ฐจ๋ก€์ž…๋‹ˆ๋‹ค. ๐ŸŽฏ

๐ŸŽค ๋ฉด์ ‘ ๋‹จ๊ณจ ์งˆ๋ฌธ! Setup Time๊ณผ Hold Time์˜ ๊ฐœ๋…์ด ์—ฌ๊ธฐ์„œ ๋“ฑ์žฅํ•ฉ๋‹ˆ๋‹ค. ๋””์ง€ํ„ธ ํšŒ๋กœ ์„ค๊ณ„์˜ ๊ฝƒ์ด๋ผ ๋ถˆ๋ฆฌ๋Š” STA์˜ ๊ธฐ๋ณธ ์›๋ฆฌ๋ฅผ ๋งˆ์Šคํ„ฐํ•˜์„ธ์š”!

๐Ÿ†• 2026 ์—…๋ฐ์ดํŠธ: GPU ๊ฐ€์† STA (NVIDIA INSTA), ํด๋ผ์šฐ๋“œ ๋ถ„์‚ฐ STA (PrimeTime HyperGrid), AOCV/POCV ๊ธฐ๋ฐ˜ ๋ณ€๋™ ๋ถ„์„, AI ๊ธฐ๋ฐ˜ ํƒ€์ด๋ฐ ์ตœ์ ํ™” ๋“ฑ ๋ฐ˜์˜

1 ์™œ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋Œ€์‹  STA๋ฅผ ์“ธ๊นŒ? ๐Ÿค”

์šฐ๋ฆฌ๋Š” ํ”ํžˆ ํ…Œ์ŠคํŠธ๋ฒค์น˜(Testbench)๋ฅผ ๋งŒ๋“ค์–ด ํŒŒํ˜•์„ ํ™•์ธํ•˜๋Š” '๋™์  ์‹œ๋ฎฌ๋ ˆ์ด์…˜(Dynamic Simulation)'์„ ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ˆ˜์‹ญ์–ต ๊ฐœ์˜ ๊ฒŒ์ดํŠธ๊ฐ€ ์žˆ๋Š” ์ตœ์‹  ์นฉ์—์„œ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅ์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค.

๐Ÿ”

Static (์ •์ )

์ž…๋ ฅ ๋ฒกํ„ฐ(ํ…Œ์ŠคํŠธ ํŒจํ„ด)๋ฅผ ๋„ฃ์ง€ ์•Š์Šต๋‹ˆ๋‹ค

๐Ÿ“ˆ

Exhaustive (ํฌ๊ด„์ )

๋ชจ๋“  ๊ฒฝ๋กœ(Path)์˜ ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ˆ˜ํ•™์ ์œผ๋กœ ๊ณ„์‚ฐ

Worst Case

์ตœ์•…์˜ ์ƒํ™ฉ์—์„œ๋„ ๋™์ž‘ 100% ๋ณด์žฅ

2 ํƒ€์ด๋ฐ ๊ฒฝ๋กœ(Timing Path)์˜ ํ•ด๋ถ€ ๐Ÿ”ฌ

STA๋ฅผ ํ•˜๋ ค๋ฉด ๋จผ์ € ํšŒ๋กœ๋ฅผ '๊ฒฝ๋กœ(Path)' ๋‹จ์œ„๋กœ ์ชผ๊ฐœ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Š Typical Timing Path

STARTPOINT

๐Ÿ”ฒ Launch FF

Flip-Flop CLK

☁️ Combo Logic

์กฐํ•ฉ ํšŒ๋กœ

ENDPOINT

๐Ÿ”ฒ Capture FF

Flip-Flop D

Startpoint (์‹œ์ž‘์ )

๋ฐ์ดํ„ฐ๊ฐ€ ์˜์•„ ์˜ฌ๋ ค์ง€๋Š” ๊ณณ (์˜ˆ: ์ž…๋ ฅ ํฌํŠธ, Flip-Flop์˜ Clock ํ•€)

Endpoint (๋„์ฐฉ์ )

๋ฐ์ดํ„ฐ๊ฐ€ ๋„์ฐฉํ•ด์•ผ ํ•˜๋Š” ๊ณณ (์˜ˆ: ์ถœ๋ ฅ ํฌํŠธ, Flip-Flop์˜ Data ์ž…๋ ฅ ํ•€)

3 ๋””์ง€ํ„ธ ํšŒ๋กœ์˜ ์–‘๋Œ€ ์‚ฐ๋งฅ: Setup๊ณผ Hold ⚡

๐ŸŒŸ ์ด ์ฑ•ํ„ฐ์˜ ํ•˜์ด๋ผ์ดํŠธ! Launch Edge์—์„œ ์ถœ๋ฐœํ•˜์—ฌ Capture Edge์—์„œ ์•ˆ์ „ํ•˜๊ฒŒ ์ฐํžˆ๊ธฐ ์œ„ํ•ด ์ง€์ผœ์•ผ ํ•  ๋‘ ๊ฐ€์ง€ ๊ทœ์น™์ž…๋‹ˆ๋‹ค.

๐Ÿ”ด 3.1 Setup Time (์…‹์—… ํƒ€์ž„): "๋Šฆ์œผ๋ฉด ์•ˆ ๋ผ!"

๋ฐ์ดํ„ฐ๋Š” ํด๋Ÿญ์ด "์ฐฐ์นต" ํ•˜๊ณ  ์ฐ๊ธฐ ์ „์—, ๋ฏธ๋ฆฌ ๋„์ฐฉํ•ด์„œ ์ค€๋น„ํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ ์ •์˜

ํด๋Ÿญ ์—ฃ์ง€๊ฐ€ ๋œจ๊ธฐ(Rising) ์ „, ๋ฐ์ดํ„ฐ๊ฐ€ ์•ˆ์ •์ ์œผ๋กœ ์œ ์ง€๋˜์–ด์•ผ ํ•˜๋Š” ์ตœ์†Œ ์‹œ๊ฐ„

⚠️ ์œ„๋ฐ˜ ์‹œ

๋ฐ์ดํ„ฐ๊ฐ€ ๋„ˆ๋ฌด ๋Šฆ๊ฒŒ ๋„์ฐฉํ•˜๋ฉด, ๋‹ค์Œ ํด๋Ÿญ์— ์ฐํžˆ๊ฑฐ๋‚˜ ์•Œ ์ˆ˜ ์—†๋Š” ๊ฐ’(Metastability)์ด ๋ฉ๋‹ˆ๋‹ค. → ์ฃผํŒŒ์ˆ˜๋ฅผ ๋‚ฎ์ถ”๋ฉด ํ•ด๊ฒฐ ๊ฐ€๋Šฅ!

Setup Time ๊ณต์‹

Tlaunch + Tlogic < Tcapture - Tsetup

(๋ฐ์ดํ„ฐ ์ด๋™ ์‹œ๊ฐ„์ด, ๋‹ค์Œ ํด๋Ÿญ ์˜ค๊ธฐ ์ „ ์…‹์—… ํƒ€์ž„์„ ๋บ€ ์‹œ๊ฐ„๋ณด๋‹ค ๋นจ๋ผ์•ผ ํ•จ)

๐ŸŸข 3.2 Hold Time (ํ™€๋“œ ํƒ€์ž„): "๋„ˆ๋ฌด ๋นจ๋ผ๋„ ์•ˆ ๋ผ!"

๋ฐ์ดํ„ฐ๋Š” ํด๋Ÿญ์ด "์ฐฐ์นต" ํ•˜๊ณ  ์ฐ์€ ํ›„์—๋„, ์ž ์‹œ ๋™์•ˆ์€ ๋„๋ง๊ฐ€์ง€ ์•Š๊ณ  ๋จธ๋ฌผ๋Ÿฌ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ ์ •์˜

ํด๋Ÿญ ์—ฃ์ง€๊ฐ€ ๋œฌ ํ›„, ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€ํ•˜์ง€ ์•Š๊ณ  ์œ ์ง€๋˜์–ด์•ผ ํ•˜๋Š” ์ตœ์†Œ ์‹œ๊ฐ„

๐Ÿ’€ ์œ„๋ฐ˜ ์‹œ (์น˜๋ช…์ !)

๋‹ค์Œ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ˆ๋ฌด ๋นจ๋ฆฌ ๋ณด๋‚ด์„œ, ํ˜„์žฌ ์ฐ์–ด์•ผ ํ•  ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฎ์–ด์”Œ์›Œ์ง‘๋‹ˆ๋‹ค. → ์ฃผํŒŒ์ˆ˜๋ฅผ ๋‚ฎ์ถฐ๋„ ํ•ด๊ฒฐ ์•ˆ ๋จ! ์นฉ ์žฌ์ œ์ž‘(Re-spin) ํ•„์š”!

Hold Time ๊ณต์‹

Tlaunch + Tlogic > Tcapture + Thold

(๋ฐ์ดํ„ฐ ์ด๋™ ์‹œ๊ฐ„์ด, ํด๋Ÿญ์ด ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์‹คํžˆ ์žก์„ ๋•Œ๊นŒ์ง€์˜ ์‹œ๊ฐ„๋ณด๋‹ค ๊ธธ์–ด์•ผ ํ•จ)

⚖️ Setup vs Hold ๋น„๊ต

๊ตฌ๋ถ„ Setup Violation Hold Violation
์›์ธ ๋ฐ์ดํ„ฐ๊ฐ€ ๋„ˆ๋ฌด ๋Šฆ๊ฒŒ ๋„์ฐฉ ๋ฐ์ดํ„ฐ๊ฐ€ ๋„ˆ๋ฌด ๋นจ๋ฆฌ ๋ณ€๊ฒฝ
์ฃผํŒŒ์ˆ˜ ๋‚ฎ์ถ”๋ฉด? ✅ ํ•ด๊ฒฐ ๊ฐ€๋Šฅ ❌ ํ•ด๊ฒฐ ๋ถˆ๊ฐ€
์‹ฌ๊ฐ๋„ ⚠️ ์„ฑ๋Šฅ ์ €ํ•˜ ๐Ÿ’€ ์นฉ ์žฌ์ œ์ž‘

4 ์Šฌ๋ž™(Slack): ํ•ฉ๊ฒฉ๊ณผ ๋ถˆํ•ฉ๊ฒฉ์˜ ๊ธฐ์ค€ ๐Ÿ“Š

์„ค๊ณ„์ž๊ฐ€ STA ๋ฆฌํฌํŠธ์—์„œ ๊ฐ€์žฅ ๋จผ์ € ํ™•์ธํ•˜๋Š” ์ˆซ์ž๊ฐ€ ๋ฐ”๋กœ ์Šฌ๋ž™(Slack)์ž…๋‹ˆ๋‹ค.

Slack ๊ณ„์‚ฐ ๊ณต์‹

Slack = Data Required Time - Data Arrival Time

✅ Positive Slack (+)

์—ฌ์œ ๊ฐ€ ์žˆ์Œ = ์„ค๊ณ„ ์„ฑ๊ณต!

๐Ÿ“Œ ์˜ˆ: 10ns ์•ˆ์— ์™€์•ผ ํ•˜๋Š”๋ฐ 8ns ๋งŒ์— ๋„์ฐฉ
Slack = +2ns

❌ Negative Slack (-)

์‹œ๊ฐ„ ์œ„๋ฐ˜ = ์ˆ˜์ • ํ•„์š”!

๐Ÿ“Œ ์˜ˆ: 10ns ์•ˆ์— ์™€์•ผ ํ•˜๋Š”๋ฐ 11ns ๋งŒ์— ๋„์ฐฉ
Slack = -1ns

5 PVT์™€ ์ฝ”๋„ˆ(Corners) ๐ŸŒก️

์ฑ•ํ„ฐ 2์—์„œ ์ž ๊น ์–ธ๊ธ‰ํ–ˆ๋˜ PVT๊ฐ€ ์—ฌ๊ธฐ์„œ ๋‹ค์‹œ ์ค‘์š”ํ•ด์ง‘๋‹ˆ๋‹ค. Setup๊ณผ Hold๋ฅผ ๊ฒ€์‚ฌํ•˜๋Š” ์ตœ์•…์˜ ์กฐ๊ฑด์ด ์„œ๋กœ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๊ตฌ๋ถ„ ๊ฒ€์‚ฌ ํ™˜๊ฒฝ (Corner) ์„ค๋ช…
Setup Check Slow Corner
(Max Delay)
Slow Process, Low Voltage, High Temp
→ ์ตœ์•…์˜ ์ƒํ™ฉ์—์„œ๋„ ์ œ์‹œ๊ฐ„์— ๋„์ฐฉํ•˜๋Š”๊ฐ€?
Hold Check Fast Corner
(Min Delay)
Fast Process, Low Temp, High Voltage
→ ๋ฐ์ดํ„ฐ๊ฐ€ ๋„ˆ๋ฌด ๋นจ๋ฆฌ ์ง€๋‚˜๊ฐ€๋ฒ„๋ฆฌ์ง€ ์•Š๋Š”๊ฐ€?

๐Ÿ†• 2026 STA ๋„๊ตฌ ํ˜„ํ™ฉ

Synopsys PrimeTime

์—…๊ณ„ ํ‘œ์ค€ ์‚ฌ์ธ์˜คํ”„ ๋„๊ตฌ. HyperGrid๋กœ ํด๋ผ์šฐ๋“œ ๋ถ„์‚ฐ STA ์ง€์›

Cadence Tempus

๊ณ ๊ธ‰ ๋…ธ๋“œ๋ฅผ ์œ„ํ•œ ๋น ๋ฅด๊ณ  ์ •ํ™•ํ•œ ํƒ€์ด๋ฐ ๊ฒ€์ฆ

NVIDIA INSTA

GPU ๊ฐ€์† STA. ์ตœ๋Œ€ 14๋ฐฐ ์†๋„ ํ–ฅ์ƒ, ๊ทธ๋ž˜๋””์–ธํŠธ ๊ธฐ๋ฐ˜ ์ตœ์ ํ™” ์ง€์›

6 ์ œ์•ฝ ์กฐ๊ฑด(Constraints)์˜ ์ข…๋ฅ˜ ๐Ÿ“

๋งˆ์ง€๋ง‰์œผ๋กœ ์ฑ…์€ ์šฐ๋ฆฌ๊ฐ€ ์•ž์œผ๋กœ ๋ฐฐ์šธ SDC ๋ช…๋ น์–ด๋“ค์„ ์„ธ ๊ฐ€์ง€ ์นดํ…Œ๊ณ ๋ฆฌ๋กœ ๋ถ„๋ฅ˜ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ข

Assertions (์ฃผ์žฅ)

์„ค๊ณ„์ž๊ฐ€ ๋ฐ”๊ฟ€ ์ˆ˜ ์—†๋Š” ๋ฌผ๋ฆฌ์  ์‚ฌ์‹ค๋“ค

set_load

Commands (๋ช…๋ น)

ํˆด์—๊ฒŒ ์ตœ์ ํ™” ๋ชฉํ‘œ๋ฅผ ์ฃผ๋Š” ๊ฒƒ

create_clock

๐Ÿšซ

Exceptions (์˜ˆ์™ธ)

๋ถ„์„์—์„œ ์ œ์™ธํ•  ๊ฒƒ๋“ค

set_false_path

๐ŸŽฏ ๋งˆ๋ฌด๋ฆฌ

"Setup์€ ๋‹ค์Œ ํด๋Ÿญ ์ „๊นŒ์ง€ ๋„์ฐฉํ•˜๋Š” ๊ฒƒ,
Hold๋Š” ํด๋Ÿญ์ด ์ฐ์„ ๋•Œ๊นŒ์ง€ ๋ฒ„ํ‹ฐ๋Š” ๊ฒƒ"


์ด ๊ฐœ๋…์ด ํ”๋“ค๋ฆฌ๋ฉด ๋’ค์— ๋‚˜์˜ฌ ๋ณต์žกํ•œ ํด๋Ÿญ ์„ค์ •์ด๋‚˜
์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค!

๐Ÿ“– ๋‹ค์Œ ์ฑ•ํ„ฐ ์˜ˆ๊ณ : ์ฑ•ํ„ฐ 4์—์„œ๋Š” ์ด๋ก ์„ ๋„˜์–ด, ์‹ค์ œ Tcl ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ SDC๋ฅผ ์–ด๋–ป๊ฒŒ ํšจ์œจ์ ์œผ๋กœ ์ž‘์„ฑํ•˜๋Š”์ง€ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํˆด์„ ๋‹ค๋ฃจ๋Š” ์Šคํฌ๋ฆฝํŠธ ๋Šฅ๋ ฅ์„ ํ‚ค์šธ ์‹œ๊ฐ„์ด๋„ค์š”! ๐Ÿ’ป

๐Ÿ“š SDC Master Class - ์ „์ฒด ์ฑ•ํ„ฐ ๋ฐ”๋กœ๊ฐ€๊ธฐ

● Ch1-5: ํด๋Ÿญ ● Ch6-8: I/O ● Ch9-10: ์˜ˆ์™ธ ● Ch11-12: CDC ● Ch13-15: ๋ถ„์„ ● Ch16-17: ๊ธฐํƒ€

๋Œ“๊ธ€

์ด ๋ธ”๋กœ๊ทธ์˜ ์ธ๊ธฐ ๊ฒŒ์‹œ๋ฌผ

๐Ÿ“š SDC ๋งˆ์Šคํ„ฐ ํด๋ž˜์Šค ์‹œ๋ฆฌ์ฆˆ | Chapter 1

๐Ÿ“š SDC ๋งˆ์Šคํ„ฐ ํด๋ž˜์Šค ์‹œ๋ฆฌ์ฆˆ | Chapter 2