Ce projet crée un module qui peut être utilisé pour s'interfacer avec un PHY Ethernet pour transmettre des paquets UDP. Seule la transmission est prise en charge et aucun récepteur n'est implémenté sur le FPGA.
Le module est construit spécifiquement pour le streaming des données de largeur fixe du FPGA. Par exemple, le module fonctionne bien pour le streaming des données échantillonnés sur un ADC ou des données générées par un processus. Bien que le module puisse gérer quelque peu des données de taille variable, il n'est pas directement pris en charge. Pour envoyer des données de taille variable, chaque point de données doit être rembourré à la taille du plus grand point de données à envoyer. La taille des points de données doit être déclarée à l'avance et le module garantit qu'un seul point de données ne sera jamais fragmenté à réaliser plusieurs paquets.
Ce projet a été spécifiquement construit pour et testé sur le Digilent ARTY A7, qui utilise un XILINX Artix-7 XC7A100T FPGA et a un contrôleur Ethernet Phy Instruments Texas Instruments DP83848J. Cependant, la norme MII fonctionnera avec n'importe quel PHY.
Vous devez utiliser ce module si
Vous ne devez pas utiliser ce module si
Pour utiliser ce module dans un projet, il y a deux fichiers qui doivent être inclus
src/hdl/eth_udp.svsrc/ip/eth_udp_fifo_async/eth_udp_fifo_async.xci Le module ethernet_udp_transmit doit être instancié et il utilise en interne l'IP eth_udp_fifo_async .
Si l'IP Xilinx est verrouillé, il est probable que l'IP a été configuré pour une partie différente. Vérifiez ceci en exécutant report_ip_status dans la console TCL, et le correctif consiste à exécuter upgrade_ip [get_ips *] .
Ouvrez Xilinx VIVADO et sélectionnez Tools > Run Tcl Script... , puis sélectionnez le script generate_project.tcl dans l'exporteur de fichiers. Le script s'exécutera et produira le projet Vivado dans un nouveau proj/ répertoire en important toutes les sources de projet. Si le projet ne parvient pas à être créé, il est très probable que le proj/ répertoire existe déjà.
Le projet peut être testé à l'aide du programme ether_tester . Le testeur génère une séquence pseudo-aléatoire d'octets sur le FPGA à envoyer sur UDP, et le programme de test vérifie que la séquence qu'il reçoit est correcte.
Pour utiliser le programme de test, assurez-vous que la cargaison est installée pour compiler les programmes de rouille, puis accéder au répertoire ether_tester et exécuter
cargo buildPour télécharger les dépendances et construire le projet. Pour afficher les informations d'aide du programme, exécutez
cargo run -- -hUn échantillon d'invocation du programme est
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
-r1000Dans l'ordre, les arguments signifient les éléments suivants.