Altifigence Academy

33 / 37 · 概念

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

最大・最小経路遅延を分け、クロック周波数とは別のホールド条件を計算します。

機能が正しくても時間内に届く必要があります

同期経路は、送出フリップフロップフリップフロップ 指定されたクロックエッジで入力を記憶し、次のエッジまで保持する素子です。入力はセットアップ・ホールド条件を満たす必要があります。 詳しく見る → 組合せ回路 → 取込みフリップフロップで構成されます。クロックスキューを 0 とした単純モデルのセットアップセットアップ 取り込みクロックエッジの前に、入力データが安定していなければならない最小時間です。違反すると記憶結果を保証できません。条件は次のとおりです。uncertainty はジッタや設計余裕などを保守的に反映する項です。

Tclk≥tcq,max+tpd,max+tsetup+tuncertaintyT_{clk}\ge t_{cq,\mathrm{max}}+t_{pd,\mathrm{max}}+t_{setup}+t_{uncertainty}

tcqt_{cq} は clock-to-Q、tpdt_{pd} は組合せ最大遅延です。レジスタレジスタ 複数ビットの状態を記憶する回路です。このコースの同期式レジスタは、クロックエッジで定められた入力を記憶します。 詳しく見るから値が出る時間と取込み側のセットアップ時間を引いた残りだけを、組合せ回路に使えます。

数値例で経路の制限を計算する

clock-to-Q 0.12 ns、組合せ遅延 1.80 ns、setup 0.15 ns、uncertainty 0.08 ns なら、最小周期は 2.15 ns です。

fmax≤12.15 ns≈465.1 MHzf_{\mathrm{max}}\le\frac{1}{2.15\ \mathrm{ns}}\approx465.1\ \mathrm{MHz}

500 MHz は 2 ns なので、セットアップのスラックは -0.15 ns です。これは指定した一経路と仮定の例であり、実際の動作周波数の保証には関連する全経路・コーナー・制約の検査が必要です。

下の直列に加わる遅延項を追ってください。合計は 2.15 ns です。矢印は予算の加算順で、素子の大きさや遅延比率ではありません。

セットアップ予算を使う経路
  1. 送出 FF: クロック→Q:0.12ns
  2. 組合せ経路: 最大遅延:1.80ns
  3. 取込み条件: セットアップ:0.15ns
  4. 設計余裕: 不確かさ:0.08ns

ホールドは最も速い経路の問題です

同じエッジで送出データが速すぎると、取込み FF が旧値を安定に取り込む時間へ入り込みます。skew=0、別の余裕を省いた単純なホールド条件ホールド時間 取り込みクロックエッジの後も、入力データが安定していなければならない最小時間です。通常の値の保持動作とは文脈で区別してください。は次の式です。

tcq,min+tcd,min≥tholdt_{cq,\mathrm{min}}+t_{cd,\mathrm{min}}\ge t_{hold}

最小 clock-to-Q 0.05 ns、最小組合せ遅延 0.03 ns、hold 0.10 ns なら、0.02 ns 不足します。周期を長くしても、この同一エッジの条件は解決しません。遅延追加やクロック経路調整などの実装対策が必要です。

capture クロックが launch より遅い正のスキューは、通常の単一サイクル setup に有利で、hold に不利な場合があります。符号を暗記するより、データ到着と取込みエッジを時間軸に描きます。multicycle・false path などの例外を、機能的根拠なしにタイミング警告を消すために使ってはいけません。

自分で考えてみましょう

周期 4 ns、tcq=0.2t_{cq}=0.2 ns、tsetup=0.3t_{setup}=0.3 ns、uncertainty=0.1 ns の経路で、許される組合せ最大遅延はいくらですか。周期を 8 ns にするとホールド違反を解消できますか。

解説を見る

許容最大遅延は 4−0.2−0.3−0.1=3.44-0.2-0.3-0.1=3.4 ns です。通常の同一エッジのホールド条件は周期を長くしても解消しません。最小データ経路とクロック到着時刻を別に解析します。

選択はこのブラウザに適用されます。フッターからいつでも変更できます。