Этот проект создает модуль, который можно использовать для взаимодействия с Ethernet PHY для передачи пакетов UDP. Поддерживается только передача, и на FPGA нет приемника.
Модуль построен специально для потоковой передачи данных с фиксированной шириной из FPGA. Например, модуль хорошо работает для потоковых данных, отобранных по АЦП или данных, сгенерированных некоторым процессом. Хотя модуль может несколько обрабатывать данные переменного размера, он не поддерживается напрямую. Чтобы отправить данные переменного размера, каждая точка данных должна быть подкреплена до размера самой большой точки данных, которая должна быть отправлена. Размер точек данных должен быть объявлен спереди, и модуль гарантирует, что одна точка данных никогда не будет фрагментированным множеством пакетов.
Этот проект был специально создан для и протестирован на Digilent Arty A7, который использует FPGA XILINX Artix-7 XC7A100T и имеет контроллер Texas Instruments DP83848J Ethernet. Тем не менее, стандарт MII будет работать с любым PHY.
Вы должны использовать этот модуль, если
Вы не должны использовать этот модуль, если
Чтобы использовать этот модуль в проекте, есть два файла, которые должны быть включены
src/hdl/eth_udp.svsrc/ip/eth_udp_fifo_async/eth_udp_fifo_async.xci Модуль ethernet_udp_transmit должен быть создан, и он внутри использует eth_udp_fifo_async IP.
Если IP Xilinx заблокирован, то вполне вероятно, что IP был настроен для другой части. Проверьте это, запустив report_ip_status в консоли TCL, и исправление состоит в том, чтобы запустить upgrade_ip [get_ips *] .
Откройте Xilinx Vivado и выберите Tools > Run Tcl Script... , затем выберите скрипт generate_project.tcl в экспорте файла. Сценарий будет работать и производить проект Vivado в новом proj/ Directory, импортируя все источники проекта. Если проект не может быть создан, скорее всего, proj/ каталог уже существует.
Проект может быть протестирован с использованием программы ether_tester . Тестер генерирует псевдолупондому последовательности байтов на FPGA для отправки UDP, и программа испытаний проверяет, что последовательность, которую он получает, является правильной.
Чтобы использовать тестовую программу, убедитесь, что груз установлен для составления программ ржавчины, затем перейдите в каталог 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В порядке, аргументы означают следующее.