[Milkymist-devel] Soft Processors on FPGA hardware

Sébastien Bourdeauducq sebastien.bourdeauducq at lekernel.net
Sat Aug 8 02:07:49 PDT 2009


Hi,

On Friday 07 August 2009 15.16.38 Simone Mannori wrote:
> I would like to share with you some "revelations" about the subject......
>
> I started to use FPGA in 1992 using Xilinx 2000 and 3000 (top of the
> tech at the time)
> as I/0 devices for TI DSPs (TMS320C25).
>
> I continued to use them as alternatives to boards full of TTL devices.
> FPGA are great:
> in a so small space all the logic gates, counters, adders, FF,
> everything that you need ..
>
> From 2000 I tried at several reprises to use them to build a full
> processor, but my knowledge
> was too limited.
>
> Now, many soft processors are available as GPL code and they are
> supported by GCC as
> cross compiler. Some models are capable to run a full Linux too.
>
> But FPGAs are not yet "main stream" ... why ?
>
> The reason is very simple: if you try to use the same production line
> (same silicon, same nanometers)
> to build (a) dedicated devices (e. microprocessors) and (b) FPGA, the
> same processor architecture
> realized on the FPGA will be 4 to 10 times slower and less efficient
> (more silicon area for the same features)
> that the (a) dedicated solutions.

Yes. I will also add that for the softcore CPUs, some of them implement 
efficiently in FPGAs (Mico32, AEMB, Microblaze) and some others don't (LEON3, 
OpenSparc) - while they perform well in ASICs.

Another reason for using FPGAs is that when you make processors and other SoC 
components, you are likely to be sued for patent infringement by questionable 
companies such as ARM or IBM [1]; and when you are not engraving silicon you 
can claim that the FPGA bitstream is software and therefore not patentable (in 
Europe). I am not a lawyer, but this looks like an interesting option.

> In conclusion, if you try to use FPGA for HPC (high performance
> computing) applications you are doomed.
>
> If you try to use an FPGA to implement a commercial architecture (e.
> ARM) you are doomed.
>
> But ... not all the games are over: the embedded application space is
> abundant of cases where a soft processor
> on an FPGA will be a winning card. In your case, the video processing
> require very fast, intrinsically parallel
> computing in hard real time (20ms or better).

If I did not use an FPGA, I would have trouble finding a SoC that has the 
required horsepower (especially fast texture mapping) and the required 
interfacing potential (MIDI, DMX, VGA, PAL/NTSC input). OMAP [2] from Texas 
Instruments (the central component of the self-proclaimed-open-source "Beagle 
Board" [3]) looks like a good candidate. But whatever the Beagle Board guys 
say, this chip is highly proprietary and makes its users depend on a single 
supplier. Verilog code, by contrast, works on any FPGA, can be made into an 
ASIC, and exposes the functionality of the hardware at a level low enough so 
that anyone with enough patience and tools can reproduce it on any digital 
technology without any "black box". This is what I call open source hardware.

And in small/medium volumes, the OMAPs are not that much cheaper than 
Spartan/Cyclone FPGAs, typically require an expensive high-resolution 10- or 
12-layer PCB because there is no other option than use ultra-fine-pitch high-
density BGA packages (those chips are made for use in mobile phones) and 
implementing video inputs for instance would require a couple of glue logic 
chips -that are not required with FPGAs- which also make the cost go high.

So, all things considered, the FPGA SoC definitely looks like a good option.

> I think that, if we want to exploit the maximum performances from our
> hardware (Xilinx, Altera, Lattice, ecc..) we need
> to think the architecture in function of the components that we have
> at our disposition.
>
> For instance, the parallel 18 bit multiplier could be used to
> implement a dedicated, non standard FPU. With many
> parallel multipliers we can propose a SIMD FPU (just like the SSE x86
> machine).
>
> Start with something - solid - working like Mico32 is definitely a
> good idea: intelligent people NEVER start from absolute scratch (e.g.
> Linus with Minix ;)
> ... but we need also a vision for the future evolution ....
>
> Finally, all the people in CC will be happy to reduce the active
> components on the board to a single - BIG - FPGA ;-).
>
> Regards
>
>    Simone
>
> P.S. We can move this discussion in a forum, if you like ....

There is the milkymist-devel mailing list at http://lists.milkymist.org, to 
which I'm sending this message.

Regards,
Sébastien

[1] http://www.piratpartiet.se/referenser/patently_absurd
[2] http://en.wikipedia.org/wiki/Texas_Instruments_OMAP
[3] http://beagleboard.org/



More information about the Devel mailing list