インテルのみ表示可能 — GUID: uoi1707171878956
Ixiasoft
インテルのみ表示可能 — GUID: uoi1707171878956
Ixiasoft
2.3.5.1.3. 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 ファイルをコンパイラーが適切に適用していることを確認します。

SDC File Listレポートでは、各 .rtlsdc ファイルの正しい適用をさらに確認することができます。SDC File Listレポートには包括的なリストが含まれており、読み取られた各SDCファイル、ファイルの割り当てインスタンス、およびファイルでRTLでのSDC手法を使用していることが示されます。

さらに、制約のターゲットと目的に応じて制約が正しく適用されているかは、Create Generated ClockレポートとSet False Pathsレポートで確認することができます。

