Оказывается, что обмен данными между FPGA и ПК по Ethernet - очень сложный процесс. Большинство людей используют PCI Express для связи между VC707 и ПК.
По моему опыту, PCI Express намного проще в использовании, чем Ethernet, при обмене данными между FPGA и ПК. Во-первых, для настройки PCI Express на стороне FPGA не требуется никакого программного обеспечения - все это делается с хоста. Во-вторых, эталонный дизайн Xilinx PCI Express завершен - если у вас есть эталонный дизайн, у вас есть работающая система. Эталонные схемы Ethernet, которые я нашел на Xilinx.com, даже не показали, как настроить драйвер устройства для MAC, и не подключили MAC к кабелю Ethernet. Пример ethernet / microblaze, приведенный ниже, кажется законченным, но посмотрите, сколько шагов нужно, чтобы он заработал.
Я нашел учебное пособие по настройке Ethernet-связи, в котором для настройки Ethernet-сети используется программный микроблэйзер в FPGA.
https://reference.digilentinc.com/learn/programmable-logic/tutorials/arty-getting-started-with-microblaze-servers/start
Я обычно использую ядро PCI Express, потому что я хочу больше контроля над интерфейсом, но PCI Express AXI Bridge очень прост в использовании.
Ответ очень длинный, чтобы включить его здесь.
Если вы не можете подключить vc707 к ПК, а настройка Ethernet слишком сложна, то на ум приходит еще два варианта:
- Передача данных через Uart
- Добавьте плату FTDI UMFT600X-B FMC FIFO и используйте USB 3 для передачи данных
И UART, и FTDI FIFO являются двунаправленными, поэтому они могут отправлять данные как с ПК на ПЛИС, так и возвращать данные с ПЛИС на ПК.
Обычно я использую UART с RIF и TX FIFO, а не интерфейсом регистра, чтобы упростить интеграцию с RTL.
Учитывая, что у вас нет требования к скорости, и у вас уже есть UART, работающий в одном направлении, вероятно, проще всего использовать UART в обоих направлениях.