This website requires JavaScript.
クーポン アプリのダウンロード
発送先
ブログ

デジタル回路のタイミング理解:セットアップ時間、ホールド時間、汚染遅延、クロックスキュー

初出公開日 Mar 03, 2026, 更新日 Mar 03, 2026

1 min

目次
  • デジタル設計におけるタイミングパラメータ
  • 伝搬遅延と汚染遅延
  • クロックスキュー(Clock Skew)
  • セットアップ時間(Setup Time)
  • ホールド時間(Hold Time)
  • タイミングパス
  • タイミング方程式
  • 数値例(単一サイクルパス)
  • 違反の原因と対策
  • 設計テクニック
  • まとめ

本記事は、デジタル回路における伝搬遅延(Propagation Delay)シリーズの第2回です。デジタル回路設計では、必ず満たすべき重要な要素が2つあります。1つ目は機能(Functionality)、2つ目は**タイミング(Timing)**です。前回の記事では基本ブロックについて解説しました。

電子回路において「時間」とはクロックの刻みそのものです。すべてはクロックエッジを基準に動作しており、動作周波数や処理速度もこのクロックによって決まります。マイクロコントローラ、FPGA、ASICを扱う場合、回路を正しく動作させるためにはタイミング制約を満たす必要があります。本記事では、設計時に考慮すべき主要なタイミング制約について解説します。

本ガイドでは以下の基礎項目を扱います:

  • セットアップ時間(Setup Time)
  • ホールド時間(Hold Time)
  • 汚染遅延(最小遅延 / Contamination Delay)
  • クロックスキュー(Clock Skew)

さらに、それらがタイミング方程式や実設計でどのように相互作用するかも説明します。


デジタル設計におけるタイミングパラメータ

組み合わせ回路ブロックでは、次の2つの遅延指標が重要です。

  • Tpd(最大伝搬遅延) 組み合わせ回路を通過する最悪ケース(最長)の遅延。セットアップチェックで使用されます。
  • Tcd(最小汚染遅延) 組み合わせ回路を通過する最短遅延。ホールドチェックで使用されます。
  • クロック周期(Tclk) 連続するクロックエッジ間の時間。


伝搬遅延と汚染遅延

● 伝搬遅延(Tpd, max)

ゲートやロジックブロックを通過する最長遅延

セットアップ時間の検証で使用されます。最も遅く到達するデータがセットアップ要件を満たす必要があるためです。


● 汚染遅延(Tcd, min)

ゲートやロジックブロックを通過する最短遅延

ホールド時間の検証で使用されます。最も早く変化するデータを考慮する必要があるためです。


クロックスキュー(Clock Skew)

クロックがソースフリップフロップとキャプチャフリップフロップに到達する時間差を指します。主な原因は以下の通りです:

  • クロックツリーの不均衡
  • 配線差異
  • バッファ挿入
  • 合成/CTS選択
  • ローカルクロックゲーティング
  • PLLやバッファのジッタ
  • 正のスキュー:キャプチャ側クロックが遅れて到達
  • 負のスキュー:キャプチャ側クロックが早く到達

設計上、セットアップを緩和する目的で意図的にスキューを導入することもあります(Useful Skew)。


セットアップ時間(Setup Time)

セットアップ時間(Tsu)は、アクティブクロックエッジのにデータが安定していなければならない最小時間です。


データ到達が遅すぎると、キャプチャフリップフロップが誤った値をサンプリングする可能性があります。最悪の場合、メタステーブル状態に陥ることもあります。

セットアップ違反は主に**最大伝搬遅延(Tpd)**が大きすぎる場合に発生します。


ホールド時間(Hold Time)

ホールド時間(Thold)は、クロックエッジのにデータが安定していなければならない最小時間です。

データが早く変化しすぎると、キャプチャフリップフロップが不正な値をサンプリングする可能性があります。

最も早い到達時間は:

Tcq + Tcd

これがホールド時間を満たさなければなりません。


タイミングパス

典型的な同期タイミングパス:

Launch FF → Tcq → 組み合わせ回路 → Tpd/Tcd → Capture FF → Setup/Holdチェック

  • Launchイベント:フリップフロップAが新しいデータを出力
  • Captureイベント:フリップフロップBが次クロックエッジでデータを取得


タイミング方程式

● セットアップ条件

● ホールド条件

※Jclkはクロックジッタ。安全マージンを減少させる要素として扱います。


数値例(単一サイクルパス)

与えられた値:

  • Tclk = 5.0 ns
  • Tskew = +0.10 ns
  • Tcq = 0.12 ns
  • Tpd = 2.80 ns
  • Tsu = 0.08 ns
  • Tcd = 0.02 ns
  • Thold = 0.05 ns

セットアップチェック

必要時間 = 0.12 + 2.80 + 0.08 − 0.10 = 2.90 ns

Slack = 5.00 − 2.90 = 2.10 ns → PASS

ホールドチェック

許容時間 = 0.12 + 0.02 − 0.10 = 0.04 ns

Slack = 0.04 − 0.05 = −0.01 ns → 10psのホールド違反

実設計ではこのように、セットアップは余裕があってもホールド違反が発生することは珍しくありません。


違反の原因と対策

セットアップ違反対策

  • パイプライン挿入
  • ロジック深さ削減
  • 高ドライブセル使用
  • 配線最適化
  • 電圧改善

ホールド違反対策

  • バッファ挿入
  • 意図的な遅延追加
  • 配線を長くする
  • マルチサイクルパス設定


設計テクニック

● Useful Skew

セットアップを緩和するために意図的にスキューを導入。

● マルチサイクルパス

複数サイクルを許容できるパスはSTAで適切に制約設定。

まとめ

本記事では、セットアップ時間とホールド時間を中心に、汚染遅延やクロックスキューとの関係を詳しく解説しました。

  • セットアップは最大遅延で決まる
  • ホールドは最小遅延で決まる
  • 機能だけでなくタイミングも同じくらい重要

デジタル回路設計では、機能とタイミングの両立が不可欠です。本シリーズでは今後もタイミング関連の高度なテーマを扱っていきます。


学び続ける