Gigabit Ethernet transmission is currently unreliable for packets > 100 bytes and busted for > 200 bytes.

Things to try:

  • Check CRC generation - there's some code that does this at http://www.edaboard.com/thread120700.html
    • CRC looks good!
  • Fiddle with MTU on my computer (this shouldn't affect incoming packets, though!)
    • I really don't think this matters.
  • Fiddle with code
    • I discovered a bug where EOF wasn't being transmitted, purely because I wasn't waiting the dst_ready signal before clearing it. This explains why very short packets worked. Unfortunately it now seems like the PHY isn't accepting any packets at all!
  • Fiddle with timing constraints