Can you share some logs?
I didn't save any captures unfortunately - they didn't seem too useful. I need to head home now (it is getting late here), but will try again in the next day or two.
I don't expect it to subtly malfunction because of the FPGA speed grade. It would likely fail entirely. The design relies on the uninterrupted stream if one byte gets lost, the whole stream will de-synchronize. If you consistently see any frames at all, then it is likely working and any loss would be due to different reasons. The frame loss may happen on the USB PHY side, but again, FPGA grade would not matter here.
OK that is good to know. I wasn't sure if it would be slightly unstable at the packet level, or drop out completely.
I saw some weird output in Wireshark, but wasn't sure if it was expected or not just because of what I was doing.
e.g. if I set it to full speed and started a capture with no device plugged in I was getting a bunch of phy errors - but once plugged in I saw the negotiation and device descriptor queries.
What made me suspect partial data loss is that I typed "Hello" into putty and only data the data packets for "H", "l", and "o" characters.
Honestly I don't know USB packet structures very well, so I usually just make assumptions about what looks good or not.
I have an STM32 based GPS tracker project I want to get back to where USB never worked. It has been a number of years, but I was pretty sure that was a MikroElectronica compiler/library issue.
And if speed test does not fail and runs for a long time, it means that FPGA-MCU interface is stable. The test uses pseudo-random sequence generated on the FPGA side and checked on the PC. It is not just a lot of dummy data, it is actually checked for correctness.
42 MB/s is a bit slow, but should not matter for FS. This is likely because of the internal motherboard hub. There must be a port with direct connection to the root hub that would get better speed.
I was wondering how well the test mode actually tested it. I read the notes on github, but it didn't give a lot of detail and I didn't delve into the code.
I had it plugged into a USB3 hub on my desk that comes off my USB-C docking station when I tested it earlier.
While typing this I had it plugged into the USB port on the side of my laptop, and I was getting a pretty stable 46-48 MB/s for more than 15 minutes.
What makes you think data is missing?
As mentioned above, I was just capturing the packets to FTDI USB serial while I typed Hello and could not see all those characters in data packets.