製品情報>Kintex-7 PCIe Express光ボード「Cosmo-K」>10Gビットイーサ・サンプルデザイン

10Gビットイーサ・サンプルデザイン

Cosmo-Kで10Gビットイーサを動作させることができるようになってきたのでサンプルデザインのダウンロードを開始します。

 

現時点では以下の機能があります。

  • 光ファイバを用いた10GbE
  • ARP Request 自動応答
  • ICMP Echo Request (PING) 自動応答
  • ARP, PING, UDP パケット送信インタフェース
  • AXI Streamから受信したデータをUDPで送信
  • UDPで受信したデータをAXI Streamに送信

当デザインは、シンプルな計測や制御などに用いることを想定しており、TCPの機能はありません。

 

ダウンロード

下記のリンクからダウンロードしてください。

※現時点では、Cosmo-Kをお買い上げの方のみダウンロード可能です。

使用方法

まず市販の光ファイバモジュール(下の写真では、FINISAR FTLX8754D3BCL)をSFP+のコネクタに装着します。

 

Cosmo-Kからの10GbEは光ファイバで出てきます。10Gの光をメタルに変換するため、市販のスイッチングHUB(NetGear PROSAFE XS708T)に接続します。

 

 

このようにして、10GbEの信号を10Gや1Gのメタルの配線に変換し、それをPCで取り込みます。

デザインの説明

当デザインはVivadoのBlock Designで構成されていて、下のような構造になっています。

 

 

初期設定では、IPアドレス192.16.2.190、MACアドレスDE-AD-BE-EF-CA-FEに設定されています。

イーサコア

10Gbのイーサコアは以下のシンボルとなっています。

 

このコアにはs_axisポート(TX)と、m_axisポート(RX)があります。

s_axisポートにイーサネットのフレームを渡すと、それが eth_tx_p/n の出力から送信されます。コアの中でFCS(フレームチェックシーケンス)は計算されます。

また、eth_rx_p/n の入力から受信したデータはm_axisポートを通じて64bit 幅に整形されて出てきます。FCSは取り除かれています。

このコアを直接操作する必要はなく、ARPの応答などを自動化した、上位のインタフェースが用意されています。

UDP送信コア

下記のUDPコアにs_axis に任意のデータを入力すると、Ethernet ヘッダ、IP ヘッダ、UDP ヘッダが付与されたフレームがm_axis から出力されます。

送信先アドレスなどはsrc_*, dst_* のポートから指定します。

 

 

AXI インタフェースの速度

10GbEはユーザのペイロードの速度が10Gbpsです。この速度で送信するため、AXIのクロックは156.25MHzでデータバスの幅は64bitとなります。(156.25×66=10.312Gbps)

64b/66b変換された信号が光ファイバ上で伝送されるレートは10.3124Gbpsとなります。

 

実験

送信と受信をループバックして、内部の信号をChipScooeで観察した波形です。

 

ARPを連続して送信している波形です。

 

なお、64バイトの小さなUDPを連続で送信し、LinuxにIntel製の10G NICを挿し、DPDKを入れてレートを測ったところ5Gbps程度のパケットが観測されました。Windows10の場合では1G程度の速度でしか受信できません。

普通のパソコンで10GbEのパケットを受信するには、受信側を相当カスタマイズしないといけないのかもしれません。

新しい実験を行ったさいに、結果は追記します。

 

 


© 2017 TokushuDenshiKairo Inc. All rights reserved