ビルトイン自動キャリブレーションの制御

Versal アダプティブ SoC SelectIO リソース アーキテクチャ マニュアル (AM010)

Document ID
AM010
Release Date
2024-03-18
Revision
1.5 日本語

BISC を実行するのに必要な属性は、SELF_CALIBRATE = ENABLE のみです。次の表に、BISC 関連の属性と、BISC を使用しない場合 (SELF_CALIBRATE = DISABLE) の影響を示します。属性の詳細は、属性 を参照してください。

表 1. BISC 関連の属性
属性 説明 SELF_CALIBRATE = DISABLE の場合の影響
CRSE_DLY_EN CRSE 遅延を有効にします。 CRSE 遅延は使用しません。
DELAY_VALUE_<0-5> 各 NIBBLESLICE の入力および出力遅延ラインの初期値を設定します。 DELAY_VALUE_<0-5> にロードされる入力および出力の遅延値は 0 です。ただし、PL から遅延をロードすることは可能です。
DIS_IDLY_VT_TRACK 入力遅延に対する VTC を無効にします。 入力遅延に対する VTC を無効にします。
DIS_ODLY_VT_TRACK 出力遅延に対する VTC を無効にします。 出力遅延に対する VTC を無効にします。
DIS_QDLY_VT_TRACK QTR 遅延に対する VTC を無効にします。 QTR 遅延に対する VTC を無効にします。
RX_CLK_PHASE_N、RX_CLK_PHASE_P ソース同期インターフェイスの場合、ストローブ (この場合は P 側クロックと N 側クロック) のセンタリングを制御します。 RX_CLK_PHASE_N と RX_CLK_PHASE_P は SHIFT_90 には設定できません。

次の表に、BISC の制御方法を示します。

表 2. BISC の制御手順のまとめ
BISC の手順 制御方法 その他の注意事項 全体に共通
アライメント
  • リセット シーケンス中に RX_EN_VTC と TX_EN_VTC をアサートし、アライメントを実行します。リセット シーケンス を参照してください。
  • アライメントは、リセット シーケンス完了時に 1 回だけ実行されます。アライメントを再実行する場合は、XPHY をリセットします。
  • BISC の各手順を実行するには、SELF_CALIBRATE = TRUE に設定しておく必要があります。
  • BISC は、次の時点で完了したものと見なされます。
    • BISC のすべての手順を実行する場合は、PHY_RDY がアサートされた時点
    • VTC 以外の BISC の手順を実行する場合は、DLY_RDY がアサートされた時点
    • BISC を実行しない場合は、DLY_RDY のアサートはアライメントと遅延キャリブレーションが完了したことを示すのではなく、遅延を変更可能であることを示します。このケースでは BISC を実行しないため、開始も終了もありません。
  • シミュレーションで BISC をサポートするには、一部の BISC 制御ポート (BISC_START_IN、BISC_STOP_IN、BISC_START_OUT、および BISC_STOP_OUT) をほかのニブルとデイジー チェーン接続する必要があります。デイジー チェーン接続するニブルの順番は問いません。また、使用していないニブルはデイジー チェーン接続に含める必要はありません。詳細は、ポート を参照してください。
遅延キャリブレーション
  • リセット シーケンス中に RX_EN_VTC と TX_EN_VTC をアサートし、遅延キャリブレーションを実行します。リセット シーケンス を参照してください。
  • DLY_RDY がアサートすると、BISC のアライメントと遅延キャリブレーションが両方完了しています。これ以降、遅延値を変更できます。インターフェイスが複数のニブルで構成されている場合、DLY_RDY のアサート時間はニブルごとに異なります。シミュレーションでは、DLY_RDY がアサートされるタイミングは 1 つのインターフェイス内ではすべてのニブルで同じですが、XPHY のコンフィギュレーションと接続が異なると変化します。
  • DLY_RDY のアサートには、最大 1.3ms かかります。
 
VTC
  • PHY_RDY がアサートしたら、VTC の実行が可能です。
  • EN_VTC = 1 の場合、QTR 遅延とトライステート NIBBLESLICE 内の遅延が VTC で補正されます。これは、RX/TX_EN_VTC の設定とは関係ありません。トライステート信号の VTC は、TBYTE_CTRL _#= T の影響を受ける NIBBLESLICE ではサポートされておらず、TBYTE_CTRL_# = PHY_WREN の場合のみ適用されます。
  • EN_VTC = 1 で、関連する RX/TX_EN_VTC = 1 の場合、入力および出力遅延も VTC で補正されます。
  • 出力遅延の場合は、DELAY_VALUE_# で設定した値が VTC によって補正されます。入力遅延の場合は、VTC によって補正されるタップ数は align_delay の影響を受けるため、それほど単純ではありません。入力遅延の場合に align_delay と DELAY_VALUE_# が VTC の動作に与える影響の詳細は、遅延の制御 を参照してください。
  • 外部キャリブレーションが不要で VTC を使用する場合は、EN_VTC = 1 にします。
  • 入力、出力、および QTR 遅延に対して適用されます。
  • DIS_IDLY_VT_TRACK (入力遅延)、DIS_ODLY_VT_TRACK (出力遅延)、および DIS_QDLY_VT_TRACK (QTR 遅延) 属性で無効にできます。
  • CRSE 遅延は VTC で補正されません。
重要: REFCLK_FREQUENCY が 500MHz 未満の場合、DELAY_VALUE_x 属性と VTC はサポートされません。この場合、EN_VTC は 0 に接続してください。

次の図に示すように、遅延を変更する手順は PHY_RDY の最初のアサートより前か後かで異なります。VTC を使用しない場合の遅延値の変更方法は、遅延の制御 を参照してください。

次に、PHY_RDY が最初にアサートされた後に NIBBLESLICE[x] の遅延値を変更する場合の手順とタイミング図を示します。

  1. 最初の状態では、EN_VTC、RX_EN_VTC、および TX_EN_VTC がアサートされています。
  2. RX_EN_VTC と TX_EN_VTC をディアサートします。
  3. RX_EN_VTC と TX_EN_VTC がディアサートされてから、CTRL_CLK の 10 サイクル待ちます。
  4. 遅延値を変更します (遅延の制御 参照)。
  5. さらに CTRL_CLK の 10 サイクル待ってから、RX_EN_VTC と TX_EN_VTC を再びアサートします。
  6. これで、XPHY は VTC が可能な状態となり、通常どおり動作できます。
図 1. PHY_RDY が最初にアサートされた後に遅延値を変更

次に、PHY_RDY が最初にアサートされる前に NIBBLESLICE[x] の遅延値を変更する場合の手順とタイミング図を示します。

  1. 最初の状態では、EN_VTC がディアサートされ、RX_EN_VTC と TX_EN_VTC がアサートされています。
  2. DLY_RDY をアサートした後、RX_EN_VTC と TX_EN_VTC をディアサートします。
  3. 関連する RX_EN_VTC および TX_EN_VTC がディアサートされてから、CTRL_CLK の 10 サイクル待ちます。
  4. 遅延値を変更します (遅延の制御 参照)。
  5. さらに CTRL_CLK の 10 サイクル待ってから、EN_VTC、RX_EN_VTC、および TX_EN_VTC をアサートします。
  6. PHY_RDY がアサートされると、XPHY は VTC が可能な状態となり、通常どおり動作できます。
図 2. PHY_RDY が最初にアサートされる前に遅延値を変更