1. この記事で学べること
- CTS(Clock Tree Synthesis)の基本概念
- なぜクロックツリーが必要なのか、その背景と目的
- クロックスキュー・インサーションディレイなどの重要指標
- 実務での CTS の役割と設計フローとの関係
- よくある誤解や注意点
- 関連する専門用語の体系的整理
2. 概要(全体像)
CTS(Clock Tree Synthesis)は、論理合成後のゲートレベルネットリストに対して、クロック信号を全フリップフロップへ均等に届けるための物理設計工程です。
目的は以下の 2 点に集約されます:
- クロックスキューを最小化する
- クロックインサーションディレイを制御する
CTS は、P&Rフローの中核であり、タイミング収束の成否を大きく左右します。
3. なぜ重要なのか(背景・目的)
クロックは SoC の「心臓」であり、全ての同期回路の基準となります。
しかし、物理的な配線距離・負荷・バッファ段数の違いにより、クロックが各フリップフロップに到達するタイミングは自然には揃いません。
そのままでは以下の問題が発生します:
- セットアップ違反(Setup Violation)
- ホールド違反(Hold Violation)
- メタステーブルの誘発
- 消費電力の増加(無駄なバッファ挿入や過剰ドライバ)
これらを防ぐために、CTS では クロック配線をツリー構造として最適化し、遅延を制御します。
4. 基本概念の整理
クロックスキュー(Clock Skew)
定義
複数のフリップフロップにクロックが到達する時間差。
例
FF1 には 100ps、FF2 には 150ps で到達 → スキュー = 50ps。
実務での意味
スキューが大きいと Setup/Hold の両方に悪影響を与えるため、CTS の最重要指標となる。
インサーションディレイ(Clock Insertion Delay)
定義
クロックソース(PLL など)からフリップフロップまでの総遅延。
例
PLL → バッファ → 配線 → FF で合計 300ps。
実務での意味
遅延が大きすぎるとタイミングマージンが減少し、消費電力も増える。
バランスツリー(Balanced Tree)
定義
クロック到達時間を揃えるために、配線長やバッファ段数を均等化したツリー構造。
例
H-tree、X-tree など。
実務での意味
大規模 SoC でスキューを抑えるための基本構造。
CTS バッファ(Clock Buffer / Inverter)
定義
クロック負荷を駆動するための専用セル。
例
CLKBUF_X4、CLKINV_X2 など。
実務での意味
通常のバッファより遅延特性が安定しており、Duty 比も維持しやすい。
クロックゲーティング(Clock Gating)
定義
不要なブロックへのクロック供給を停止する技術。
例
ICG(Integrated Clock Gating)セル。
実務での意味
消費電力削減のため、CTS と密接に連携する。
5. 実務での具体的な利用シーン
- P&R フローでの CTS 実行
- Placement 完了後、Routing 前に実行
- ツリー構造の自動生成とバッファ挿入
- タイミング収束のための調整
- Setup/Hold の改善
- スキュー調整(Useful Skew の活用)
- 低消費電力設計
- Clock Gating の配置最適化
- 不要なバッファ削減
- マルチクロックドメインの管理
- CDC(Clock Domain Crossing)との整合性
- ドメインごとのツリー最適化
6. 誤解しやすい点・注意点
- 「スキューはゼロが最適」ではない
→ Useful Skew により Setup/Hold を改善できる場合がある。 - バッファを増やせば良いわけではない
→ 過剰挿入は消費電力増加と遅延悪化を招く。 - クロックゲーティングは CTS 後に挿入するものではない
→ 通常は論理合成段階で挿入し、CTS がそれを考慮してツリー構築する。 - 配線長だけでなく負荷(capacitance)も重要
→ 配線 RC とセル負荷の両方が遅延に影響する。
7. 関連する専門用語の整理
| 用語 | 定義 | 実務での意味 |
|---|---|---|
| CTS | クロックツリー合成 | P&R の中心工程 |
| Clock Skew | クロック到達時間差 | Setup/Hold に直結 |
| Insertion Delay | クロック総遅延 | タイミングマージンに影響 |
| Clock Buffer | 専用バッファ | Duty 比維持・負荷駆動 |
| H-tree | バランスツリー構造 | 大規模設計で有効 |
| ICG | クロックゲーティングセル | 低消費電力化 |
| Useful Skew | 意図的なスキュー調整 | タイミング改善 |
8. まとめ
- CTS は クロックを全 FF に均等に届けるための物理設計工程
- 目的は スキュー最小化 と インサーションディレイ制御
- バッファ挿入・配線最適化・ツリー構造設計が中心
- Setup/Hold の改善や低消費電力化に直結
- Useful Skew や Clock Gating など、実務的な工夫が重要
- クロックは SoC の心臓であり、CTS の品質が最終タイミングを左右する

コメント