Arria 10デバイス・デザイン例におけるPHYLiteの実装

ID 683384
日付 1/19/2016
Public
ドキュメント目次

1.3. 機能の説明

DUT(Device Under Test)モジュール

The DUT モジュールは2つのAltera PHYLite IPインスタンスで構成されています。
  • 4-bit dut_INPUTモジュール
  • 4-bit dut_OUTPUTモジュール
dut_INPUTモジュールの機能には以下が含まれます。
  • 外部I/Oインタフェースからストローブ・エッジにアラインされたデータを受信する
  • トラフィック・ジェネレータからrdata_en信号を受信する
  • 外部I/Oインタフェースからトラフィック・ジェネレータにデータを送信する
dut_OUTPUTモジュールの機能には以下が含まれます。
  • トラフィック・ジェネレータからデータ、ストローブ、および出力イネーブルを受信する
  • エッジ・アラインされたデータとストローブを外部I/Oインタフェースに送信する
また、ハードウェア・リファレンス・デザイン内のDUTモジュールもPHYLite Avalonコントローラで構成されています。PHYLite Avalonコントローラの機能には以下が含まれます。
  • PHYLite IPの各リコンフィギュレーション可能な機能に対しアドレス変換を実行します
  • PHYLite IPの各リコンフィギュレーション可能な機能に対し必要な設定をすべてキャッシュします
  • Nios IIソフト・プロセッサのコマンドをPHYLiteのコマンドに変換します

トラフィック・ジェネレータ

トラフィック・ジェネレータ・モジュールはtgで表され、tg.vファイル内に位置します。

トラフィック・ジェネレータの機能には以下が含まれます。
  • リニア・フィードバック・シフト・レジスタ(LFSR)を介して継続的にdut_OUTPUTモジュールへデータを生成します
  • dut_OUTPUTモジュールからループバック・データをリードするためにdut_INPUTモジュールにrdata_en信号をアサートします
  • 受信データを再生成/送信されたデータと比較します
  • 受信するそれぞれのコレクト・データに対しcorrect_data_counterをインクリメントします。correct_data_counterは15ビット・カウンタです。
  • すべてのデータを正確に受信したことを示すdone信号をアサートします

ハードウェア・デザイン例では、トラフィック・ジェネレータは、NIOS IIプロセッサがキャリブレーション処理を完了した後に比較のためループバック・データを送信します。

NIOS IIソフト・プロセッサ

Nios IIソフト・プロセッサは、リードとライトのオペレーションをキャリブレーションします。Nios IIはAvalon Controllerを介しDUTモジュールとインタフェースします。

ダミーPHYLite

Arria 10開発ボードには制限が存在するため、DUTモジュールのデータ・ピンにリファレンス・クロックを接続するようデザイン例をイネーブルするには、このモジュールが必要となります。

In-System Sources and Probes(altsource_probe)モジュール

このモジュールはイン・システム・デバッグIPです。このモジュールを使用し、デザイン例で内部信号のビヘイビアをドライブし、キャプチャすることが可能です。このモジュールは、ハードウェア・デザイン例内でのみ使用可能です。

デザイン例ソフトウェア

ハードウェア・デザイン例の実行には、hello_world.cphylite_dynamic_reconfiguration.c、およびphylite_dynamic_reconfiguration.hファイルが必要です。

hello_world.cファイルの機能は、ストローブ・イネーブル・ウィンドウを特定することです。phylite_dynamic_reconfiguration.cphylite_dynamic_reconfiguration.hはライブラリ・ファイルで、これらはhello_world.cファイルにより使用されます。hello_world.c内のfind_strobe_enable_window()機能は以下のキャリブレーション・アルゴリズムを実行します。
  • ODELAY CSRから初期出力ストローブ位相をリードします
  • 新しい出力ストローブ位相の遅延をコンフィギュレーションし、アップデートします
  • テスト・データをもとに新しい出力ストローブ位相の遅延を検証します
  • 有効なストローブ・キャプチャ・ウィンドウを特定するために出力ストローブ位相の遅延の範囲をスイープします
  • 有効なストローブ・キャプチャ・ウィンドウから出力ストローブ位相の中央を検出します

DQS、DQ[0]、およびDQ[1]の値の遅延をコンフィギュレーションすることで、より良い結果を達成することができます。このリファレンス・デザインでは、DQSの値のみをコンフィギュレーションします。