このドキュメントの新しいバージョンが利用できます。お客様は次のことを行ってください。 こちらをクリック 最新バージョンに移行する。
2.1. タイミング解析フロー
2.2. ステップ 1: タイミング・アナライザーの設定を指定
2.3. ステップ 2: タイミング制約の指定
2.4. ステップ 3: タイミング・アナライザーの実行
2.5. ステップ 4: タイミングレポートの解析
2.6. タイミング制約の適用
2.7. タイミング・アナライザーの Tcl コマンド
2.8. インポートされたコンパイル結果のタイミング解析
2.9. インテル® Quartus® Prime タイミング・アナライザー・ユーザーガイドの改訂履歴
2.10. インテル® Quartus® Primeプロ・エディションのユーザーガイド: タイミング・アナライザーのアーカイブ
2.5.1.1. Fmax 概要レポート
2.5.1.2. タイミングレポート
2.5.1.3. ソースファイルごとのタイミングレポート
2.5.1.4. データ遅延レポート
2.5.1.5. ネット遅延レポート
2.5.1.6. クロックレポートおよびクロック・ネットワーク・レポート
2.5.1.7. クロック間転送レポート
2.5.1.8. メタスタビリティー・レポート
2.5.1.9. CDC Viewer レポート
2.5.1.10. 非同期 CDC レポート
2.5.1.11. ロジック深度レポート
2.5.1.12. 近隣パスレポート
2.5.1.13. レジスター分布レポート
2.5.1.14. ルーティング着目ネットレポート
2.5.1.15. リタイミング制約レポート
2.5.1.16. レジスター統計情報レポート
2.5.1.17. パイプライン情報レポート
2.5.1.18. 時間借用データレポート
2.5.1.19. 例外レポートおよび例外範囲レポート
2.5.1.20. ボトルネック・レポート
2.6.8.5.1. デフォルトのマルチサイクル解析
2.6.8.5.2. エンド・マルチサイクル・セットアップ = 2、エンド・マルチサイクル・ホールド = 0
2.6.8.5.3. エンド・マルチサイクル・セットアップ = 2、エンド・マルチサイクル・ホールド = 1
2.6.8.5.4. 同じ周波数のクロック (送信先クロックのオフセットあり)
2.6.8.5.5. 送信元クロック周波数の倍数になる送信先クロック周波数
2.6.8.5.6. 送信元クロック周波数の倍数になる送信先クロック周波数 (オフセットあり)
2.6.8.5.7. 送信先クロック周波数の倍数になる送信元クロック周波数
2.6.8.5.8. 送信先クロック周波数の倍数になる送信元クロック周波数 (オフセットあり)
2.6.5.5.3. set_clock_groups 制約のヒント
derive_pll_clocks を使用してクロックを作成する際に、set_clock_groups 制約に含めるクロック名をすべて特定するのは時間がかかる場合があります。ただし、次の手法を使用すると、すべてのクロック名がわからない場合でも、クロック制約の作成をある程度自動化することができます。
- 推奨される初期の SDC 制約 を含む基本的な .sdc ファイルを作成します。ただし、この時点では set_clock_groups 制約は省きます。
- .sdc をプロジェクトに追加するには、Assignments > Settings > Timing Analyzer をクリックします。SDC files to include in the project で、.sdc ファイルを指定します。
- タイミング・アナライザーを開くには、Tools > Timing Analyzer をクリックします。
- Task ペインで、Report Clocks をダブルクリックします。タイミング・アナライザーは .sdc を読み込み、制約 (derive_pll_clocks を含む) を適用して、すべてのクロックを報告します。
- Clock Summary レポートから、最初の列に表示されているすべてのクロック名をコピーします。このレポートには、タイミング・アナライザーが認識する正しい形式でクロック名がリストされます。
- .sdc ファイルを開き、クロック名をファイルに貼り付けます (1 行に 1 つのクロック名)。
- クロック名のリストを set_clock_groups コマンドにフォーマット化します。それには、クロック名を適切なグループにカット・アンド・ペーストします。その後、次のテンプレートを .sdc ファイルに貼り付けます。
set_clock_groups -asynchronous -group { \ } \ -group { \ } \ -group { \ } \ -group { \ } - クロック名をグループにカット・アンド・ペーストしてそれらの関係を定義します。必要に応じてグループを追加または削除します。グループをフォーマット化すると、コードが読みやすくなります。
注: このコマンドは、単一の行では読むのが難しくなる可能性があります。Tcl の行継続文字「\」を使用して、これをより読みやすくすることができます。最後の文字の後にスペースを入れ、行末に「\」文字を配置します。エスケープ文字の後にスペースを入れないように注意します。これに従わない場合は、スペースが行末文字ではなく、エスケープ文字になります。
set_clock_groups -asynchronous \ -group {adc_clk \ the_adc_pll|altpll_component_autogenerated|pll|clk[0] \ the_adc_pll|altpll_component_autogenerated|pll|clk[1] \ the_adc_pll|altpll_component_autogenerated|pll|clk[2] \ } \ -group {sys_clk \ the_system_pll|altpll_component_autogenerated|pll|clk[0] \ the_system_pll|altpll_component_autogenerated|pll|clk[1] \ } \ -group {the_system_pll|altpll_component_autogenerated|pll|clk[2] \ }
注: 最後のグループには PLL 出力 system_pll|..|clk[2] があります。入力クロックと他の PLL 出力は異なるグループにあります。PLL を使用している際に、入力クロックの周波数が PLL の出力の周波数に関連しない場合は、PLL を非同期で処理する必要があります。PLL の出力は通常関連があり、同じグループに属しますが、これは必須ではありません。
複雑なクロック手法を使用するデザインの場合、クロックグループの作成は反復的なプロセスになることがあります。例えば、2 つの DDR3 コアと高速トランシーバーを備えるデザインでは、30 以上のクロックが存在する可能性があります。このようなケースでは、手動で作成するクロックを追加することから始めます。タイミング・アナライザーは、クロック・グループ・コマンドに表示されないクロックはすべてのクロックに関連していると想定し、既知のクロックを保守的にグループ化します。関係のないクロックドメイン間でデザインに不合格のパスがある場合は、必要に応じて新しいクロックドメインを追加することができます。この場合は、多数のクロックが set_clock_groups コマンドに入りません。それらは IP の .sdc ファイル (DDR3 コアが生成する .sdc ファイルなど) で切断されている、もしくは関連するクロックドメインにのみ接続しています。
多くのデザインでは、IP の制約に必要なのはこれだけです。
関連情報