VLSI Wiki
Contents:
  1. Timing Closure Algorithms
    1. 1. Definition: What is Timing Closure Algorithms?
    2. 2. Components and Operating Principles
      1. 2.1 Timing Closure Techniques
    3. 3. Related Technologies and Comparison
    4. 4. References
    5. 5. One-line Summary

Timing Closure Algorithms

1. Definition: What is Timing Closure Algorithms?

Timing Closure Algorithms๋Š” ๋””์ง€ํ„ธ ํšŒ๋กœ ์„ค๊ณ„์—์„œ ํšŒ๋กœ์˜ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•˜๊ณ  ์š”๊ตฌ๋˜๋Š” ํƒ€์ด๋ฐ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค. ์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ VLSI(์ดˆ๋Œ€ํ˜• ์ง‘์  ํšŒ๋กœ) ์„ค๊ณ„์˜ ์ค‘์š”ํ•œ ๋‹จ๊ณ„ ์ค‘ ํ•˜๋‚˜๋กœ, ์„ค๊ณ„๋œ ํšŒ๋กœ์˜ ๋™์ž‘์ด ์ฃผ์–ด์ง„ ํด๋Ÿญ ์ฃผํŒŒ์ˆ˜์—์„œ ์ •์ƒ์ ์œผ๋กœ ์ˆ˜ํ–‰๋  ์ˆ˜ ์žˆ๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. ํƒ€์ด๋ฐ ํด๋กœ์ €๋Š” ํŠนํžˆ ๊ณ ์† ๋””์ง€ํ„ธ ํšŒ๋กœ์—์„œ ํ•„์ˆ˜์ ์ด๋ฉฐ, ํšŒ๋กœ์˜ ๊ฐ ๊ฒฝ๋กœ๊ฐ€ ์š”๊ตฌ๋˜๋Š” ์‹œ๊ฐ„ ๋‚ด์— ์‹ ํ˜ธ๋ฅผ ์ „์†กํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

ํƒ€์ด๋ฐ ํด๋กœ์ € ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ค‘์š”์„ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ฒซ์งธ, ํšŒ๋กœ์˜ ์„ฑ๋Šฅ์„ ๊ทน๋Œ€ํ™”ํ•˜์—ฌ ๋” ๋†’์€ ํด๋Ÿญ ์ฃผํŒŒ์ˆ˜๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ๋‘˜์งธ, ์ „๋ ฅ ์†Œ๋น„๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ณ  ํšจ์œจ์„ฑ์„ ๋†’์ด๋Š” ๋ฐ ๊ธฐ์—ฌํ•ฉ๋‹ˆ๋‹ค. ์…‹์งธ, ์„ค๊ณ„์˜ ๋ณต์žก์„ฑ์ด ์ฆ๊ฐ€ํ•จ์— ๋”ฐ๋ผ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ํƒ€์ด๋ฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์—ฌ ์‹ ๋ขฐ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•๋ก ์„ ํ†ตํ•ด ๊ตฌํ˜„๋˜๋ฉฐ, ๊ฐ ๋ฐฉ๋ฒ•๋ก ์€ ํŠน์ • ์„ค๊ณ„ ์š”๊ตฌ ์‚ฌํ•ญ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

Timing Closure Algorithms๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹จ๊ณ„๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋จผ์ €, ์ดˆ๊ธฐ ํƒ€์ด๋ฐ ๋ถ„์„์„ ํ†ตํ•ด ํšŒ๋กœ์˜ ๊ฒฝ๋กœ๋ฅผ ํ‰๊ฐ€ํ•˜๊ณ , ๊ทธ ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ํ•„์š”ํ•œ ์ตœ์ ํ™” ์ž‘์—…์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ํ›„, ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๊ฒฝ๋กœ๋ฅผ ์žฌ์กฐ์ •ํ•˜๊ฑฐ๋‚˜ ํšŒ๋กœ์˜ ๊ตฌ์กฐ๋ฅผ ๋ณ€๊ฒฝํ•˜์—ฌ ํƒ€์ด๋ฐ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋„๋ก ์„ค๊ณ„๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ณผ์ •์€ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ˆ˜ํ–‰๋˜๋ฉฐ, ์ตœ์ข…์ ์œผ๋กœ ๋ชจ๋“  ๊ฒฝ๋กœ๊ฐ€ ์š”๊ตฌ๋œ ํƒ€์ด๋ฐ์„ ์ถฉ์กฑํ•  ๋•Œ๊นŒ์ง€ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.

2. Components and Operating Principles

Timing Closure Algorithms๋Š” ์—ฌ๋Ÿฌ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ, ๊ฐ ๊ตฌ์„ฑ ์š”์†Œ๋Š” ์„œ๋กœ ์ƒํ˜ธ ์ž‘์šฉํ•˜์—ฌ ์ตœ์ ์˜ ํƒ€์ด๋ฐ ํด๋กœ์ €๋ฅผ ๋‹ฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ฃผ์š” ๋‹จ๊ณ„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. Static Timing Analysis (STA): STA๋Š” ํšŒ๋กœ์˜ ํƒ€์ด๋ฐ ํŠน์„ฑ์„ ๋ถ„์„ํ•˜๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค. ์ด ๋‹จ๊ณ„์—์„œ๋Š” ๊ฐ ๊ฒฝ๋กœ์˜ ์ง€์—ฐ ์‹œ๊ฐ„์„ ๊ณ„์‚ฐํ•˜๊ณ , ํด๋Ÿญ ์ฃผํŒŒ์ˆ˜์— ๋”ฐ๋ฅธ ํƒ€์ด๋ฐ ์—ฌ์œ ๋ฅผ ํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. STA๋Š” ํšŒ๋กœ์˜ ๋ชจ๋“  ๊ฒฝ๋กœ๋ฅผ ํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ํƒ€์ด๋ฐ ๋ฌธ์ œ๋ฅผ ์กฐ๊ธฐ์— ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค.

  2. Path Optimization: ๊ฒฝ๋กœ ์ตœ์ ํ™”๋Š” STA์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ์ด ๋‹จ๊ณ„์—์„œ๋Š” ์ง€์—ฐ ์‹œ๊ฐ„์ด ๊ธด ๊ฒฝ๋กœ๋ฅผ ์‹๋ณ„ํ•˜๊ณ , ํ•ด๋‹น ๊ฒฝ๋กœ์˜ ์ง€์—ฐ์„ ์ค„์ด๊ธฐ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ๊ธฐ์ˆ ์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ฒŒ์ดํŠธ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•˜๊ฑฐ๋‚˜, ์ถ”๊ฐ€์ ์ธ ๋ฒ„ํผ๋ฅผ ์‚ฝ์ž…ํ•˜์—ฌ ์‹ ํ˜ธ ์ „์†ก ์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  3. Clock Tree Synthesis (CTS): ํด๋Ÿญ ํŠธ๋ฆฌ ํ•ฉ์„ฑ์€ ํด๋Ÿญ ์‹ ํ˜ธ๋ฅผ ๋ชจ๋“  ํ”Œ๋ฆฝํ”Œ๋กญ์— ๊ท ๋“ฑํ•˜๊ฒŒ ๋ถ„๋ฐฐํ•˜๊ธฐ ์œ„ํ•œ ๊ณผ์ •์ž…๋‹ˆ๋‹ค. CTS๋Š” ํด๋Ÿญ ์ง€์—ฐ์„ ์ตœ์†Œํ™”ํ•˜๊ณ , ํด๋Ÿญ ์‹ ํ˜ธ์˜ ์™œ๊ณก์„ ๋ฐฉ์ง€ํ•˜์—ฌ ํƒ€์ด๋ฐ ํด๋กœ์ €๋ฅผ ๋‹ฌ์„ฑํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ ํด๋Ÿญ ํŠธ๋ฆฌ์˜ ์„ค๊ณ„๋Š” ์‹ ํ˜ธ ์ „์†ก ์ง€์—ฐ์„ ๊ณ ๋ คํ•˜์—ฌ ์ตœ์ ํ™”๋ฉ๋‹ˆ๋‹ค.

  4. Dynamic Simulation: ๋™์  ์‹œ๋ฎฌ๋ ˆ์ด์…˜์€ ํšŒ๋กœ์˜ ๋™์ž‘์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜์—ฌ ํƒ€์ด๋ฐ ํด๋กœ์ €๋ฅผ ๊ฒ€์ฆํ•˜๋Š” ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ๋Š” ์‹ค์ œ ์‹ ํ˜ธ ์ „์†ก์„ ๋ชจ์‚ฌํ•˜์—ฌ ํƒ€์ด๋ฐ ์š”๊ตฌ ์‚ฌํ•ญ์ด ์ถฉ์กฑ๋˜๋Š”์ง€๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋™์  ์‹œ๋ฎฌ๋ ˆ์ด์…˜์€ STA์™€ ๊ฒฐํ•ฉํ•˜์—ฌ ๋”์šฑ ์ •ํ™•ํ•œ ํƒ€์ด๋ฐ ๋ถ„์„์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

  5. Iterative Refinement: ์ตœ์ ํ™” ๊ณผ์ •์€ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ๊ฐ ๋ฐ˜๋ณต์€ STA, ๊ฒฝ๋กœ ์ตœ์ ํ™”, CTS ๋ฐ ๋™์  ์‹œ๋ฎฌ๋ ˆ์ด์…˜์„ ํฌํ•จํ•˜์—ฌ, ์ตœ์ข…์ ์œผ๋กœ ๋ชจ๋“  ๊ฒฝ๋กœ๊ฐ€ ์š”๊ตฌ๋œ ํƒ€์ด๋ฐ์„ ์ถฉ์กฑํ•  ๋•Œ๊นŒ์ง€ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ ๋‹ค์–‘ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ๊ธฐ์ˆ ์ด ์กฐํ•ฉ๋˜์–ด ์ตœ์ ์˜ ๊ฒฐ๊ณผ๋ฅผ ๋„์ถœํ•ฉ๋‹ˆ๋‹ค.

2.1 Timing Closure Techniques

Timing Closure Algorithms์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ์ˆ ๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • Retiming: Retiming์€ ํ”Œ๋ฆฝํ”Œ๋กญ์˜ ์œ„์น˜๋ฅผ ๋ณ€๊ฒฝํ•˜์—ฌ ๊ฒฝ๋กœ ์ง€์—ฐ์„ ์กฐ์ •ํ•˜๋Š” ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ด ๊ธฐ๋ฒ•์€ ์‹ ํ˜ธ ์ „์†ก ์‹œ๊ฐ„์„ ์ค„์ด๊ณ , ํƒ€์ด๋ฐ ํด๋กœ์ €๋ฅผ ๋‹ฌ์„ฑํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค๋‹ˆ๋‹ค.

  • Buffer Insertion: ์ถ”๊ฐ€์ ์ธ ๋ฒ„ํผ๋ฅผ ์‚ฝ์ž…ํ•˜์—ฌ ์‹ ํ˜ธ ์ „์†ก ์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ด ๊ธฐ๋ฒ•์€ ํŠนํžˆ ๊ธด ๊ฒฝ๋กœ์—์„œ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค.

  • Gate Sizing: ๋…ผ๋ฆฌ ๊ฒŒ์ดํŠธ์˜ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•˜์—ฌ ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๊ฒŒ์ดํŠธ ํฌ๊ธฐ๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๋ฉด ์ „๋ฅ˜๊ฐ€ ์ฆ๊ฐ€ํ•˜๊ณ , ๊ฒฐ๊ณผ์ ์œผ๋กœ ์ง€์—ฐ ์‹œ๊ฐ„์ด ์ค„์–ด๋“ญ๋‹ˆ๋‹ค.

Timing Closure Algorithms๋Š” ์—ฌ๋Ÿฌ ์œ ์‚ฌ ๊ธฐ์ˆ  ๋ฐ ๋ฐฉ๋ฒ•๋ก ๊ณผ ๋น„๊ต๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ๋Š” ์ฃผ์š” ๋น„๊ต ์š”์†Œ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  1. Static Timing Analysis vs. Dynamic Timing Analysis: STA๋Š” ํšŒ๋กœ์˜ ๋ชจ๋“  ๊ฒฝ๋กœ๋ฅผ ์ •์ ์œผ๋กœ ๋ถ„์„ํ•˜๋Š” ๋ฐ˜๋ฉด, Dynamic Timing Analysis๋Š” ์‹ค์ œ ๋™์ž‘์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜์—ฌ ํƒ€์ด๋ฐ์„ ํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. STA๋Š” ๋น ๋ฅธ ๋ถ„์„์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ๋™์  ๋ถ„์„์€ ์‹ค์ œ ๋™์ž‘์„ ๋ฐ˜์˜ํ•˜์—ฌ ๋” ์ •ํ™•ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  2. Clock Tree Synthesis vs. Global Optimization: CTS๋Š” ํด๋Ÿญ ์‹ ํ˜ธ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๋ถ„๋ฐฐํ•˜๋Š” ๋ฐ ์ค‘์ ์„ ๋‘๋Š” ๋ฐ˜๋ฉด, Global Optimization์€ ์ „์ฒด ํšŒ๋กœ์˜ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐ ์ค‘์ ์„ ๋‘ก๋‹ˆ๋‹ค. ๋‘ ๋ฐฉ๋ฒ• ๋ชจ๋‘ ํƒ€์ด๋ฐ ํด๋กœ์ €์— ๊ธฐ์—ฌํ•˜์ง€๋งŒ, ์ ‘๊ทผ ๋ฐฉ์‹์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

  3. Design for Timing (DFT): DFT๋Š” ์„ค๊ณ„ ๋‹จ๊ณ„์—์„œ๋ถ€ํ„ฐ ํƒ€์ด๋ฐ ๋ฌธ์ œ๋ฅผ ๊ณ ๋ คํ•˜๋Š” ๋ฐฉ๋ฒ•๋ก ์ž…๋‹ˆ๋‹ค. Timing Closure Algorithms๋Š” ์ฃผ๋กœ ํ›„์† ๋‹จ๊ณ„์—์„œ ์ˆ˜ํ–‰๋˜๋Š” ๋ฐ˜๋ฉด, DFT๋Š” ์ดˆ๊ธฐ ์„ค๊ณ„ ๋‹จ๊ณ„์—์„œ ํƒ€์ด๋ฐ ๋ฌธ์ œ๋ฅผ ์˜ˆ๋ฐฉํ•˜๋Š” ๋ฐ ์ค‘์ ์„ ๋‘ก๋‹ˆ๋‹ค.

  4. Real-world Examples: Timing Closure Algorithms๋Š” ๊ณ ์† ํ”„๋กœ์„ธ์„œ ๋ฐ FPGA ์„ค๊ณ„์—์„œ ํ•„์ˆ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, Intel์˜ ์ตœ์‹  ํ”„๋กœ์„ธ์„œ ์„ค๊ณ„์—์„œ ์ด๋Ÿฌํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ ์šฉ๋˜์–ด ๋†’์€ ์„ฑ๋Šฅ๊ณผ ์•ˆ์ •์„ฑ์„ ํ™•๋ณดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, Xilinx์˜ FPGA ์„ค๊ณ„ ๋„๊ตฌ์—์„œ๋„ ํƒ€์ด๋ฐ ํด๋กœ์ € ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

4. References

  • IEEE Solid-State Circuits Society
  • ACM Special Interest Group on Design Automation (SIGDA)
  • Synopsys Inc.
  • Cadence Design Systems
  • Mentor Graphics (Siemens EDA)

5. One-line Summary

Timing Closure Algorithms๋Š” ๋””์ง€ํ„ธ ํšŒ๋กœ ์„ค๊ณ„์—์„œ ํƒ€์ด๋ฐ ์š”๊ตฌ ์‚ฌํ•ญ์„ ๋งŒ์กฑ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ํ•„์ˆ˜์ ์œผ๋กœ ์ ์šฉ๋˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค.