RC Timing Analysis
๊ฐ์
RC Timing Analysis๋ ๋์งํธ ํ๋ก์์ ์ ํธ ์ ๋ฌ ์ง์ฐ(propagation delay)์ ๋ถ์ํ๋ ํต์ฌ ๊ธฐ๋ฒ์ด๋ค. ์ค์ ๋ฐ๋์ฒด ์นฉ์์๋ ์ด์์ ์ธ ์ง์ ์ฐ๊ฒฐ์ด ์กด์ฌํ์ง ์์ผ๋ฉฐ, ๋ชจ๋ ๋ฐฐ์ (trace)์ ์ ํญ(R)๊ณผ ์ปคํจ์ํด์ค(C)๋ฅผ ๊ฐ๋ RC ๋คํธ์ํฌ๋ก ๋ชจ๋ธ๋ง๋๋ค. ํนํ ๋๋ ธ๋ฏธํฐ ๊ณต์ ์ผ๋ก ๋ฏธ์ธํ๊ฐ ์งํ๋ ์๋ก ๋ฐฐ์ ์ ํญ์ด ์ฆ๊ฐํ๊ณ RC delay๊ฐ ์ฑ๋ฅ์ ์ฃผ์ ๋ณ๋ชฉ์ด ๋๋ค.
DRAM, SRAM, CPU ๋ฑ ๊ณ ์ ๋ฉ๋ชจ๋ฆฌ/๋ ผ๋ฆฌ ํ๋ก ์ค๊ณ์์ RC timing ๋ถ์์ ์ ํํ timing margin ํ๋ณด์ signal integrity ๋ณด์ฅ์ ํ์์ ์ด๋ค.
์ด๊ธฐ ์ํคํ ์ฒ ๊ฒํ ์์๋ lumped RC์ฒ๋ผ ๋จ์ํ ๋ชจ๋ธ๋ก ๋ณ๋ชฉ ๋ฐฐ์ ์ ๋น ๋ฅด๊ฒ ์ฐพ๊ณ , ๋ฐฐ์ ๊ธธ์ด์ ๋ถ๊ธฐ๊ฐ ๋์ด๋๋ ๊ตฌ๊ฐ์์๋ distributed RC์ RC tree๋ก ๋ชจ๋ธ์ ์ธ๋ถํํ๋ค. ์ค์ sign-off ๋จ๊ณ์์๋ ๊ธฐ์ ์ถ์ถ(parasitic extraction) ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก setup, hold, slew, crosstalk ์ํฅ์ ํจ๊ป ๊ฒํ ํ๋ฉฐ, Elmore delay๋ ์ด ๋ณต์กํ ๋ถ์์ ์ฒซ ๋ฒ์งธ ๊ทผ์ฌ์น๋ก ๋๋ฆฌ ํ์ฉ๋๋ค.
๊ทธ๋ฆผ 1. ๋จ์ผ ์ ํญ๊ณผ ์ปคํจ์ํด์ค๋ก ๋ณด๋ ์ง์ค RC ๋ชจ๋ธ
๊ทธ๋ฆผ 2. ๊ธด ๋ฐฐ์ ์ ์ฌ๋ฌ ๊ตฌ๊ฐ์ผ๋ก ๋๋ ๋ถ์ฐ RC ์ ๋ก ๋ชจ๋ธ
๊ทธ๋ฆผ 3. ๋ถ๊ธฐ ๋ฐฐ์ ์์ Elmore delay๋ฅผ ๊ณ์ฐํ๋ RC ํธ๋ฆฌ ๋ชจ๋ธ
ํต์ฌ ๊ฐ๋
RC ์ํท ๊ธฐ๋ณธ ๋ชจ๋ธ
๋จ์ผ RC ํ๋ก์์ ๋จ๊ณ ์ ๋ ฅ(step input)์ด ์ฃผ์ด์ง ๋ ์ถ๋ ฅ ์ ์์ ์ง์ ํจ์๋ก ์๋ ดํ๋ค:
$$V_{out}(t) = V_{DD}(1 - e^{-t/RC})$$
- ์๊ฐ ์์(Time Constant, ฯ): ฯ = RC
- 50% ์ง์ฐ: tโ โ% = 0.69RC
- 63% ๋๋ฌ ์๊ฐ: tโโ% = RC (1ฯ)
Elmore Delay ๋ชจ๋ธ
๋ณต์กํ RC ํธ๋ฆฌ(tree) ๊ตฌ์กฐ์์ ๊ฐ ๋ ธ๋์ ์ง์ฐ์ ๊ทผ์ฌํ๊ธฐ ์ํ ๊ฐ์ฅ ๋๋ฆฌ ์ฐ์ด๋ ๋ชจ๋ธ์ด๋ค.
$$t_{Elmore} = \sum_{k} R_{k} \cdot C_{k}$$
- R_k: ๋ ธ๋ k๊น์ง์ ๊ฒฝ๋ก ์์ ๋์ ์ ํญ
- C_k: ๋ ธ๋ k์ ์ปคํจ์ํด์ค
Elmore Delay ๊ณต์ (RC ํธ๋ฆฌ)
RC ํธ๋ฆฌ ๊ตฌ์กฐ์์ ์์์ ๋ ธ๋ i๊น์ง์ Elmore delay๋:
$$t_i = \sum_{k \in Path(i)} R_k \cdot C_{subtree(k)}$$
์ฌ๊ธฐ์:
- Path(i): ๋ฃจํธ์์ ๋
ธ๋ i๊น์ง์ ๊ฒฝ๋ก์ ์๋ ๋ชจ๋ ๋
ธ๋
- C_subtree(k): ๋
ธ๋ k๋ฅผ ๋ฃจํธ๋ก ํ๋ ์๋ธํธ๋ฆฌ์ ์ ์ฒด ์ปคํจ์ํด์ค
์ง์ฐ์ ํด์
Elmore delay๋ RC ํธ๋ฆฌ์ 1์ฐจ ๋ชจ๋ฉํธ์ ํด๋นํ๋ ๋จ์ผ ์ง์ ๊ทผ์ฌ์ด๋ค. ์ค์ ์ถ๋ ฅ ํํ์ด ์์ ํ ์ง์ ํจ์๊ฐ ์๋๋๋ผ๋, ๊ฒฝ๋ก์์ ์ ํญ๊ณผ ํ๋ฅ ์ปคํจ์ํด์ค๋ง์ผ๋ก ๋น ๋ฅด๊ฒ ์ง์ฐ์ ์ถ์ ํ ์ ์์ด์ static timing analysis์์ ๋๋ฆฌ ์ด๋ค.
| ํญ๋ชฉ | ์๋ฏธ |
|---|---|
| Intrinsic delay | ๋ฐฐ์ ์์ฒด์ ์ ํญ๊ณผ ์ปคํจ์ํด์ค๋ก ์๊ธฐ๋ ์ง์ฐ |
| Extrinsic delay | ํ์ ๊ฒ์ดํธ ์ ๋ ฅ ์ปคํจ์ํด์ค์ฒ๋ผ ์ธ๋ถ ๋ถํ์์ ์ค๋ ์ง์ฐ |
| 50% propagation delay | t50 โ ln(2) ร T_D๋ก ๊ทผ์ฌ |
Wire Delay vs Gate Delay
| ํญ๋ชฉ | Wire Delay | Gate Delay |
|---|---|---|
| ์์ธ | ๋ฐฐ์ ์ ํญ + ์ปคํจ์ํด์ค | ํธ๋์ง์คํฐ ์ค์์นญ |
| ๊ณต์ ์์กด์ฑ | ๊ณต์ ์ถ์ ์ ์๋์ ์ฆ๊ฐ | ๊ณต์ ์ถ์ ์ ๊ฐ์ |
| ๋ชจ๋ธ๋ง | RC ๋คํธ์ํฌ | Logical Effort |
| ์ง๋ฐฐ ์์ญ | ๊ธด ๋ฐฐ์ (global interconnect) | ๋ก์ง ๊ฒ์ดํธ |
RC ๋คํธ์ํฌ ์ข ๋ฅ
- ๋จ์ผ RC ํ๋ก (Lumped RC): ํ๋์ R๊ณผ C๋ก ๊ตฌ์ฑ๋ ๊ฐ์ฅ ๋จ์ํ ๋ชจ๋ธ
- ์ฐ์ RC ๋ผ์ธ (Distributed RC): ๋ฐฐ์ ์ n๊ฐ์ RC ์ธ๊ทธ๋จผํธ๋ก ๋ถํ ํ ๋ชจ๋ธ
- RC ํธ๋ฆฌ (RC Tree): ๋ถ๊ธฐ(branch)๊ฐ ์๋ ๊ตฌ์กฐ, ์ค์ ๋ฐฐ์ ๋คํธ์ํฌ์ ๋ ๊ฐ๊น์
๋น๊ต/๋ถ์
RC ๋คํธ์ํฌ ์ข ๋ฅ๋ณ ํน์ฑ ๋น๊ต
| ํน์ฑ | Lumped RC | Distributed RC | RC Tree |
|---|---|---|---|
| ์ ํ๋ | ๋ฎ์ | ์ค๊ฐ | ๋์ |
| ๊ณ์ฐ ๋ณต์ก๋ | O(1) | O(n) | O(n) |
| ์ฌ์ฉ ์ฌ๋ก | ๋น ๋ฅธ ๊ทผ์ฌ | ์ง์ ๋ฐฐ์ | ์ค์ ๋ฐฐ์ ๋คํธ์ํฌ |
| ์ง์ฐ ๊ณต์ | RC | ์ฝ 0.38RC | Elmore |
๋ฏธ์ธํ์ ๋ฐ๋ฅธ RC ์ํฅ
| ์์ธ | ๋ณํ | RC delay ์ํฅ |
|---|---|---|
| ๋ฐฐ์ ๊ธธ์ด ์ฆ๊ฐ | R, C ์ฆ๊ฐ | ๊ธ๊ฒฉํ ์ฆ๊ฐ |
| ์ ํญ ๊ฐ์ | R ์ฆ๊ฐ | ์ฆ๊ฐ |
| ์ ์ ์ ์จ(Low-k) ์ ์ฉ | C ๊ฐ์ | ๊ฐ์ |
| ์์ ๊ธ์์ธต ์ฌ์ฉ | R ๊ฐ์ | ๊ฐ์ |
| ๋ถ๊ธฐ ์ฆ๊ฐ | ํ๋ฅ C ์ฆ๊ฐ | ์ฆ๊ฐ |
์ ํธ ๋ฐ์ (Polarity)์ ๋ฐ๋ฅธ ์ง์ฐ
| ๊ตฌ์กฐ | ์์น ์ง์ฐ | ํ๊ฐ ์ง์ฐ | ๋น๊ณ |
|---|---|---|---|
| ๋จ์ผ RC | 0.69RC | 0.69RC | ๋์นญ |
| CMOS inverter chain | ๋น๋์นญ | ๋น๋์นญ | P/N MOS ๋น์จ์ ์์กด |
| RC tree (capacitive coupling) | ์ฆ๊ฐ ๊ฐ๋ฅ | ์ฆ๊ฐ ๊ฐ๋ฅ | ์ธ์ ๋ฐฐ์ ํจ๊ณผ |
๋์ ์๋ฆฌ
1๋จ๊ณ: ๋ฐฐ์ ๋ชจ๋ธ๋ง
์ค์ ์นฉ์ ๋ฐฐ์ ์ ์๋์ ๊ฐ์ด RC ๋คํธ์ํฌ๋ก ๋ชจ๋ธ๋ง๋๋ค:
- ์ ํญ(R): ๋ฐฐ์ ์ ๋ฌผ๋ฆฌ์ ์ ํญ (๊ธธ์ด ร ๋จ์ ๊ธธ์ด๋น ์ ํญ)
- ์ปคํจ์ํด์ค(C):
- ๊ธฐํ ๋๋น ์ปคํจ์ํด์ค (C_sub)
- ์ธ์ ๋ฐฐ์ ๊ฐ ์ปคํจ์ํด์ค (C_c)
- ๊ฒ์ดํธ ์ ๋ ฅ ์ปคํจ์ํด์ค (C_gate)
2๋จ๊ณ: Elmore Delay ๊ณ์ฐ
RC ํธ๋ฆฌ ๊ตฌ์กฐ์์ ์์์ sink ๋ ธ๋๊น์ง์ ์ง์ฐ ๊ณ์ฐ:
t_delay = ฮฃ R_i ร C_i
- R_i: ๊ฒฝ๋ก ์ ๋ ธ๋ i์ ๋์ ์ ํญ
- C_i: ๋ ธ๋ i์ ์ ์ฒด ์ปคํจ์ํด์ค (์๋ธํธ๋ฆฌ ์ ์ฒด)
3๋จ๊ณ: Timing ๋ถ์
๊ณ์ฐ๋ ์ง์ฐ๊ฐ์ ์ด์ฉํ์ฌ:
- Setup time ํ์ธ: ์ต์ ์กฐ๊ฑด(์ต๋ ์ง์ฐ)์์ ๋ฐ์ดํฐ๊ฐ ์์ ๋ ์๊ฐ ํ๋ณด
- Hold time ํ์ธ: ์ต์ ์กฐ๊ฑด(์ต์ ์ง์ฐ)์์ ๋ฐ์ดํฐ๊ฐ ์ ์ง๋ ์๊ฐ ํ๋ณด
- ํด๋ญ ์ฃผ๊ธฐ ๊ฒฐ์ : ์ต๋ ์ง์ฐ + ์ค๋ฒํค๋ โค ํด๋ญ ์ฃผ๊ธฐ
4๋จ๊ณ: ์ต์ ํ
์ง์ฐ์ด ๋ชฉํ๋ฅผ ์ด๊ณผํ ๊ฒฝ์ฐ:
- ๋ฐฐ์ ํญ ์ฆ๊ฐ: ์ ํญ ๊ฐ์ (๋จ, ์ปคํจ์ํด์ค ์ฆ๊ฐ ๊ฐ๋ฅ)
- ๋ฐฐ์ ๊ธธ์ด ๊ฐ์: ๊ฒฝ๋ก ์ต์ ํ
- ๋ฒํผ/Repeater ์ฝ์ : RC ๋คํธ์ํฌ๋ฅผ ๋ถํ ํ์ฌ ์ง์ฐ ๊ฐ์
- ์ฌ๋ฃ ๋ณ๊ฒฝ: ๊ตฌ๋ฆฌ(Cu) ๋ฐฐ์ , ์ ์ ์ ์จ ์ ์ ์ฒด ์ฌ์ฉ
- ์์ด์ด ํ ์ดํผ๋ง: ๋๋ผ์ด๋ฒ ๊ฐ๊น์ด๋ ๋๊ป๊ฒ, ๋ถํ ์ชฝ์ ์๊ฒ ํ์ฌ ์ง์ฐ๊ณผ ๋ผ์ฐํ ์์์ ํจ๊ป ์กฐ์
์ฅ๋จ์
| ์ฅ์ | ๋จ์ |
|---|---|
| ๋น ๋ฅด๊ณ ๊ฐํธํ ์ง์ฐ ๊ทผ์ฌ ๊ฐ๋ฅ | ๋น์ ํ ํจ๊ณผ ๋ฌด์ (๊ธฐ๋ณธ ๋ชจ๋ธ) |
| ์ค๊ณ ์ด๊ธฐ ๋จ๊ณ์ ์ ์ฉ | ์์ธํ ์๋ฎฌ๋ ์ด์ ๋ณด๋ค ์ ํ๋ ๋ฎ์ |
| ์ต์ ํ ๋ฐฉํฅ ์ ์ | ์ธ๋ํด์ค ํจ๊ณผ ๋ฌด์ (๊ณ ์ฃผํ ์ ๋ถ์ ํ) |
| ์๋ํ ๋๊ตฌ์ ํธํ ์ฉ์ด | ๊ธฐ์ ์ปคํจ์ํด์ค ์ถ์ถ ์ ํ๋์ ์์กด |
๊ด๋ จ ๊ธฐ์
- Elmore, W.C. (1948): "The Transient Response of Damped Linear Networks with Particular Regard to Wideband Amplifiers" - Elmore delay ๋ชจ๋ธ ์ ๋ ผ๋ฌธ
- Horowitz, M. (1994): "Timing verification of digital circuits" - Stanford VLSI ๊ต์ฌ
- Sakurai, T. & Newton, A.R. (1990): "Alpha-power law MOSFET model and its applications to CMOS inverter delay and other formulas" - CMOS ๋๋ ์ด ๋ชจ๋ธ๋ง
- Bakoglu, H.B. (1990): "Circuits, Interconnections, and Packaging for VLSI" - ๋ฐฐ์ ๊ธฐ์ ํจ๊ณผ ๊ต๊ณผ์
- Synopsys PrimeTime: ์์ฉ STA ๋๊ตฌ (Static Timing Analysis)
- Cadence Tempus: ์์ฉ timing ๋ถ์ ๋๊ตฌ
๊ด๋ จ ๋ฌธ์
circuit_0005_mosfet_operation_principles.html- ํธ๋์ง์คํฐ ์ค์์นญ๊ณผ ๊ฒ์ดํธ ์ง์ฐ์ ๊ธฐ์ดcircuit_0010_digital_logic_gates.html- CMOS ๋ ผ๋ฆฌ ๊ฒ์ดํธ์ ์ง์ฐ ๊ฒฝ๋กcircuit_0015_memory_hierarchy.html- ์บ์์ ๋ฉ๋ชจ๋ฆฌ ๊ณ์ธต์์์ ์ธํฐ์ปค๋ฅํธ ์ง์ฐ
ํต์ฌ ์ ๋ฆฌ
RC Timing Analysis๋ ๋๋ ธ๋ฏธํฐ ๊ณต์ ์์ ์ฑ๋ฅ์ ์ข์ฐํ๋ ํต์ฌ ๋ถ์ ๊ธฐ๋ฒ์ด๋ค. Elmore delay ๋ชจ๋ธ์ ํ์ฉํ๋ฉด ๋ณต์กํ RC ๋คํธ์ํฌ์ ์ง์ฐ์ ํจ์จ์ ์ผ๋ก ๊ทผ์ฌํ ์ ์์ผ๋ฉฐ, ๊ณต์ ์ถ์์ ๋ฐ๋ผ ๋ฐฐ์ ๊ธฐ์ ํจ๊ณผ๊ฐ ๊ธ๊ฒฉํ ์ฆ๊ฐํจ์ ๋ฐ๋ผ ๋์ฑ ์ค์ํด์ง๊ณ ์๋ค. ์ค๋ฆฌ์ฝ ์์ค์ ์ ํํ ๋ถ์์ ์ํด์๋ ์์ฉ STA ๋๊ตฌ์ ๊ธฐ์ ์ถ์ถ ๋๊ตฌ์ ๊ฒฐํฉ์ด ํ์ํ๋ฉฐ, ์ค๊ณ ์ด๊ธฐ ๋จ๊ณ์์๋ Elmore ๋ชจ๋ธ ๊ธฐ๋ฐ์ ๋น ๋ฅธ ๋ถ์์ด ์ต์ ํ ๋ฐฉํฅ์ ์ ์ํ๋ค.