โšก Circuit

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๋Š” ์ด ๋ณต์žกํ•œ ๋ถ„์„์˜ ์ฒซ ๋ฒˆ์งธ ๊ทผ์‚ฌ์น˜๋กœ ๋„๋ฆฌ ํ™œ์šฉ๋œ๋‹ค.

์ง‘์ค‘ RC ๋ชจ๋ธ

๊ทธ๋ฆผ 1. ๋‹จ์ผ ์ €ํ•ญ๊ณผ ์ปคํŒจ์‹œํ„ด์Šค๋กœ ๋ณด๋Š” ์ง‘์ค‘ RC ๋ชจ๋ธ

๋ถ„์‚ฐ RC ์„ ๋กœ ๋ชจ๋ธ

๊ทธ๋ฆผ 2. ๊ธด ๋ฐฐ์„ ์„ ์—ฌ๋Ÿฌ ๊ตฌ๊ฐ„์œผ๋กœ ๋‚˜๋ˆˆ ๋ถ„์‚ฐ RC ์„ ๋กœ ๋ชจ๋ธ

RC ํŠธ๋ฆฌ์™€ Elmore delay

๊ทธ๋ฆผ 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 ๋„คํŠธ์›Œํฌ ์ข…๋ฅ˜

  1. ๋‹จ์ผ RC ํšŒ๋กœ (Lumped RC): ํ•˜๋‚˜์˜ R๊ณผ C๋กœ ๊ตฌ์„ฑ๋œ ๊ฐ€์žฅ ๋‹จ์ˆœํ•œ ๋ชจ๋ธ
  2. ์—ฐ์† RC ๋ผ์ธ (Distributed RC): ๋ฐฐ์„ ์„ n๊ฐœ์˜ RC ์„ธ๊ทธ๋จผํŠธ๋กœ ๋ถ„ํ• ํ•œ ๋ชจ๋ธ
  3. 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 ๋„คํŠธ์›Œํฌ๋กœ ๋ชจ๋ธ๋ง๋œ๋‹ค:

  1. ์ €ํ•ญ(R): ๋ฐฐ์„ ์˜ ๋ฌผ๋ฆฌ์  ์ €ํ•ญ (๊ธธ์ด ร— ๋‹จ์œ„ ๊ธธ์ด๋‹น ์ €ํ•ญ)
  2. ์ปคํŒจ์‹œํ„ด์Šค(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 ๋ถ„์„

๊ณ„์‚ฐ๋œ ์ง€์—ฐ๊ฐ’์„ ์ด์šฉํ•˜์—ฌ:

  1. Setup time ํ™•์ธ: ์ตœ์•… ์กฐ๊ฑด(์ตœ๋Œ€ ์ง€์—ฐ)์—์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ์•ˆ์ •๋  ์‹œ๊ฐ„ ํ™•๋ณด
  2. Hold time ํ™•์ธ: ์ตœ์†Œ ์กฐ๊ฑด(์ตœ์†Œ ์ง€์—ฐ)์—์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ์ง€๋  ์‹œ๊ฐ„ ํ™•๋ณด
  3. ํด๋Ÿญ ์ฃผ๊ธฐ ๊ฒฐ์ •: ์ตœ๋Œ€ ์ง€์—ฐ + ์˜ค๋ฒ„ํ—ค๋“œ โ‰ค ํด๋Ÿญ ์ฃผ๊ธฐ

4๋‹จ๊ณ„: ์ตœ์ ํ™”

์ง€์—ฐ์ด ๋ชฉํ‘œ๋ฅผ ์ดˆ๊ณผํ•  ๊ฒฝ์šฐ:

  1. ๋ฐฐ์„  ํญ ์ฆ๊ฐ€: ์ €ํ•ญ ๊ฐ์†Œ (๋‹จ, ์ปคํŒจ์‹œํ„ด์Šค ์ฆ๊ฐ€ ๊ฐ€๋Šฅ)
  2. ๋ฐฐ์„  ๊ธธ์ด ๊ฐ์†Œ: ๊ฒฝ๋กœ ์ตœ์ ํ™”
  3. ๋ฒ„ํผ/Repeater ์‚ฝ์ž…: RC ๋„คํŠธ์›Œํฌ๋ฅผ ๋ถ„ํ• ํ•˜์—ฌ ์ง€์—ฐ ๊ฐ์†Œ
  4. ์žฌ๋ฃŒ ๋ณ€๊ฒฝ: ๊ตฌ๋ฆฌ(Cu) ๋ฐฐ์„ , ์ €์œ ์ „์œจ ์œ ์ „์ฒด ์‚ฌ์šฉ
  5. ์™€์ด์–ด ํ…Œ์ดํผ๋ง: ๋“œ๋ผ์ด๋ฒ„ ๊ฐ€๊นŒ์ด๋Š” ๋‘๊ป๊ฒŒ, ๋ถ€ํ•˜ ์ชฝ์€ ์–‡๊ฒŒ ํ•˜์—ฌ ์ง€์—ฐ๊ณผ ๋ผ์šฐํŒ… ์ž์›์„ ํ•จ๊ป˜ ์กฐ์ ˆ

์žฅ๋‹จ์ 

์žฅ์  ๋‹จ์ 
๋น ๋ฅด๊ณ  ๊ฐ„ํŽธํ•œ ์ง€์—ฐ ๊ทผ์‚ฌ ๊ฐ€๋Šฅ ๋น„์„ ํ˜• ํšจ๊ณผ ๋ฌด์‹œ (๊ธฐ๋ณธ ๋ชจ๋ธ)
์„ค๊ณ„ ์ดˆ๊ธฐ ๋‹จ๊ณ„์— ์œ ์šฉ ์ƒ์„ธํ•œ ์‹œ๋ฎฌ๋ ˆ์ด์…˜๋ณด๋‹ค ์ •ํ™•๋„ ๋‚ฎ์Œ
์ตœ์ ํ™” ๋ฐฉํ–ฅ ์ œ์‹œ ์ธ๋•ํ„ด์Šค ํšจ๊ณผ ๋ฌด์‹œ (๊ณ ์ฃผํŒŒ ์‹œ ๋ถ€์ •ํ™•)
์ž๋™ํ™” ๋„๊ตฌ์™€ ํ˜ธํ™˜ ์šฉ์ด ๊ธฐ์ƒ ์ปคํŒจ์‹œํ„ด์Šค ์ถ”์ถœ ์ •ํ™•๋„์— ์˜์กด

๊ด€๋ จ ๊ธฐ์ˆ 

  • 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 ๋ชจ๋ธ ๊ธฐ๋ฐ˜์˜ ๋น ๋ฅธ ๋ถ„์„์ด ์ตœ์ ํ™” ๋ฐฉํ–ฅ์„ ์ œ์‹œํ•œ๋‹ค.