Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
16587 Discussions

How to program an Ethernet switch in HLS (C/C++)?


I am new in FPGA and got the task to develop an Ethernet switch in HLS and I don't know how to do it. Is there any example code?

Here are the requirements for the implementation:

- 1Gbit/s at 62.5MHz is 1-2 clocks per 32bit word.
- External interfaces 3 x Axistream RX and 3 x Axistream TX
- Axistream Word consists of 32bit + 4bit keep + 1bit last
- The frames contain no preamble and no frame check sum only Ethernet headers with payload.
- The routing or switching decision should be completely static (no learning).
- The interfaces should be assigned a static MAC address manually.
- Packets with the corresponding destination address are forwarded to the corresponding interface.
- Furthermore, it should be possible to set an interface as default. All packets with unknown MAC addresses are sent to this interface.


How should the top-level function look like?


0 Kudos
2 Replies

Hi @DDJ,


Thank you for posting in Intel community forum, hope this message find you well and apologies for the delayed in response.
Unfortunately we do not have specific ethernet example for HLS, for example that work best with HLS can be found in the following path '<quartus_installdir>/hls/examples/<design_example_name>' after installation.
As for the mention design, may I know what are the targeted device? For ethernet example for FPGA, more can be found here.
Please let us know if that helps.


Best Wishes

0 Kudos

Hi @DDJ,


Greetings, unfortunately as we do not receive any further clarification on what is provided. Hence thread will now be transitioned to community support where community users will further help you with doubts in this thread. For new queries, please feel free to open a new thread and we will be right with you. Pleasure having you here.


Best Wishes

0 Kudos