セットアップ・ホールドのタイミング計算

フリップフロップからフリップフロップへの1本の経路について、静的タイミング解析(STA)と同じ考え方でセットアップとホールドの余裕(スラック)を計算します。遅延やスキューを変えて、どちらの条件が先に破れるかを確かめてみてください。単位はすべて ns です。

条件(ns)

結果

セットアップのスラック
–
ホールドのスラック
–
最大動作周波数
–

条件を満たす 違反

上段は最も遅いデータがセットアップの期限(破線)より前に届くか、下段は最も早いデータがホールドの期限(破線)より後に届くかを表しています。スラックが負なら違反です。

セットアップの条件

送信側のフリップフロップがクロックのエッジでデータを出してから、組み合わせ回路を通って受信側に届くまでの最も遅い時間は、クロック→出力遅延の最大値と組み合わせ回路の遅延の最大値の和です。これが、次のクロックのエッジ(周期+スキュー)からセットアップ時間とクロックの不確かさを引いた時刻より前でなければなりません。セットアップのスラックは「期限 − 到着時刻」で、負になると周期が足りず、周波数を下げるか遅延を減らす必要があります。

ホールドの条件

ホールドは、同じクロックのエッジで送信側が次のデータを出したとき、それが速く届きすぎて受信側がまだ取り込んでいる前のデータを壊さないかという条件です。最も早いデータの到着(クロック→出力遅延の最小値と組み合わせ回路の遅延の最小値の和)が、スキューとホールド時間の和より後でなければなりません。ホールドの条件にはクロック周期が入らないため、周波数を下げても直りません。違反はバッファを挿入して経路の遅延を増やして直します。

スキューの影響

受信側のクロックが送信側より遅れて届く(スキューが正の)場合、セットアップには期限が延びて有利になる一方、ホールドには不利になります。スキューが負なら逆です。そのため、スキューをわざと付けてセットアップの厳しい経路を救う手法(有用スキュー)もありますが、ホールドの余裕を同時に確認する必要があります。実際のSTAでは、最悪の条件(遅いコーナーでのセットアップ、速いコーナーでのホールド)で全経路を調べます。

最大動作周波数の考え方

セットアップのスラックがちょうど0になる周期が、この経路での最小周期で、その逆数が最大動作周波数です。式では fmax = 1 / (クロック→出力遅延 + 組み合わせ回路の遅延 + セットアップ時間 + 不確かさ − スキュー) です。チップ全体の最大周波数は、最も遅い経路(クリティカルパス)で決まります。パイプラインの段数を増やして1段あたりの組み合わせ回路を短くすると、周波数を上げられます。

論理回路の問題を解く

フリップフロップのセットアップ時間の説明として正しいものはどれか。

  1. Aクロックのエッジのあとに、データを保持し続けなければならない最小時間
  2. Bクロックのエッジより前に、データ入力が安定していなければならない最小時間
  3. C電源を入れてから動作するまでの時間
答えと解説を見る

正解:B. クロックのエッジより前に、データ入力が安定していなければならない最小時間

フリップフロップが正しく取り込むには、クロックのエッジより一定時間前からデータが安定している必要があり、これがセットアップ時間です。データ経路の遅延がクロック周期からセットアップ時間を引いた値を超えると違反になり、クロックを遅くすれば解消できます。エッジ後にデータを保持する必要がある時間はホールド時間で、どちらかを満たさないと誤った値の取り込みやメタステーブルの原因になります。

フリップフロップのホールド時間の説明として正しいものはどれか。

  1. Aクロックの有効なエッジの前に、データ入力を確定させておかなければならない時間
  2. Bクロックが入ってから出力が変わるまでの時間
  3. Cクロックの有効なエッジの後も、データ入力を変えずに保たなければならない時間
答えと解説を見る

正解:C. クロックの有効なエッジの後も、データ入力を変えずに保たなければならない時間

ホールド時間は、クロックのエッジ後もデータを安定させておく必要がある最小時間です。前段のフリップフロップから次段までの経路が短すぎると、同じエッジで更新された新しいデータが次段に早く届きすぎて違反します。周期と無関係なのでクロックを遅くしても直らず、データ経路にバッファを挿入して遅延を加えるのが対策です。製造後に見つかるとチップが使えなくなるため、設計時の検証が重要です。

よくある質問

セットアップ違反とホールド違反の直し方の違いは?

セットアップ違反は、クロック周波数を下げる、組み合わせ回路の遅延を減らす、パイプラインを分けるなどで直します。ホールド違反は周波数に依存しないので、バッファを挿入して最短経路の遅延を増やして直します。

クロックスキューはセットアップとホールドのどちらに効きますか?

両方に効き、向きが逆です。受信側のクロックが遅れる正のスキューはセットアップに有利でホールドに不利、負のスキューはその逆になります。

スラックとは何ですか?

タイミングの期限に対する余裕の時間です。期限から実際の到着時刻を引いた値で、正なら条件を満たし、負なら違反です。

関連する用語

セットアップ時間 ホールド時間 クロックスキュー STA(静的タイミング解析) メタステーブル ジッタ

半導体の計算ツール

ダイ数・歩留まり計算ツールウエハ径・チップサイズ・欠陥密度から、ダイ数・歩留まり・良品1個のコストを計算露光の解像度・焦点深度の計算波長・NA・k1から、解像できる線幅と焦点深度、必要なパターン分割の回数を計算MOSFETの電流-電圧特性(ID–VDS)しきい値電圧やW/Lを変えて、ID–VDS特性と動作点(領域・ID・gm・ro)を確かめる問題セットを作る分野と問題数を選ぶだけで、授業や研修で配れるクイズのURLを発行接合温度(Tj)と熱抵抗の計算消費電力と熱抵抗から、チップの接合温度、最大接合温度までの余裕、使える最大電力を計算メモリ帯域幅の計算転送レートとバス幅から、DDR・LPDDR・GDDR・HBMのピーク帯域と実効帯域の目安を計算ADコンバータのSN比と有効ビット数(ENOB)分解能、クロックジッタ、オーバーサンプリングから、ADコンバータのSN比と有効ビット数を計算アムダールの法則と並列化の速度向上並列化できる割合とプロセッサ数から、アムダールの法則とグスタフソンの法則で速度向上率と並列効率を計算キャッシュのアドレス分割と平均メモリアクセス時間容量・ラインサイズ・連想度から、タグ・インデックス・オフセットのビット数と平均メモリアクセス時間を計算CMOS回路の消費電力(動的電力と静的電力)活動率・容量・電圧・周波数とリーク電流から、動的電力と静的電力、DVFSで電圧と周波数を下げたときの電力を計算PN接合の内蔵電位と空乏層幅不純物濃度と逆バイアス電圧から、PN接合の内蔵電位、空乏層幅、最大電界、接合容量を計算熱酸化の膜厚(Deal-Groveモデル)温度・時間・ドライ/ウェット・面方位から、Deal-Groveモデルでシリコン酸化膜の厚さと消費されるシリコンを計算LSIの配線のRC遅延配線の金属・幅・厚さ・間隔・比誘電率・長さから、配線の抵抗と容量、分布RC線路の遅延とドライバを含めた遅延を計算位相雑音からRMSジッタへの換算位相雑音のプロファイル(dBc/Hz)を積分して、クロックのRMS位相誤差とRMSジッタを計算PDNの目標インピーダンスとデカップリングコンデンサ電源電圧・許容リップル・電流の変化から目標インピーダンスを求め、デカップリングコンデンサの自己共振周波数と効く周波数範囲を計算