๐ 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๋ฅผ ์ด๋ป๊ฒ ํจ์จ์ ์ผ๋ก ์์ฑํ๋์ง ์์๋ณด๊ฒ ์ต๋๋ค. ํด์ ๋ค๋ฃจ๋ ์คํฌ๋ฆฝํธ ๋ฅ๋ ฅ์ ํค์ธ ์๊ฐ์ด๋ค์! ๐ป
๋๊ธ
๋๊ธ ์ฐ๊ธฐ