このプロジェクトは、UDPパケットを送信するためにイーサネットPhyとのインターフェースに使用できるモジュールを作成します。送信のみがサポートされており、FPGAに実装されたレシーバーはありません。
モジュールは、FPGAからの固定幅データのストリーミング専用に構築されています。たとえば、このモジュールは、ADCまたは何らかのプロセスによって生成されたデータでサンプリングされたストリーミングデータに適しています。モジュールは可変サイズのデータを多少処理できますが、直接サポートされていません。可変サイズのデータを送信するには、各データポイントを送信する最大のデータポイントのサイズにパッドでパッドにしなければなりません。データポイントのサイズは前もって宣言する必要があり、モジュールは単一のデータポイントが複数のパケットを断片化することは決してないことを保証する必要があります。
このプロジェクトは、Xilinx Artix-7 XC7A100T FPGAを使用し、Texas Instruments DP83848J Ethernet Phy Controllerを備えたDigilent Arty A7用に特別に構築およびテストされました。ただし、MII標準はPHYで動作します。
このモジュールを使用する必要があります
このモジュールを使用しないでください
プロジェクトでこのモジュールを使用するには、含める必要がある2つのファイルがあります
src/hdl/eth_udp.svsrc/ip/eth_udp_fifo_async/eth_udp_fifo_async.xci ethernet_udp_transmitモジュールはインスタンス化され、 eth_udp_fifo_async IPを内部的に使用します。
Xilinx IPがロックされている場合、IPが別の部品に対して構成されている可能性があります。 TCLコンソールでreport_ip_statusを実行してこれを確認してください。修正は、 upgrade_ip [get_ips *]を実行することです。
xilinx vivadoを開き、 Tools > Run Tcl Script...を選択してから、ファイルExporerでgenerate_project.tclスクリプトを選択します。スクリプトは、すべてのプロジェクトソースをインポートすることにより、新しいproj/ディレクトリでVivadoプロジェクトを実行および作成します。プロジェクトが作成されなかった場合、 proj/ディレクトリが既に存在する可能性が高いです。
このプロジェクトは、 ether_testerプログラムを使用してテストできます。テスターは、FPGA上のバイトの擬似ランダムシーケンスを生成してUDPを介して送信し、テストプログラムが受信するシーケンスが正しいことを確認します。
テストプログラムを使用するには、Rustプログラムをコンパイルするために貨物が設置されていることを確認し、 ether_testerディレクトリに移動して実行します
cargo build依存関係をダウンロードし、プロジェクトを構築します。プログラムを表示するには、情報を支援するには、実行してください
cargo run -- -hプログラムのサンプルの呼び出しはです
cargo run --
-b256
--serial-port=/dev/ttyUSB1:115200
--src=8.8.8.8:4096,aa:bb:cc:dd:ee:ff
--dest=1.2.3.4:4096,00:11:22:33:44:55
-r1000順番に、引数は次のことを意味します。