You might know I despise USB so the best way to communicate, so far, is Ethernet. It's a bit convoluted but it's now very well understood and supported everywhere. I remember seeing attempts in HDL a decade ago but lost the links. I also like the Wiznet modules but would love to integrate some of their functionalities in a FPGA to cut prices and complexity (and prevent the issues that stem from single-source parts). Oh and it's something I have been asked to do, in the past. So this project will start as a place to gather all the necessary information.
And I'll start with a 10BaseT tranceiver. That should be enough for simple communications, I'm not aiming at high performance here. Yet.
Co-conspirators are welcome, drop me a PM if you're interested !
I tried this some years ago, but didn't finish it. A good start might be this project: http://www.pldworld.com/_xilinx/html/ref/xsvboard/stack/stack.htm I also did some early tests with sending and receiving ethernet packets with a transceiver chip and some VHDL code, but IIRC I never got the receiving part right, and was very low level, even without ARP, just some hard coded ethernet packets. It is a lot of work. I don't know if it is worth the trouble. Nowadays there are so many microcontrollers with integrated ethernet (plus the standard external EMAC type transceiver chip), just use one of these.
https://hackaday.com/2024/04/10/homebrew-network-card-with-no-cpu/ !