In diesem Projekt werden ein Modul erstellt, mit dem mit einem Ethernet -PHY zur Übertragung von UDP -Paketen eine Schnittstelle hergestellt werden kann. Es wird nur eine Übertragung unterstützt und auf der FPGA wird kein Empfänger implementiert.
Das Modul wird speziell für Streaming -Daten mit festen Breite aus der FPGA erstellt. Zum Beispiel eignet sich das Modul gut für das Streaming von Daten, die auf einem ADC oder einer von einem Prozess generierten Daten abgetastet wurden. Obwohl das Modul Daten mit variabler Größe verarbeiten kann, wird es nicht direkt unterstützt. Um Daten mit variabler Größe zu senden, muss jeder Datenpunkt auf die Größe des zugesandten Datenpunkts gepolstert werden. Die Größe der Datenpunkte muss im Voraus deklariert werden und das Modul garantiert, dass ein einzelner Datenpunkt niemals zu mehreren Paketen vorgezogen wird.
Dieses Projekt wurde speziell für den Digilent Arty A7 erstellt und getestet, bei dem ein Xilinx Artix-7 XC7A100T FPGA verwendet wird und einen Texas Instruments DP83848J Ethernet Phy Controller hat. Der MII -Standard funktioniert jedoch mit jedem pHy.
Sie sollten dieses Modul verwenden, wenn
Sie sollten dieses Modul nicht verwenden, wenn
Um dieses Modul in einem Projekt zu verwenden, müssen zwei Dateien enthalten sein
src/hdl/eth_udp.svsrc/ip/eth_udp_fifo_async/eth_udp_fifo_async.xci Das Modul ethernet_udp_transmit ist zu instanziiert und verwendet intern die IP eth_udp_fifo_async .
Wenn die Xilinx -IP gesperrt ist, ist es wahrscheinlich, dass die IP für einen anderen Teil konfiguriert wurde. Überprüfen Sie dies, indem Sie report_ip_status in der TCL -Konsole ausgeführt werden. Mit dem Fix wird upgrade_ip [get_ips *] ausgeführt.
Öffnen Sie Xilinx Vivado und wählen Sie Tools > Run Tcl Script... und wählen Sie dann das Skript generate_project.tcl im Datei -Exporer aus. Das Skript wird das Vivado -Projekt in einem neuen proj/ Verzeichnis ausführen und produzieren, indem alle Projektquellen importiert werden. Wenn das Projekt nicht erstellt wird, ist es höchstwahrscheinlich, dass das proj/ Verzeichnis bereits vorhanden ist.
Das Projekt kann mit dem Programm des ether_tester getestet werden. Der Tester erzeugt eine Pseudo-Random-Sequenz von Bytes auf der FPGA, um das UDP zu senden, und das Testerprogramm überprüft, dass die von ihm empfangene Sequenz korrekt ist.
Um das Testprogramm zu verwenden, stellen Sie ether_tester
cargo buildUm Abhängigkeiten herunterzuladen und das Projekt zu erstellen. Um die Programmhilfeinformationen anzuzeigen, führen Sie aus
cargo run -- -hEine Beispielaufruf des Programms ist
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
-r1000In der Reihenfolge bedeuten die Argumente Folgendes.