2.4.4.5.1. デフォルトのマルチサイクル解析
2.4.4.5.2. エンド・マルチサイクル・セットアップ = 2、エンド・マルチサイクル・ホールド = 0
2.4.4.5.3. エンド・マルチサイクル・セットアップ = 2、エンド・マルチサイクル・ホールド = 1
2.4.4.5.4. 同じ周波数のクロック (送信先クロックのオフセットあり)
2.4.4.5.5. 送信元クロック周波数の倍数になる送信先クロック周波数
2.4.4.5.6. 送信元クロック周波数の倍数になる送信先クロック周波数 (オフセットあり)
2.4.4.5.7. 送信先クロック周波数の倍数になる送信元クロック周波数
2.4.4.5.8. 送信先クロック周波数の倍数になる送信元クロック周波数 (オフセットあり)
2.5.1. Fmax 概要レポート
2.5.2. Report Timingレポート
2.5.3. ソースファイルごとのタイミングレポート
2.5.4. データ遅延レポート
2.5.5. ネット遅延レポート
2.5.6. クロックレポートおよびクロック・ネットワーク・レポート
2.5.7. クロック間転送レポート
2.5.8. メタスタビリティー・レポート
2.5.9. CDC Viewer レポート
2.5.10. 非同期 CDC レポート
2.5.11. ロジック深度レポート
2.5.12. 近隣パスレポート
2.5.13. レジスター分布レポート
2.5.14. ルーティング着目ネットレポート
2.5.15. リタイミング制約レポート
2.5.16. レジスター統計情報レポート
2.5.17. パイプライン情報レポート
2.5.18. 時間借用データレポート
2.5.19. 例外レポートおよび例外範囲レポート
2.5.20. ボトルネック・レポート
2.5.21. タイミングの確認
2.5.22. SDCレポート
2.3.5.1.3. RTLでのSDCにおける自動スコープ例
この例では、RTLでのエンティティー・ベースのSDC制約と自動スコープをデザインに適用する方法を示します。 次の例では、clk_div の2つのインスタンスと追加 fifo インスタンスを使用して、この自動スコープ手法を適用する方法を示しています。
図 63. RTLエンティティー・ベースSDCデザイン例
- RTLでのグローバルSDC制約をデザインに適用します。
# sdc_on_rtl_global.rtlsdc create_clock -period 100MHz [get_ports clk_100] create_clock -period 75MHz [get_ports clk_75]
- File Properties ダイアログを使用して、この .rtlsdc ファイルを SDC File Targeting RTL names として割り当てる、もしくは次の .qsf 割り当てを使用します。
set_global_assignment -name RTL_SDC_FILE <filename>
図 64. File Propertiesダイアログ
- 最初のエンティティー・ベースの .rtlsdc ファイルの次の内容を定義します。これは、clk_div モジュールに限定されるものです。この場合、モジュール内の内容は不明ですが、出力の既知の多重クロック動作を .rtlsdc で記述することができます。
# clk_dic.rtlsdc set current_instance [get_entity_current_instance]; create_generated_clock -name ${current_instance}_clk_mux_2 -source [get_ports clk_in] -divide_by 2 [get_ports clk_out] create_generated_clock -name ${current_instance}_clk_mux_1 -source [get_ports clk_in] [get_ports clk_out] -addこれに対して、エンティティーに結び付ける次の手法を使用し、内部ロジックが既知の状態の fifo モジュールに制約を定義することができます。この手法は特に、同じモジュールの複数のインスタンスで同じ制約を共有する場合に効果的です。
図 65. FIFOモジュール
set_false_path -from [get_pins wptr_full|wptr[*]|clk] -to [get_pins sync_w2r|rq1_wptr[*]|d] set_false_path -from [get_pins rptr_empty|rbin[4]|clk] -to [get_pins sync_r2w|wq1_rptr[4]|d] set_false_path -from [get_pins rptr_empty|rptr[*]|clk] -to [get_pins sync_r2w|wq1_rptr[*]|d] set_false_path -from [get_pins wptr_full|wbin[4]|clk] -to [get_pins sync_w2r|rq1_wptr[4]|d]
次の .qsf 割り当てでは、clk_div.rtlsdc および fifo.rtlsdc ファイルをプロジェクトに追加し、ファイルの動作をRTLエンティティー・ベースSDCとして定義します。
set_global_assignment -name RTL_SDC_FILE clk_dic.rtlsdc -entity clk_div_wrapper -library clk_div_wrapper set_global_assignment -name RTL_SDC_FILE fifo.rtlsdc -entity fifo -library fifo
この割り当てにより、それぞれの .rtlsdc ファイルのスコープが縮小し、割り当てられている名前に一致するエンティティーになります。Analysis & Elaboration時に表示されるメッセージにより、割り当てられているモジュールに応じて各 .rtlsdc ファイルをコンパイラーが適切に適用していることを確認します。
図 66. Analysis & Elaborationメッセージでの .rtlsdc ファイルの適用確認
SDC File Listレポートでは、各 .rtlsdc ファイルの正しい適用をさらに確認することができます。SDC File Listレポートには包括的なリストが含まれており、読み取られた各SDCファイル、ファイルの割り当てインスタンス、およびファイルでRTLでのSDC手法を使用していることが示されます。
図 67. SDC File Listレポート
さらに、制約のターゲットと目的に応じて制約が正しく適用されているかは、Create Generated ClockレポートとSet False Pathsレポートで確認することができます。
図 68. Create Generated Clockレポート
図 69. Set False Pathレポート