Edusemi-v4x

5.3 クロックとタイミング設計(STA入門)

SoC設計においては、複数のフリップフロップが同期して動作するため、
クロック設計とタイミング整合性の確保(Timing Closure)が非常に重要です。

本節では、クロック分配の基本と、STA(Static Timing Analysis)による検証手法を導入します。


🕰️ なぜタイミング設計が重要か?

▶ 時間軸での信号整合性

        ┌──────────────┐
Clock → │ Flip-Flop 1 │ → 論理経路 → │ Flip-Flop 2 │
        └──────────────┘               └──────────────┘

         セットアップ時間を守らないと動作不良!

🧭 STA(Static Timing Analysis)とは?

▶ 定義

▶ なぜ「静的」?


📐 基本用語

用語 意味
セットアップ時間 データがクロック前に安定している必要のある最小時間
ホールド時間 クロック後もデータが保持されるべき最小時間
スラック(Slack) 許容遅延と実遅延の差(余裕)
クロックスキュー クロックが異なる場所に到達する時間差

🧰 タイミング設計における対策例

課題 対策
セットアップ違反 セル遅延の削減/高速セルへの置換/パイプライン挿入
ホールド違反 インバータチェーン挿入/配線経路調整
クロックスキュー クロックツリー合成(CTS)でスキュー最小化

🔧 教育的演習例

演習 内容
STAレポートの読解 セットアップ/ホールド違反の検出例を解析
クロックツリー観察 CTS後のクロック経路とスキューを可視化
スラック調整実験 セルサイズ変更と遅延変化の影響を確認

🚦 OpenSTAの活用(実務視点)

read_liberty sky130.lib
read_verilog netlist.v
read_sdc constraints.sdc
report_checks

📘 まとめと次節への導入

クロックとタイミングの設計は、動作の正しさを保証する基盤です。
次節では、これに加えて電源・リセット・I/Oといった周辺インフラ設計の基本を学びます。

👉 5.4 電源・リセット・I/O設計の基礎