First of all, thanks for your quick responses.
Lothar Miller wrote:
> What level of knowledge do you have with FPGAs? Did you already
> implement some simpler hardware?
My experience is limited I have to say.
I have exercised vhdl for some time, starting with sinmple examples,
which went fine.
I have worked a little on the ML605, and played a little with the clock
and some leds.
However, in order to compute some more complex stuff, I guess I should
get into the pc-fpga communication.
I have gone through the ML605 schematic quite a lot. I think I have
understood most of the pins that are going to be used for an ethernet
communication.
Schlumpf wrote:
> You have to implement a MII-Interface (or GMII or RMII) to connect
> the
> required PHY.
agreed.
> And then you have to implement a state machine that feeds the
> MII-Inteface with the frame data.
again I agree (based on other examples I have seen e.g. from opencores)
> And after that you should implement a FCS-generator that calculates and
> adds the checksum to the frame.
> If you don´t want to implement a FCS-generator you have to switch your
> NIC to promiscuous mode to avoid filtering frames with wrong FCS.
>
I think I can almost understand what the Frame check sequence generator
should be doing. I am not very confident that I could write it myself
though.
> with MII the data-clock is sink-driven. So your interface might be
> asynchronous to the rest of your FGPA. So you have to implement a domain
> crossing via e.g. fifo memory and you need a proper constraining of you
> wohle design.
I did not really get that last part. ( didn't google for it either)
--
In any case, I was thinking that I could implement the ethernet mac core
from the Xilinx Core Generator. This should save the time and workload.
But even for that, there are certain basic that I cannot understand.
The UCF file, for example. I cannot find specific info about some pins
of the core, so I don't know how important they are, and if they should
be connected somewhere, or just left free.
Also, for starters I would send a custom packet. I mean that I would not
have to read+send data from memory or some random generator.
thanks again everyone!
(I am mostly self-taught, so I probably have some gaps in basic
knowledge.)
Emil