VLSI Wiki
Contents:
  1. Clock Tree Synthesis (CTS)
    1. 1. Definition: What is Clock Tree Synthesis (CTS)?
    2. 2. Components and Operating Principles
      1. 2.1 Clock Tree Construction
      2. 2.2 Buffer Insertion
      3. 2.3 Optimization and Verification
    3. 3. Related Technologies and Comparison
      1. 3.1 Clock Gating
      2. 3.2 Delay Insensitive Design
      3. 3.3 Asynchronous Design
    4. 4. References
    5. 5. One-line Summary

Clock Tree Synthesis (CTS)

1. Definition: What is Clock Tree Synthesis (CTS)?

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

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

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

2. Components and Operating Principles

Clock Tree Synthesis (CTS)์˜ ๊ตฌ์„ฑ ์š”์†Œ์™€ ์ž‘๋™ ์›๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. CTS ๊ณผ์ •์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์„ธ ๊ฐ€์ง€ ์ฃผ์š” ๋‹จ๊ณ„๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฐ ๋‹จ๊ณ„๋Š” ํด๋Ÿญ ํŠธ๋ฆฌ์˜ ํšจ์œจ์ ์ธ ์„ค๊ณ„๋ฅผ ์œ„ํ•ด ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค.

2.1 Clock Tree Construction

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

2.2 Buffer Insertion

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

2.3 Optimization and Verification

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

Clock Tree Synthesis (CTS)๋Š” ๋‹ค๋ฅธ ๊ธฐ์ˆ  ๋ฐ ๋ฐฉ๋ฒ•๋ก ๊ณผ ๋น„๊ตํ•  ๋•Œ ๋ช‡ ๊ฐ€์ง€ ๋…ํŠนํ•œ ํŠน์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. CTS์™€ ์œ ์‚ฌํ•œ ๊ธฐ์ˆ ๋กœ๋Š” Clock Gating, Delay Insensitive Design, ๊ทธ๋ฆฌ๊ณ  Asynchronous Design ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

3.1 Clock Gating

Clock Gating์€ ๋ถˆํ•„์š”ํ•œ ํด๋Ÿญ ์‹ ํ˜ธ๋ฅผ ์ฐจ๋‹จํ•˜์—ฌ ์ „๋ ฅ ์†Œ๋น„๋ฅผ ์ค„์ด๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. CTS์™€ ๋น„๊ตํ•  ๋•Œ, Clock Gating์€ ํด๋Ÿญ ์‹ ํ˜ธ์˜ ๋ถ„๋ฐฐ๋ณด๋‹ค๋Š” ํด๋Ÿญ์˜ ์‚ฌ์šฉ์„ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐ ์ค‘์ ์„ ๋‘ก๋‹ˆ๋‹ค. CTS๋Š” ํด๋Ÿญ ์‹ ํ˜ธ์˜ ์ง€์—ฐ๊ณผ ๋™๊ธฐํ™”๋ฅผ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐ˜๋ฉด, Clock Gating์€ ์ „๋ ฅ ํšจ์œจ์„ฑ์„ ๋†’์ด๋Š” ๋ฐ ์ค‘์ ์„ ๋‘ก๋‹ˆ๋‹ค.

3.2 Delay Insensitive Design

Delay Insensitive Design์€ ์ง€์—ฐ์ด ๋ฐœ์ƒํ•˜๋”๋ผ๋„ ํšŒ๋กœ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋„๋ก ์„ค๊ณ„๋œ ๋ฐฉ๋ฒ•๋ก ์ž…๋‹ˆ๋‹ค. CTS๋Š” ํด๋Ÿญ ์‹ ํ˜ธ์˜ ์ง€์—ฐ์„ ์ตœ์†Œํ™”ํ•˜๋Š” ๋ฐ ์ค‘์ ์„ ๋‘์ง€๋งŒ, Delay Insensitive Design์€ ์ง€์—ฐ์ด ๋ฐœ์ƒํ•ด๋„ ํšŒ๋กœ์˜ ๋™์ž‘์ด ๋ณด์žฅ๋˜๋„๋ก ์„ค๊ณ„ํ•˜๋Š” ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๊ธฐ์ˆ ์€ ์„œ๋กœ ์ƒํ˜ธ ๋ณด์™„์ ์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํŠน์ • ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ๋”ฐ๋ผ ์„ ํƒ์ ์œผ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3.3 Asynchronous Design

Asynchronous Design์€ ํด๋Ÿญ ์‹ ํ˜ธ ์—†์ด ๋™์ž‘ํ•˜๋Š” ํšŒ๋กœ ์„ค๊ณ„ ๋ฐฉ๋ฒ•์œผ๋กœ, CTS์™€๋Š” ๊ทผ๋ณธ์ ์œผ๋กœ ๋‹ค๋ฅธ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ทจํ•ฉ๋‹ˆ๋‹ค. CTS๋Š” ํด๋Ÿญ ์‹ ํ˜ธ์˜ ๋ถ„๋ฐฐ์™€ ๋™๊ธฐํ™”์— ์ค‘์ ์„ ๋‘์ง€๋งŒ, Asynchronous Design์€ ํด๋Ÿญ ์‹ ํ˜ธ์˜ ํ•„์š”์„ฑ์„ ์ œ๊ฑฐํ•˜์—ฌ ํšŒ๋กœ์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ๋‘ ๊ธฐ์ˆ ์€ ๊ฐ๊ธฐ ๋‹ค๋ฅธ ์žฅ๋‹จ์ ์„ ๊ฐ€์ง€๋ฉฐ, ์„ค๊ณ„ ๋ชฉํ‘œ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ๋ฐฉ๋ฒ•์„ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

4. References

  • IEEE Circuits and Systems Society
  • ACM Special Interest Group on Design Automation (SIGDA)
  • Synopsys, Inc.
  • Cadence Design Systems, Inc.
  • Mentor Graphics Corporation

5. One-line Summary

Clock Tree Synthesis (CTS)๋Š” ๋””์ง€ํ„ธ ํšŒ๋กœ ์„ค๊ณ„์—์„œ ํด๋Ÿญ ์‹ ํ˜ธ์˜ ํšจ์œจ์  ๋ถ„๋ฐฐ์™€ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•œ ํ•„์ˆ˜์ ์ธ ๊ณผ์ •์ž…๋‹ˆ๋‹ค.