10
\$\begingroup\$

I have very limited experience with FPGAs (Altera - used only the visual design tools).

I am planning for a new project in which I need FPGA and I could benefit a lot from an actual linux running on the same board (mostly for TCP communication as well as some DSP).

My question is, is there a recommended FPGA that has a supported embedded linux prepared for it? no fancy drivers (just ethernet, wifi could be a plus, ...). I imagine there would be a micro controller built into the FPGA (this means it would eat up lots of the FPGA and I would need a larger FPGA).

\$\endgroup\$

5 Answers 5

16
\$\begingroup\$

A textbook 32-bit RISC processor core capable of running the no-mmu version of linux doesn't actually need to be that large - the real resource you need is far more RAM (10s of megabytes) than available in any FPGA, so you'll probably want SDRAM on the board and a controller for that in the FPGA.

That said, if you want anything more than a trivial level of performance, you probably want a core with some optimizations (pipelining, etc), and that starts to increase the size somewhat. Adding a full mmu will make memory (re-)allocation more efficient and enable the usual copy-on-write fork() behavior.

Both major FPGA vendors have soft processor cores with available linux ports - Microblaze for Xilinx, Nios II for Altera. You should probably read their docs for specific platform recommendations as it is of course a target that moves with time. A third party core design might be somewhat larger for similar performance, if it is written in a more portable way and not as specifically optimized for a given FPGA family.

Historically there have been chips available combining both a hard processor core (often powerpc) with a region of configurable FPGA fabric. Another option to look at would be a separate processor (likely ARM) on the same board as an FPGA.

A lot of the decision will depend on how tightly you need to couple the processor and FPGA. If you can reduce the problem to configuration registers and a stream of data, it could be as modular as hanging an FPGA board with a fast USB chip off the USB host port of an embedded linux board like a BeagleBoard or RasberryPi. For tighter integration, you may want the FPGA on the same board and sitting on the processor's external bus. Or for low data rates, it's trivial to put an SPI register interface in an FPGA, and UART interfaces are entirely do-able though a bit trickier.

Finally, there is the question if you actually need a full operating system such as linux, or if a more "micro-controller sized" embedded TCP stack would solve your problem while requiring less memory.

\$\endgroup\$
6
\$\begingroup\$

Xilinx's Microblaze runs Linux just fine, assuming it's fast enough for your purposes - it'll only do some high 10s of MIPS in cheaper devices, 100-200 MIPS in the expensive families.

Xilinx have a git repo, or there are a few Xilinx specific distributions. FPGA flexibility can be a bit of a pain as well as a boon, as your memory map and IRQ mappings, or even what perpiherals are available can change during the project development.

Petalinux has scripts to manage this sort of thing and update the bits of the kernel config that matter based on your latest and greatest system design.

\$\endgroup\$
4
\$\begingroup\$

Xilinx's Virtex line has FPGA versions with hard-core PowerPCs. It is fairly easy to get Linux running on the PowerPC, my students have done it for many senior design projects. They still have plenty of configurable fabric for your hardware design to fill.

The Virtex2 Pro evaluation board was very common in educational and academic research projects. As Xilinx has dropped support for this version chip in their recent tools, you can pick one up fairly cheaply. I believe that it was supported up to the 9.x version or so. Hmm. That's several years ago, so maybe I'm being a bit nostalgic. At any rate, I'm still passing these boards out to interested students to let them do just about anything they want with them.

\$\endgroup\$
2
  • 1
    \$\begingroup\$ If I am not much mistaken they are called Virtex xilinx.com/onlinestore/v2pro_boards.htm \$\endgroup\$
    – Ali
    Jan 5, 2012 at 3:12
  • 1
    \$\begingroup\$ @Ali - I don't think you're mistaken, and you've got a pretty reliable reference for your assertion. Please feel free to propose an edit in situations like this! \$\endgroup\$ Jan 5, 2012 at 17:25
3
\$\begingroup\$

Actel's SmartFusion integrates an FPGA with a hard-IP ARM Cortex-M3 core and an advanced analog engine in a single chip device.

uClinux runs quite well on the Cortex-M3 core of SmartFusion. Check this site for further details.

\$\endgroup\$
2
\$\begingroup\$

Depending on your timeframe, you might also look into Xilinx's new Zynq-7000 line, which combine an ARM processor with an Artix-7 or Kintex-7. Xilinx claims they'll be shipping production quantities in the second half of 2012.

Other vendors may have similar products. I don't know if or when Xilinx will bring Zynq support to the free ISE WebPack; right now, they claim you need ISE Embedded Edition.

\$\endgroup\$
1
  • \$\begingroup\$ Why did you make this answer community wiki? That was probably unnecessary. \$\endgroup\$ Jan 5, 2012 at 19:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.