It can be done in an FPGA, but I've never done it. All FPGA vendors sell cores for it. I think EVERYTHING about implementing ethernet from scratch is challenging.
I actually found a great core for Ethernet from Intel (X550) ((**broken link removed**)) which does exactly what i need it to do... for the USB i could not find any ICs for the USB 3.1 (Gen2) any suggestions? or should i do it with FPGA? if yes any sources that might help please?
If FPGA is not hard stop, there are many processors from TI,NXP/Freescale, Renesas etc which can support USB 3.1,PCIe and Ethernet. Even some high end controllers from Atmel or equalent will support these interfaces. Just search the manufacterers.