スタティック・タイミング解析には、レジスタ間、I/O、および非同期リセット・パスの解析が含まれます。 TimeQuest タイミング・アナライザは、データ所要時間、データ到着時間、クロック到着時間を使用して、回路性能を検証し、タイミング違反を検出します。 TimeQuest タイミング・アナライザは、デザインが正しく動作するために満足する必要があるタイミングの関係を割り出し、所要時間に対する到着時間をチェックしてタイミングを検証します。
クロック・セットアップ・チェック
クロック・セットアップ・チェックを実行するために、TimeQuest タイミング・アナライザは、ラウンチ(信号を送り出す側のFFのクロック)エッジとラッチ(信号を受け取る側のFFのクロック)エッジを解析することによって、セットアップ関係を決定します。 ディスティネーション(信号を受け取る側)・レジスタでのラッチ・エッジを検証する場合、TimeQuest タイミング・アナライザはソース(信号を送り出す側)・レジスタにおいて、最も近い直前のクロック・エッジをラウンチ・エッジとして使用します。
以下の図 1 では、2つのセットアップ関係が定義され、Setup A と Setup B のラベルが付けられています。 10 ns のラッチ・エッジの場合、ラウンチ・エッジとして機能する直近のクロックは 3 ns にあり、Setup A のラベルが付けられています。 20 ns でのラッチ・エッジの場合、ラウンチ・エッジとして機能する最も近いクロックは 19 ns にあり、Setup B のラベルが付けられています。
図 1. セットアップ・チェック

TimeQuest タイミング・アナライザは、クロック・セットアップ・チェックの結果をスラック値としてレポートします。 スラックとは、それによってタイミング要件が適合または不適合になるタイミングマージンのことです。 正のスラックは要件に適合するマージンを示し、負のスラックは要件に適合しないマージンを示します。 TimeQuest アナライザは、内部レジスタ間のパスに対する式 1 に示すとおり、クロックのセットアップ・スラックを算出します。
式 1
クロックのセットアップ・スラック = データ所要時間 – データ到着時間
所要データ = クロック到着時間 – μtSU – セットアップ不確定時間
クロック到着時間 = ラッチ・エッジ + ディスティネーション・レジスタまでのクロック・ネットワーク遅延
データ到着時間 = ラウンチ・エッジ + ソース・レジスタまでのクロック・ネットワーク遅延 + μtCO + レジスタ-レジスタ遅延
データ・パスが入力ポートから内部レジスタの場合、TimeQuest タイミング・アナライザは式 2 に示す等式を使用して、ホールド・スラック時間を計算します。
式 2
クロックのセットアップ・スラック時間 = データ所要時間 – データ到着時間
データ到着時間 = ラウンチ・エッジ + ソース・レジスタまでのクロック・ネットワーク遅延 + ピンの最大入力遅延 + ピンからレジスタまでの遅延
データ所要時間 = ラッチ・エッジ + ディスティネーション・レジスタまでのクロック・ネットワーク遅延 – μtSU
データ・パスが内部レジスタから出力ポートまでの場合、TimeQuest アナライザは式 3 に示す等式を使用して、セットアップのスラック時間を計算します。
式 3
クロックのセットアップ・スラック時間 = データ所要時間 – データ到着時間 データ到着時間 = ラッチ・エッジ + ソース・レジスタまでのクロック・ネットワーク遅延 + μtCO + レジスタからピンまでの遅延
データ所要時間 = ラッチ・エッジ + ディスティネーション・レジスタまでのクロック・ネットワーク遅延 + ピンの最大出力遅延
クロック・ホールド・チェック
クロック・ホールド・チェックを実行するために、TimeQuest タイミング・アナライザはすべてのソースおよびディスティネーション・レジスタ・ペアに対して存在する、それぞれ可能なセットアップに対するホールドを検証します。TimeQuest タイミング・アナライザは、すべてのセットアップからのすべての隣接するクロック・エッジをチェックして、ホールドを検証します。TimeQuest アナライザは、各セットアップに対して 2つのホールド・チェックを実行します。 最初のホールド・チェックは、現在のラウンチ・エッジによって送り出されたデータが前のラッチ・エッジによってキャプチャ(FFに取り込まれる)されないことを確認します。2 番目のホールド・チェックは、次のラウンチ・エッジによって送り出されたデータが現在のラッチ・エッジによってキャプチャされないことを確認します。
以下の図 2 では、セットアップ A とセットアップ B というラベルが付けられた 2 つのセットアップ関係を示しています。最初のホールド・チェックは、セットアップ A およびセットアップ B に対してそれぞれホールド・チェック A1 およびホールド・チェック B1 のラベルが付けられています。 2番目のホールド・チェックには、セットアップ A およびセットアップ B に対してそれぞれホールド・チェック A2 およびホールド・チェック B2 のラベルが付けられています。
図 2. ホールド・チェック

可能なホールド関係から、TimeQuest タイミング・アナライザは最も条件の厳しいホールド関係を選択します。ラッチ・エッジとラウンチ・エッジの間に最も大きな差があるホールド関係(つまり、ラッチ - ラウンチであり、ラッチ - ラウンチの絶対値ではない)が選択されます。これは、レジスタ間パスに対する最小許容遅延を決定するためです。上記の図 2 では、選択されたホールド関係はホールド・チェック A2 です。TimeQuest タイミング・アナライザは、クロック・ホールド・スラックを式 4 に示すとおり決定します。
式 4
クロック・ホールド・スラック = データ到着時間 – データ所要時間
データ所要時間 = クロック到着時間 + μtH + ホールド不確定時間
クロック到着時間 = ラッチ・エッジ + ディスティネーション・レジスタまでのクロック・ネットワーク遅延
データ到着時間 = ラウンチ・エッジ + ソース・レジスタまでのクロック・ネットワーク遅延 + μtCO + レジスタ-レジスタ遅延
データ・パスが入力ポートから内部レジスタまでの場合、TimeQuest タイミング・アナライザは式 5 に示す等式を使用して、セットアップ・スラック時間を計算します。
式 5
クロック・セットアップ・スラック時間 = データ到着時間 – データ所要時間
データ到着時間 = ラウンチ・エッジ + ソース・レジスタまでのクロック・ネットワーク遅延 + ピンの最小入力遅延 + ピンからレジスタまでの遅延
データ所要時間 = ラッチ・エッジ + ディスティネーション・レジスタまでのクロック・ネットワーク遅延 + μtH
データ・パスが内部レジスタから出力ポートまでの場合、TimeQuest アナライザは式 6 に示す等式を使用して、セットアップ・スラック時間を計算します。
式 6
クロック・セットアップ・スラック時間 = データ到着時間 – データ所要時間
データ到着時間 = ラウンチ・エッジ + ソース・レジスタまでのクロック・ネットワーク遅延 + μtCO + レジスタからピンまでの遅延
データ所要時間 = ラッチ・エッジ + ディスティネーション・レジスタまでのクロック・ネットワーク遅延 + ピンの最小出力遅延
リカバリ & リムーバル
リカバリ時間は、非同期コントロール信号が安定している最小の時間長です。非同期のコントロール信号が存在する場合には、次のアクティブ・クロック・エッジの前に非同期コントロール信号は安定していなければなりません。リカバリ・スラック時間計算は、クロックのセットアップのスラック時間計算に似ていますが、非同期コントロール信号に適用されます。非同期コントロールがレジスタに登録されている場合、TimeQuest タイミング・アナライザは式 7 を使用して、リカバリ・スラック時間を計算します。
式 7
リカバリ・スラック時間 = データ所要時間 – データ到着時間
データ到着時間 = ラウンチ・エッジ + ソース・レジスタまでのクロック・ネットワーク遅延 + μtCO + レジスタ-レジスタ遅延
データ所要時間 = ラッチ・エッジ + ディスティネーション・レジスタまでのクロック・ネットワーク遅延 + μtSU
非同期コントロールがレジスタに登録されていない場合、TimeQuest タイミング・アナライザは式 8 に示す等式を使用して、リカバリ・スラック時間を計算します。
式 8
リカバリ・スラック時間 = データ所要時間 – データ到着時間
データ到着時間 = ラウンチ・エッジ + 入力最大遅延 + ポートからレジスタまでの遅延
データ所要時間 = ラッチ・エッジ + ディスティネーション・レジスタまでのクロック・ネットワーク遅延 + μtSU
注 : 非同期リセット信号がポート(デバイス I/O)から送られている場合、TimeQuest タイミング・アナライザにそのパスでリカバリ解析を実行させるために、非同期リセット・ピンに入力最大遅延アサイメントを行う必要があります。
リムーバル時間は、アクティブ・クロック・エッジ後に非同期コントロール信号が安定していなければならない最小時間長です。TimeQuest タイミング・アナライザのリムーバル時間スラック計算は、クロックのホールドのスラック計算と似ていますが、非同期コントロール信号に適用されます。非同期コントロールがレジスタに登録されている場合、TimeQuest タイミング・アナライザは式 9 に示す等式を使用して、リムーバル・スラック時間を計算します。
式 9
リムーバル・スラック時間 = データ到着時間 – データ所要時間
データ到着時間 = ラウンチ・エッジ + ソース・レジスタまでのクロック・ネットワーク遅延 + ソース・レジスタのμtCO + レジスタ-レジスタ遅延
データ所要時間 = ラッチ・エッジ + ディスティネーション・レジスタまでのクロック・ネットワーク遅延 + μtH
非同期コントロールがレジスタに登録されていない場合、TimeQuest アナライザは式 10 に示す等式を使用して、リムーバル・スラック時間を計算します。
式 10
リムーバル・スラック時間 = データ到着時間 – データ所要時間
データ到着時間 = ラウンチ・エッジ + ピンの入力最小遅延 + ピンからレジスタまでの最小遅延
データ所要時間 = ラッチ・エッジ + ディスティネーション・レジスタまでのクロック・ネットワーク遅延 + μtH
注 : 非同期リセット信号がデバイス・ピンから送られる場合は、TimeQuest タイミング・アナライザにこのパスでリムーバル解析を実行させるには、非同期リセット・ピンに入力最小遅延制約を指定する必要があります。
マルチサイクル・パス
マルチサイクル・パスとは、ディスティネーション(信号受け取り側)・レジスタでデータをラッチするのに、複数のクロック・サイクルを必要とするデータ・パスのことです。 例えば、2番目または 3番目の立ち上がりクロック・エッジごとにデータをキャプチャする場合に適用されます。
図 3 に、ディスティネーション・レジスタがクロック・エッジの 1つおきにデータをラッチする、乗算器の入力レジスタと出力レジスタ間のマルチサイクル・パスの例を示します。 set_multicycle_path コマンドの詳細については、set multicycle path コマンド・ページを参照してください。
図 3. マルチサイクル・パス

関連ページ
以下のページでは、クロックおよびクロックの特性を説明するために SDC コマンドに関する情報を提供しています。
関連リンク
- オンライン・トレーニング (英語)
- TimeQuest タイミング・アナライザ 操作チュートリアル (英語)
