Hi,
This is an asynchronous interface, thus you need some clock alignment.
Did you read about Manchester encoding? --> you need to.
When you look at the timing diagram you see to have an edge at every center of the transmitted bit.
--> use this as the alignment.
***
At the borders of every bit you may or you may not have an edge, thus you can´t use it as alignment.
***
I personally would not take the effort to code the whole ethernet interface. I´d rather use an external ETH chip. There are mana manufacturers with many different chips with different features, speed, interfaces...
Klaus