🌳 clock_tree_design.md – クロックツリー設計と遅延最小化

Clock Tree Synthesis and Delay Optimization


📘 概要|Overview

クロックツリー設計(Clock Tree Synthesis, CTS)は、チップ内の全てのクロック供給先に対して、
同じタイミングでクロックが届くように設計する工程です。
CTS ensures that clock signals arrive simultaneously at all sinks within the chip.

The goal of CTS is to minimize skew and latency,
ensuring proper setup/hold timing and improving overall reliability.


🛠️ クロックツリーの基本構成|Clock Tree Structure

クロックツリーは、PLLからのクロックを各フリップフロップへ均一に届けるための配線構造です。
The clock tree distributes PLL outputs uniformly to all flip-flops.

代表的な手法として バイナリツリー型H-tree型 があり、EDAツールによる自動CTSが一般的です。
Typical topologies include binary-tree and H-tree, with most EDA tools providing automatic CTS.


🌱 シンプル構成(導入用)|Simple Structure (Introductory)

PLL出力からバッファを経由して各FFへ分配する、基本的なバイナリツリー構造を示します。
This is the simplest binary-tree distribution from PLL output to flip-flops.

flowchart TB
  ROOT([PLL Output<br/>クロック源])
  B1A([BUF]):::buf
  B1B([BUF]):::buf
  FF1([FF1]):::ff
  FF2([FF2]):::ff
  FF3([FF3]):::ff
  FF4([FF4]):::ff

  ROOT --> B1A --> FF1
  B1A --> FF2
  ROOT --> B1B --> FF3
  B1B --> FF4

  classDef buf fill:#eef5ff,stroke:#6b6bff,rx:6,ry:6
  classDef ff fill:#ffffff,stroke:#999,rx:6,ry:6

🌳 H-tree構成(遅延最小化)|H-tree Structure (Delay Optimization)

実務でよく用いられる H-tree型トポロジー です。
各経路に同じ遅延(t0, t1, t2)が入るように設計し、スキューを抑えます。
An H-tree topology equalizes path delays (t0, t1, t2) to minimize skew.

flowchart TB
  R([PLL / Root]):::root
  H1([BUF]):::buf
  H2([BUF]):::buf
  L1([BUF]):::buf
  L2([BUF]):::buf
  F1([FF1]):::ff
  F2([FF2]):::ff
  F3([FF3]):::ff
  F4([FF4]):::ff

  R -->|t0| H1 -->|t1| L1 -->|t2| F1
  H1 -->|t1| L2 -->|t2| F2
  R -->|t0| H2 -->|t1| L1a[BUF]:::buf -->|t2| F3
  H2 -->|t1| L2a[BUF]:::buf -->|t2| F4

  classDef root fill:#fff7ff,stroke:#6b4ccf,rx:6,ry:6
  classDef buf fill:#eef5ff,stroke:#6b6bff,rx:6,ry:6
  classDef ff fill:#ffffff,stroke:#999,rx:6,ry:6

📌 まとめ|Summary


🧮 最適化の観点|Optimization Targets

観点|Aspect 説明|Description
スキュー(Skew) フロップ間のクロック到達時間差。通常 < 100ps が望ましい
Clock arrival time difference between flip-flops. Typically <100ps.
バッファ数 線長調整・負荷分散のためにバッファを追加
Buffers are inserted to balance load and adjust wire length.
レイテンシ(Latency) PLLからフロップまでのクロック遅延。均一性が重要
Latency from PLL to flip-flops; uniformity is crucial.

⚠️ 実装時の注意点|Implementation Notes


📚 関連章|Related Chapters


⏰ 応用編 第9章:PLLとクロック設計|Applied Chapter 9: PLL and Clock Design

➡️ 章の詳細へ進む|Go to Chapter