Quartus® Primeプロ・エディションのユーザーガイド: タイミング・アナライザー

ID 683243
日付 4/01/2024
Public
ドキュメント目次

2.3.5.1.3. RTLでのSDCにおける自動スコープ例

この例では、RTLでのエンティティー・ベースのSDC制約と自動スコープをデザインに適用する方法を示します。 次の例では、clk_div の2つのインスタンスと追加 fifo インスタンスを使用して、この自動スコープ手法を適用する方法を示しています。
図 63. RTLエンティティー・ベースSDCデザイン例


  1. RTLでのグローバルSDC制約をデザインに適用します。
    # sdc_on_rtl_global.rtlsdc
    
    create_clock -period 100MHz [get_ports clk_100]
    create_clock -period 75MHz [get_ports clk_75]
  2. File Properties ダイアログを使用して、この .rtlsdc ファイルを SDC File Targeting RTL names として割り当てる、もしくは次の .qsf 割り当てを使用します。
    set_global_assignment -name RTL_SDC_FILE <filename>
    図 64. File Propertiesダイアログ


  3. 最初のエンティティー・ベースの .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レポート