For what it's worth, auto-negotiation does not involve packet transmit/receive. It's a function performed within the PHY, and the NIOS software determines it's success/failure by reading the PHY status registers via the MDIO. Your problem might be something simple like the cable or possibly a bad pin assignment (although if it were a bad pin assignment I'm not sure you would have gotten that far).
Regarding SRAM, I believe the standard ethernet example (and also my BeMicro SDK projects) have onchip SRAM for SGDMA descriptor storage; the packets themselves are in DDR however. If you are following the standard example, you shouldn't have any trouble like memory corruption.