
Oberon System Implemented on a Low-Cost FPGA Board (2015) [pdf] - tosh
https://pdfs.semanticscholar.org/2c11/7c1456eb96bbea19aa3c8b018de4fc9387bc.pdf
======
eeks
Niklaus Wirth is one of those unsung geniuses of computer science. He invented
Pascal, the Modulas, Oberon ...

Then he woke up one morning wanting to reboot his life's work for his class
and, undeterred by the fact the original targeted processor did not exist
anymore, settled to write his own computer architecture on a Xilinx Spartan.

He then successfully ported the Oberon system and compiler to this
architecture to demonstrate to his students.

Just wow.

~~~
prestonbriggs
Unsung? He won a Turing award.

~~~
romwell
Yeah, but most people don't know him for much more than Pascal.

I am aware of Oberon and Modula, but had never got a chance to touch them. And
that's much more of his work than Pascal.

------
lstodd
Oberon is interesting, as is Blackbox/Component Pascal
([http://blackboxframework.org/](http://blackboxframework.org/))

But it's so niche and windows-centered as to be almost useless. And the
community is microscopic.

~~~
lproven
As for the OS, I assembled some links here:

[https://liam-on-linux.livejournal.com/46523.html](https://liam-on-
linux.livejournal.com/46523.html)

This is a good overview:

[http://ignorethecode.net/blog/2009/04/22/oberon/](http://ignorethecode.net/blog/2009/04/22/oberon/)

Oberon, a tiny text-oriented OS, evolved into A2, a graphical OS with a
zooming UI called Bluebottle. There's some info about A2/Bluebottle here:

[http://sage.com.ua/en.shtml?e1l0](http://sage.com.ua/en.shtml?e1l0)

Here is the OS on GitHub:

[https://github.com/btreut/a2](https://github.com/btreut/a2)

There are bare-metal versions for x86 -- I am running it on a Thinkpad X200 as
well as under VirtualBox -- and also versions that run hosted on Windows,
32-bit and 64-bit Linux and Mac OS X.

~~~
pjmlp
My website has a long article with A2 running and screenshots for all
delivered apps.

Also wort mentioning that Active Oberon has the language features that Oberon
lacked for manual memory management in unsafe code and co-routines in the form
of active objects, hence its name.

Paco (Active Oberon's compiler) is probably one of the first compilers with
parallel phases.

------
carapace
FWIW there's also a Python emulator for the Wirth RISC. _It 's slow._ It's
written to be easy to inspect and trace in a debugger so it does a lot of
extra work to "spell out" events in the chip logic. (But if you want speed
there's the C emulator, or FPGA!) In any case, the Python emulator will load
the disk image and, if you have Pygame installed, it will open a screen window
and paint the Oberon Desktop, etc... (It paints it so slowly that you can see
the characters fill in as they are drawn!)

[https://github.com/PhoenixBureau/PythonOberon](https://github.com/PhoenixBureau/PythonOberon)

------
Koshkin
The missing link:
[http://www.projectoberon.com/](http://www.projectoberon.com/)

~~~
rjsw
There is a clickable link to the project website in the linked PDF.

------
bogomipz
The author states:

>"It is indeed a healthy design paradigm to stick to synchronous circuits in
general, if possible. Then, quite obviously, all elements of a circuit operate
concurrently, literally at the same time. Every variable and register is
defined by one and only one expression combinational circuit). Multiple
assignments do not make sense."

I am not quite grokking this and hope someone can explain this to me.

He starts by extolling the merits of sequential logic circuits but then goes
on to say that every variable and register need only be a combinatorial
circuits. Since these are the two fundamental circuit types, does this point
not contradict the earlier one? What am I missing?

~~~
gmfawcett
He said "synchronous" (synchronized by a clock), not "sequential."

~~~
bogomipz
"Synchronous" is a type of sequential circuit. The "synchrony" or sequencing
is derived from the clock signal.

[https://en.wikipedia.org/wiki/Sequential_logic](https://en.wikipedia.org/wiki/Sequential_logic)

~~~
gmfawcett
Yes, you're right of course.

Looking at it again, I'm reading Wirth's statement as pretty much a bog-
standard endorsement of synchronous circuit design.

~~~
bogomipz
Yeah it's the "Every variable and register is defined by one and only one
expression combinational circuit)" part that confuses me, since he seems to
use that to support the endorsement of synchronous design. But maybe I'm just
reading it wrong though.

~~~
analognoise
There are two parts to a synchronous design - the combinatorial bits, and the
flip-flops.

    
    
      /----\    |-----|
     /      \   |    Q|
     | COMB |---|D    |
     \      /   |>CLK |
      \----/    |-----|
    

I think what he's getting at is that any combinational logic that goes in a
register is defined in one place - he's not doing complex statements.

It sounds like he's doing a very (terse) RTL style. This makes it very clear
what your synthesizer will do with it - he isn't trying to be clever on the
RTL front.

We should email him and ask!

~~~
bogomipz
Thanks for channeling your "inner Wirth" :)

Also thanks for the ascii diagram.

In re-reading that passage this all makes good sense now.

Cheers.

------
stephenmm
He calls it RISC5, one might assume but does anyone know if it is using the
RISC-V ISA?

~~~
patrickg_zill
Pretty sure that there is no relationship. The instruction set is 20
instructions total.

~~~
analognoise
Correct, there is zero relationship.

This is not RISCV.

------
robobro
Any fans of inferno / plan9 here?

~~~
pjmlp
Inferno and Limbo.

I don't share the joy of others for Plan 9, because for me Inferno is the
actual end of the road, Plan 9's architecture with a sane userspace.

~~~
Crontab
Interesting. I have never tried Inferno. Are you running it bare metal? What
do you use it for?

~~~
pjmlp
I just devoured all the available documentation related to it.

[http://doc.cat-v.org/inferno/](http://doc.cat-v.org/inferno/)

[http://www.vitanuova.com/inferno/](http://www.vitanuova.com/inferno/)

Papers and books read cover to cover during business travels.

------
morsma
This is really impressive! I'm gonna look more into it after work.

