自動バッファー選択とクロック グルーピング - 1.0 日本語

Clocking Wizard v1.0 for Versal ACAP LogiCORE IP 製品ガイド (PG321)

Document ID
PG321
Release Date
2022-04-20
Version
1.0 日本語
  • 自動バッファー モード (クロック出力の [Drives] で [Buffer] を選択) では、すべてのクロック出力をいずれか 1 つのバッファー (BUFG または MBUFGCE) で駆動する必要があります。
  • 自動バッファー モード (クロック出力の [Drives] で [Buffer with CE] を選択) では、すべてのクロック出力がいずれかの CE 入力付きバッファー (BUFGCE または MBUFGCE) で駆動されます。
  • Clocking Wizard は、[Drives] で [Buffer] または [Buffer with CE] を選択したすべてのクロック出力を自動バッファーと見なし、ユーザーが指定したほかの設定値に基づいて最適なバッファーを選択します。
  • クロック出力の周波数が /1、/2、/4、/8 の分周値で、位相 0°、デューティ サイクル 50%、およびすべてのクロック出力が同じクロック グループに属する場合、MBUFGCE が推論されます。
  • 各クロック出力には、次の 5 つのクロック グループ オプションのいずれかを選択できます。
    • Auto (デフォルト値)
    • CLOCK_A
    • CLOCK_B
    • CLOCK_C
    • None
  • [Clock Grouping] を [Auto] に設定すると、ユーザーが明示的にクロック グループを指定するのではなく、IP が MBUFGCE の推論に応じてクロックを最適なグループに振り分けます。
  • 最大 3 つの MBUFGCE が自動バッファーとして推論されます (最大 7 つのクロックが存在するため、推論された 1 つの MBUFGCE には少なくとも 2 つのクロックがある)。
  • 明示的にクロック グループを指定したクロックは、自動バッファーを選択したかどうかにかかわらず、すべて同じクロック グループに振り分けられ、制約が生成されます (CLOCK_DELAY_GROUP 制約が <ip>.xdc ファイルに生成される)。

    次に、自動バッファー ([Drives] で [Buffer] を選択) と自動クロック グルーピングの組み合わせの例を示します。

    1. すべての周波数が互いに独立している (整数分周の関係にない) 場合、すべてのクロック出力にそれぞれ BUFG が推論されます。
    2. 次の表に示すように、すべての周波数が clk_out1 と整数分周の関係にある場合
      表 1. clk_out1 を整数分周した周波数
      Clk_out DIV
      Clk_out1 1
      Clk_out2 2
      Clk_out3 3
      Clk_out4 4
      Clk_out5 5
      Clk_out6 6
      Clk_out7 8
      • 2 つの MBUFGCE (MBUFGCE1: clkout1、2、4、7 および MBUFGCE2: clkout3、6) と BUFG (残りの clkout6) が推論されます。
      • clk_out1 が MBUFGCE1 への入力となるため clk1_clr_n を利用でき、clk_out3 が MBUFGCE2 への入力となるため clk3_clr_n も利用できます。
    3. clk_out1 と同じ周波数か、clk_out1 を整数分周した周波数の場合
      表 2. clk_out1 と同じ、または clk_out1 を整数分周した周波数
      Clk_out DIV
      Clk_out1 1
      Clk_out2 1
      Clk_out3 1
      Clk_out4 1
      Clk_out5 2
      Clk_out6 3
      Clk_out7 4
      • 3 つの派生クロック (clkout1、5、7) を 1 つの MBUFGCE から、残りの派生クロック (clkout2、3、4、6) を別の BUFG から得ることができます。
      • clk_out1 が MBUFGCE への入力となるため、clk1_clr_n を利用できます。
    4. クロック出力が 4 つしかなく、すべてが clk_out1 を整数分周した周波数の場合
      表 3. 4 つのクロックが clk_out1 を 1、2、4、8 分周した周波数
      Clk_out DIV
      Clk_out1 1
      Clk_out2 2
      Clk_out3 4
      Clk_out4 8
      • この場合は MMCM プリミティブは推論されず、IP は MBUFGCE を推論します。
      • clk_out1 が MBUFGCE への入力となるため、clk1_clr_n を利用できます。
    5. 1 または 2 分周した周波数の場合
      表 4. clk_out1 を 1、2 分周した周波数
      Clk_out DIV
      Clk_out1 1
      Clk_out2 2
      Clk_out3 1
      Clk_out4 2
      Clk_out5 1
      Clk_out6 2
      Clk_out7 1
      • 3 つの MBUFGCE (MBUFGCE1: clkout1、2。MBUFGCE2: clkout3、4。MBUFGCE3: clkout5、6) と BUFG (残りの clkout7) が推論されます。
      • clk_out1 が MBUFGCE1 への入力となるため、clk1_clr_n を利用できます。clk_out3 が MBUFGCE2 への入力となるため、clk3_clr_n を利用できます。clk_out5 が MBUFGCE3 への入力となるため、clk5_clr_n を利用できます。
    6. すべての周波数が clk_out1 を偶数で整数分周した周波数の場合
      表 5. clk_out1 を偶数で整数分周した周波数
      Clk_out DIV
      Clk_out1 1
      Clk_out2 2
      Clk_out3 2
      Clk_out4 4
      Clk_out5 4
      Clk_out6 6
      Clk_out7 8
      • 2 つの MBUFGCE (MBUFGCE1: clkout1、2、4、7。MBUFGCE2: clkout3、5) を使用して 6 つのクロック出力を推論し、残りのクロック (clkout6) は BUFG から推論されます。
      • clk_out1 が MBUFGCE1 への入力となるため clk1_clr_n を利用でき、clk_out3 が MBUFGCE2 への入力となるため clk3_clr_n も利用できます。
クロック グループを選択した場合のサンプル テスト ケース
すべてのクロックが clk_out1 を整数分周した周波数の場合
表 6. clk_out1 を整数分周した周波数で、クロック グループが複数する場合
Clk_out DIV CLK グループ
Clk_out1 1 CLOCK_A
Clk_out2 2 CLOCK_B
Clk_out3 3 自動
Clk_out4 4 CLOCK_A
Clk_out5 5 自動
Clk_out6 6 自動
Clk_out7 8 CLOCK_B
  • 3 つの MBUFGCE (MBUFGCE1: clkout1、4。MBUFGCE2: clkout2、7。MBUFGCE3: clkout3、6) が推論され、残りのクロック (clkout5) は BUFG から推論されます。
  • clk_out1 が MBUFGCE1 への入力となるため、clk1_clr_n を利用できます。clk_out2 が MBUFGCE2 への入力となるため、clk2_clr_n を利用できます。clk_out3 が MBUFGCE3 への入力となるため、clk3_clr_n を利用できます。

次に、自動バッファー ([Drives] で [Buffer with CE] を選択) と自動クロック グルーピングの組み合わせの例を示します。

  1. すべての周波数が互いに独立している (整数分周の関係にない) 場合、すべてのクロック出力にそれぞれ BUFGCE が推論されます。
  2. 次の表に示すように、すべての周波数が clk_out1 と整数分周の関係にある場合
    表 7. clk_out1 を整数分周した周波数
    Clk_out DIV
    Clk_out1 1
    Clk_out2 2
    Clk_out3 3
    Clk_out4 4
    Clk_out5 5
    Clk_out6 6
    Clk_out7 8
    • 2 つの MBUFGCE (MBUFGCE1: clkout1、2、4、7 および MBUFGCE2: clkout3、6) と BUFGCE (残りの clkout6) が推論されます。
    • clk_out1 が MBUFGCE1 への入力となるため clk1_clr_n を利用でき、clk_out3 が MBUFGCE2 への入力となるため clk3_clr_n も利用できます。
    • clk_out1 が MBUFGCE1 への入力となるため clk1_ce を利用でき、clk_out3 が MBUFGCE2 への入力となるため clk3_ce も利用でき、clk_out5_ce も clk_out5 に対する BUFGCE として利用できます。
  3. 一部の周波数が clk_out1 と同じで、その他の周波数が clk_out1 と整数分周の関係にある場合
    表 8. 一部の周波数が clk_out1 と同じで、その他の周波数が clk_out1 と整数分周の関係にある場合
    Clk_out DIV
    Clk_out1 1
    Clk_out2 1
    Clk_out3 1
    Clk_out4 1
    Clk_out5 2
    Clk_out6 3
    Clk_out7 4
    • 3 つの派生クロック (clkout1、5、7) を 1 つの MBUFGCE から、残りの派生クロック (clkout2、3、4、6) を別の BUFGCE から得ることができます。
    • clk_out1 が MBUFGCE への入力となるため、clk1_clr_n と clk1_ce を利用できます。
    • clk_out2_ce、clk_out3_ce、clk_out4_ce、および clk_out6_ce も推論された 4 つの BUFGCE として利用できます。
  4. 使用するクロック出力が 4 つしかなく、すべてが clk_out1 を整数分周した周波数の場合
    表 9. 使用するクロック出力が 4 つしかなく、すべてが clk_out1 を整数分周した周波数の場合
    Clk_out DIV
    Clk_out1 1
    Clk_out2 2
    Clk_out3 4
    Clk_out4 8
    • 4 つのクロックすべてを 1 つの MBUFGCE から得ることができます。
    • clk_out1 が MBUFGCE への入力となるため、clk1_clr_n と clk1_ce を利用できます。
  5. 1 または 2 分周した周波数の場合
    表 10. 1 または 2 分周した周波数の場合
    Clk_out DIV
    Clk_out1 1
    Clk_out2 2
    Clk_out3 1
    Clk_out4 2
    Clk_out5 1
    Clk_out6 2
    Clk_out7 1
    • 3 つの MBUFGCE (MBUFGCE1: clkout1、2。MBUFGCE2: clkout3、4。MBUFGCE3: clkout5、6) と BUFGCE (残りの clkout7) が推論されます。
    • clk_out1 が MBUFGCE1 への入力となるため、clk1_clr_n と clk1_ce を利用できます。clk_out3 が MBUFGCE2 への入力となるため、clk3_clr_n と clk3_ce を利用できます。clk_out5 が MBUFGCE3 への入力となるため、clk5_clr_n と clk5_ce を利用できます。
    • clk_out7_ce は clk_out7 に対して推論された BUFGCE として利用できます。
  6. すべての周波数が clk_out1 を偶数で整数分周した周波数の場合
    表 11. clk_out1 を偶数で整数分周した周波数の場合
    Clk_out DIV
    Clk_out1 1
    Clk_out2 2
    Clk_out3 2
    Clk_out4 4
    Clk_out5 4
    Clk_out6 6
    Clk_out7 8
    • 2 つの MBUFGCE (MBUFGCE1: clkout1、2、4、7。MBUFGCE2: clkout3、5) を使用して 6 つのクロック出力を推論し、残りのクロック (clkout6) は BUFGCE から推論されます。
    • clk_out1 が MBUFGCE1 への入力となるため clk1_clr_n と clk1_ce を利用でき、clk_out3 が MBUFGCE2 への入力となるため clk3_clr_n と clk3_ce も利用できます。
    • clk_out6 には BUFGCE が推論されるため、clk_out6_ce を利用できます。

クロック グループを選択した場合のサンプル テスト ケース

すべてのクロックが clk_out1 を整数分周した周波数の場合

表 12. clk_out1 を整数分周した周波数
Clk_out DIV CLK グループ
Clk_out1 1 CLOCK_A
Clk_out2 2 CLOCK_B
Clk_out3 3 自動
Clk_out4 4 CLOCK_A
Clk_out5 5 自動
Clk_out6 6 自動
Clk_out7 8 CLOCK_B

3 つの MBUFGCE (MBUFGCE1: clkout1、4。MBUFGCE2: clkout2、7。MBUFGCE3: clkout3、6) と BUFGCE (残りの clkout5) が推論されます。

  • 3 つの MBUFGCE (MBUFGCE1: clkout1、4。MBUFGCE2: clkout2、7。MBUFGCE3: clkout3、6) が推論され、残りのクロック (clkout5) には BUFGCE が推論されます。
  • clk_out1 が MBUFGCE1 への入力となるため、clk1_clr_n と clk1_ce を利用できます。clk_out2 が MBUFGCE2 への入力となるため、clk2_clr_n と clk2_ce を利用できます。clk_out3 が MBUFGCE3 への入力となるため、clk3_clr_n と clk3_ce を利用できます。
  • clk_out5_ce は clk_out5 に対して推論された BUFGCE として利用できます。
注記: 上記のすべてのケースで、MBUFGCE に接続される *_clr_n pin はアクティブ Low 信号です。MBUFGCE をアクティブにするには 1 に接続する必要があります。