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

ID 683243
日付 1/31/2023
Public
ドキュメント目次

2.6.10. 回路例と SDC ファイル

次の .sdc ファイルでは、図のデュアルクロック、フェーズ・ロック・ループ (PLL) 例を制約する方法を示しています。これには、その他の一般的な同期デザイン要素も含まれます。

基本的な .sdc 制約の例

# Create clock constraints
create_clock -name clockone -period 10.000Ns [get_ports {clk1}]
create_clock -name clocktwo -period 10.000Ns [get_ports {clk2}]
# Create virtual clocks for input and output delay constraints
create clock -name clockone_ext -period 10.000Ns
create clock -name clocktwo_ext -period 10.000Ns
# derive PLL clocks to create the altpll0| clock referenced later
derive_pll_clocks
# derive clock uncertainty
derive_clock_uncertainty
# Specify that clockone and clocktwo are unrelated by assigning
# them to separate asynchronous groups
set_clock_groups \    
  -asynchronous \
  -group {clockone} \    
  -group {clocktwo altpll0|altpll_component|auto_generated|pll1|clk[0]}         
# set input and output delays
set_input_delay -clock { clockone_ext } -max 4 [get_ports {data1}]
set_input_delay -clock { clockone_ext } -min -1 [get_ports {data1}]
set_input_delay -clock { clockone_ext } -max 4 [get_ports {data2}]
set_input_delay -clock { clockone_ext } -min -1 [get_ports {data2}]
set_output_delay -clock { clocktwo_ext } -max 6 [get_ports {dataout}]
set_output_delay -clock { clocktwo_ext } -min -3 [get_ports {dataout}]

この .sdc ファイルには、次の基本的な制約が含まれています。これらの制約は通常、ほとんどのデザインに含めるものです。

  • ベースクロックとしての clockone および clocktwo の定義。また、デザイン内のノードへのこれらの制約の割り当て
  • 仮想クロックとしての clockone_ext および clocktwo_ext の定義。これらは、FPGA とインターフェイスしている外部デバイスを駆動するクロックを表します
  • PLL 出力での生成クロックの自動導出
  • クロックの不確実性の導出
  • 2 つのクロックグループの指定。最初のグループには clockone とそれに関連するクロックが含まれ、2 番目のグループには clocktwo と PLL の出力が含まれます。この仕様は、デザイン内のすべてのクロックが相互に関連していると考えるデフォルトの解析をオーバーライドします
  • デザインの入力遅延および出力遅延の仕様
図 161. デュアルクロック・デザインの制約例