Hello Everyone,

I’m currently working on a new hardware design based on an FPGA. My project require an Ethernet communication and at this point I’m lost regarding the choice of the FPGA. I’m hesitating between a classical FPGA or an FPGA with an integrated SOC. Could you please help me?
I have several questions:

  • What is the advantages and the disadvantages of FPGA/SOC ?
  • What is the time of synthesis / compilation?
  • Can we just use the FPGA or the SOC independently of each other?
  • What is the difficulty to use FPGA/SOC?
  • An ethernet Ip in a classical FPGA is it enough or I really need an FPGA/SOC ?

I’m waiting your feedback. Thank a lot.

choosing between a classical FPGA and an FPGA/SOC depends on your specific requirements and constraints. An FPGA/SOC can offer more processing power and flexibility, but may also require more resources and be more complex to design. An Ethernet IP can be implemented in both types of FPGAs, but an FPGA/SOC may offer better performance and efficiency.

I can understand that for some reason you are going to make an FPGA based solution. Otherwise, I would have simply suggested a Raspberry Pi for ethernet commmunication.

Hello, FPGA vs FPGA/SOC device has an infinite amount of advantages and disadvantages, pending your end solution. Therefore I will attempt and state the obvious.

A pure FPGA has no on board NV memory, meaning all configs must be stored off chip; however, as eluded to by “bid” it also offers huge advantages when it comes to flexibility and scalability/longevity of design. One can always go back and update your config/FW as needed to accommodate changes. This could be anything from a simple state machine to your own unique MCU/MPU. Which by the way also aides in security. An FPGA/SoC device, though also offering some FPGA fabric would also have a pre-built processor/MCU such as an ARM core. A great example of an ARM core FPGA/SoC would be AMD Zynq product such as part number: XC7Z020-2CLG484I this comes with an ARM Cortex-A9, already licensed along with FPGA fabric; obviously the FPGA fabric density is a bit limited due to also housing a ARM core as well; however, it gives you the best of both worlds, while not taking up as much development time for running your MCU/MPU, yet still offering some flexibility with the FPGA fabric.

As far as Time of Synthesis, that will vary greatly on your final complexity and end design needs, however, one could say that if your end goal is to have a pre-built processer core, obviously you have already saved many hours in design by having a pre-built core. Again this will come down to your needs of time savings vs flexibility of processor needs.

Yes you can use the FPGA fabric independantly of the pre-built SoC, but then why bother with the extra expense for a FPGA/SoC and just go with a pure FPGA at that poing?

The difficulty using FPGA with SoC, well really depends on many variables; how familiar are you with a specific design envirionment, and if willing to purchase a specific suppliers IDE license/IP etc. For example, if using AMD, and you purchase the most current ViTis/Vivado license, it will come with many easy to use tools, to make it very easy to meet timing and such by assisting in routing etc. However, if attempting to use some open source environment, it may not be fully optimized, nor will it offer a full library.

ethernet IP, may or may not be needed, really this will depend on if you are attempting a more single chip solution or not. for example it is easy enough to add a single chip just for Ethernet MAC, or USB etc. but yes you can certainly use pre-built IP, however, normally this would be a sold separately license. Whether or not you impliment your PHY on chip or not, does not matter if it is a pure FPGA or FPGA with SoC, this is a bit moot, being it will just depend how much density is really needed in your end design. For example if you use up all your LUTS, you may or may not have enough to also implement/ instantiate an ethernet MAC as well; but this depends on what device you decide to go with.

In summary, without knowing all variables of design requirements, it is difficult to say what device/chip will best suit your needs. A pure FPGA is very flexible, but if needing a co-processor or prebuilt MPU/CPU on same device, it will indeed save you time by selecting and FPGA/SoC device over a pure FPGA.


1 Like

Hello, as a followup, if your intentions are to keep your costs low, you could purchase the Xyloni board, which comes with a full Efinity IDE license, and would allow you to implement/instantiate a simple RISC-V core SoC (32bit). Xyloni is here if interested: Xyloni® Development Kit - Efinix | DigiKey

GitHub has the Risc-V downloads by the way, so all open source.