EmbDev.net

Forum: FPGA, VHDL & Verilog Ported linux to fpga


von James Y. (Company: Naval Undersea Warfare Center) (newport_j)


Rate this post
useful
not useful
Has anyone ported a version f Linux to an fpga?

Respectfully,

Newport_j

von Testfall (Guest)


Rate this post
useful
not useful
A 8-bit µC and then:
http://dmitry.gr/index.php?r=05.Projects&proj=07.%20Linux%20on%208bit

The Problem is:
You will need a processor implemented on your FPGA due to the fact, that 
every operating system is a programm and not a piece of 
(VHDL-describable) Hardware.

von Sure (Guest)


Rate this post
useful
not useful
James Yunker wrote:
> Has anyone ported a version f Linux to an fpga?
>

Yes.

von experto (Guest)


Rate this post
useful
not useful
this discussion brings my to the question, if there is a chance to bring 
out a hardware in an FPGA wich has a kind of ready built operating 
system similar to linux? i mean with real parallelized architecture and 
not threads.

von 132 (Guest)


Rate this post
useful
not useful
experto wrote:
> this discussion brings my to the question, if there is a chance to bring
> out a hardware in an FPGA wich has a kind of ready built operating
> system similar to linux? i mean with real parallelized architecture and
> not threads.

Why in the name of god should anybody to this? Of course it is possible 
but seriously why?

Yes you could rewrite the whole kernel + modules + drivers + ... this 
would cost literaly millions of hours. Understanding original Linux 
sources and porting them to a parallelized architecture. But why do 
this. Most of the programms written have a more or less sequential 
natur. Most of the time you would need to emulate a sequential 
environment. Only very few programms require massive parallel 
processing. Even only very few of them have the ability (nature)to make 
use of parallel processing. For these programms there are dedicated 
solutions like CUDA where massive parallel processing can be done.

FPGAs have a special area of operation where they are useful and good. 
But Linux is definetly not within this area! It is simply the wrong. You 
wouldn't try to transport a 50 tons weight on a ferrari and you would 
never choose a truck to win a formula 1 race. It's simply the wrong 
vehicle for the purpose.

von 132 (Guest)


Rate this post
useful
not useful
* purpose = intended purpose ... sry-.

von Schreiberling (Guest)


Rate this post
useful
not useful
of corse. Anything you need is already avaliable. You dont even need a 
very big FPGA.

You need:
- a 32bit processor linux compatible softcore (e.g. ARM)
- external RAM
- some storage media like flash  SD-Card  USB-stick

The linux runs on the softcore. You dont need to port anything since 
linux for is already avaliable for several architectures - just pick a 
compatible softcore.

Example : ALTERA NIOS2 :
http://www.rocketboards.org/foswiki/Documentation/NiosIILinuxUserManual

But dont expect high speed, sofcores will run around 100-200MHz max.
If you need more performance, choose a FPGA with embedded processor.

von Max (Guest)


Rate this post
useful
not useful
Xilinx has high-end fpgas with an integrated arm-core. You can use the 
arm to run Linux (in fact some of the demoboards come preloaded with it) 
and push configuration to fpga.
Dave Jones (eevblog) did a video on it about half a week ago.

von ChristophZ (Guest)


Rate this post
useful
not useful
experto wrote:
> this discussion brings my to the question, if there is a chance to bring
> out a hardware in an FPGA wich has a kind of ready built operating
> system similar to linux? i mean with real parallelized architecture and
> not threads.

Of course you can do processing on real parallel hardware instead of 
threads. The most simple solution is to start on thread per CPU Core 
available. This scales from small embedded devices up to supercomputers.

Other ideas and solutions also exist, one is for example a risc-like cpu 
with a extended register file. The register file itself implemented 
eight times and you have assembly instructions to switch between the 
different sets (and also instructions to implement a simple round robin 
scheduler directly in the cpu hw). This CPU was called Transputer (in 
fabrication until 1991 or so).
Some ideas of it are still alive in the microprocessors of XMOS.

As a hardware designer, in my opinion, the Propeller chip from Parallax 
is also a nice thing to look at. A small microcontroller with eight or 
so processing cores (used to have "multi threading" like you described) 
and separately a programmable hardware based scheduler (also maintaining 
access rights to the I/O pins).


But all this ideas conflict more or less with with other inventions 
modern high clockrate processors use (long pipelines, large coherent 
caches, branch prediction).


A completely different idea was the FPMA, field programmable math array, 
by mathstar. A technologie more flexible than a GPU but less low-level 
than a FPGA (The building blocks where register files, ALUs and control 
blocks instead of LUTs or Shaders).
Nice idea I thought, but the company already died.

Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
No account? Register here.