Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
10 years ago

Ethernet communication between FPGAs

Hi everyone,

I'm working on a project where I have two boards (One Master and one Slave), and I need to realise an Ethernet communication between those two.

Both the boards uses a Cyclone V FPGA, so I work with Quartus II.

I have found some examples of communication between an FPGA and a PC, but not between two FPGAs through Ethernet.

I found a megafunction in Quartus called "Triple-Speed Ethernet MegaCore Function" with the Wizard where I can choose the type of transceivers used, either none, or the GXB type. Can you tell me the difference between these two choices if you know it?

In order to achieve my communication I would have a code on my slave board and another on my master board. I wanted to know if it was correct to implement my Megafunction in both codes in order to transmit my signals?

I would have a block of my Megafunction present in my master code and the same block present in my slave code that would correspond to both ends of my Ethernet cable.

This would allow me to connect the signals arriving on my slave from the master and my slave signals sent to the master, all in the block of my slave Megafunction and vice versa on the master.

Thanks in advance for the help,

Cordially,

David.

5 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Hi David,

    I TSE can work in 10/100/1000 Mbps. The 1000Mbps using GXB was done with the transceiver channels while the 10/100 is done with DDIO and through external phy.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Hi,

    Thanks for the reply it helped !

    I also wanted to know if I can link my two Megafunction like said in the datasheet (picture below). Knowing that I just have to send two signals between my FPGAs, a LED Status and a clock, I think this architecture would be enough, but I'm not sure at all as once my function is generated I have 50 I/O port, which is a lot.

    The main problems i'm dealing with are the following :

    - I have no idea in the Megafunction to which ports I have to connect the signals I want to send and receive from one FPGA to another ...

    - And also how do I make the Megafunction recognize the Ethernet ports I want to use ? As on my master I have 13 and 2 on my slave ?

    - Do I need to do a structural file of my design ?

    Thanks for the help,

    Cordially.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Hi Dave,

    That seems like part of the document in TSE.... :p

    Also the diagram... I believe based on the pin connection it was using the RGMII and the external phy.

    There are quite a number of ways to go about this. Part of it, I would suggest that you refer to the alterawiki.com and look for TSE example. The other part is to download the devkit that was tie to the example. Then you can reference the pins used on the board for the TSE.

    Try this --> http://www.alterawiki.com/wiki/single-port_triple-speed_ethernet_and_on-board_phy_chip_reference_design
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Thank you for the link "FPGA_S_K " !

    I will have a look at those examples, hoping it will help.