[Oberon] Is there MIPS on FPGA

Paul Reed paulreed at paddedcell.com
Mon May 5 10:02:29 CEST 2014


Hi Aubrey,

> I always liked the MIPS instruction set.  At this point there is a MIPS
> compiler for Oberon, a port of the V4 Oberon system, and even MIPS based
> microcontroller chips that sell for about $5.
...
> I thought a good project would be to update the V4 MIPS compiler to become
> a Component Pascal compiler, to make an evaluation board with video, and
> to
> start producing some commercial projects.
...
> It could have USB mouse & keyboard, and be a completely fine stand alone
> V4
> project.

Great idea!  But rather than an FPGA, as you say it may be better to use a
PIC32 and something like a Parallax Propeller (another nice chip) to do
simple video and I/O.

I hope you don't mind, I'd like to make some general points here.  I think
people may be under the impression that FPGAs are a quick fix to
everything :)  Like a lot of things in tech, they indeed promise
everything but the devil is of course in the detail.

FPGAs are proprietary, expensive (price and power) for a fixed solution,
and somewhat slow for soft-cores.  For example, Prof. Wirth's RISC5 runs
at 25MHz (which is of course perfectly fine for the Project Oberon
system).

FPGAs also have a huge learning curve and a dependency on breathtakingly
complex proprietary tools which themselves require a Windows or Linux
platform to run on.

A Raspberry Pi or ARM Cortex, or PIC32 is much much cheaper (in money and
power), runs much faster, is essentially open, and is ready to start
executing code immediately after you plug it in :)

As Wirth stated in his 80th birthday symposium speech, the reason he used
an FPGA is so that he could design his own processor, only then would it
be "right" :)

By this (he was smiling), I'm sure he meant (from what he has written
elsewhere) that he wouldn't have to explain any arcane details of an
architecture which would have irrelevancies for his purpose, ie so he
could keep the explanation clean.  (For example, Chris Glur has already
spotted that ARM has a seemingly bizarre opcode encoding for immediate
values).

In that educational sense, the RISC5 on Spartan 3 board is perfectly
sufficient as a reference implementation, ie to see how it all works. 
Peter de Wachter's emulator is a brilliant complement to this, and I am
very grateful for his hard work.

I'm concerned about discussions to move to other FPGA platforms because
the simplicity would almost certainly be lost, and, I think, people are
grossly underestimating the sheer effort required.

Cheers,
Paul





More information about the Oberon mailing list