Web Resources Relevant to FPGA Oberon System.
On this page I will focus on boards and resources related to the FPGA Oberon System On Chip, as well as the Risk boards. Only occasionally I will touch upon other Oberon implementations running under the consumer grade operating systems.
Books and Articles.
- Books by Professor Pong P. Chu provide unique and highly useful examples that every FPGA programmer should study in depth.
- Pong P. Chu, FPGA Prototyping by VHDL Examples 2nd edition is a significant enhancement of the FPGA Prototyping book (Spartan-3 Version) by the same author.
- Pong P. Chu, FPGA Prototyping by SystemVerilog Examples is a significant enhancement of the FPGA Prototyping by Verilog Examples: Xilinx Spartan-3 Version by the same author.
- Pong P. Chu, Embedded SoPC Design with Nios II Processor and Verilog Examples is not immediately relevant to Wirth RISC5, but it is full of very useful information. For example, chapter 18 provides a thorough discussion of the RAM-based VGA firmware with 8-bit color, as well as the software for processing BMP format, written in C (section 18.9). It can be easily converted to Oberon. Chapter 20 provides information on accessing the SD card (page 608) and on FAT16 on that card (page 619). The VHDL version of the same book is also available.
- Professor Chu uses MicroBlaze and C/C++ in his tutorials. You can get some flavor of this approach from visiting the Digilent step-by-step Vivado Pmod IP tutorial for Vivado 2015.4. A newer version of the same page for Vivado 2018.2 is also available. Both tutorials will help better understand the difficulty of using the automated Xilinx development toolchain. Basically, there is nothing there that you can understand. You need to follow the clicking cookbook. If it works, great. If it does not (due to recent upgrading of some package, for example), then good luck.
- Niklaus Wirth and Jürg Gutknecht, Project Oberon: The Design of an Operating System, a Compiler, and a Computer (2013 Edition) discusses both the Verilog source code of the Oberon System On Chip (SOC), and the code of the entire Oberon operating system, including run time, graphics, text editor, and compiler.
- Niklaus Wirth published a concise article Oberon System Implemented on a Low-Cost FPGA Board (Issue 91, page 30, Second Quarter 2015, Xilinx's Xcell Journal). The article is describing the 2013 FPGA Oberon System implementation on a RISC5 soft core running in the Digilent Spartan-3 Starter Kit.
- Niklaus Wirth published a review article 50 Years of Pascal in Communications of the ACM, March 2021, Vol. 64 No. 3, Pages 39-41. The article is describing the history of Pascal, which culminated in the development of the Oberon programming language and Oberon operating system published in 2013.
- Niklaus Wirth personal website provides many articles on FPGA programming, Oberon language, compiler construction, and software engineering in general. Books (Project Oberon, Compiler Construction, Programming in Oberon, and classic Algorithms and Data Structures) can be downloaded from the same website, under the heading "Books".
- The book The Oberon System: User Guide and Programmer's Manual, 1991 is available from the Oberon Core library (see below). This book is amazingly complete. It still applies to the 2103 Oberon System despite some minor inconsistencies with the new OS. The last chapter on the overlapping note design is particularly interesting.
- A very comprehensive archive of books and articles is maintained by Oberon Core. You do not need to read Russian to use the website, though basic ability to read Russian will help.
- Dick Pountain published a short introduction to Oberon System and another article on Oberon language in BYTE magazine. The articles are available from his Google pages. Right-clik on the links and open them in a separate browser window because they may not display in this embedded frame.
- Operating-systems-2018/notes
provides books and articles on operating system architecture. (Right-click and use a separate window to open this link.) The classic paper by Wirth Tasks vs Threads can be downloaded from this web page.
- Oberon System 3 (later renamed ETH Oberon System) is described in a ETH Oberon White Paper available from web archives after the ETH file server was taken offline.
- Kronos Research Group (Novosibirsk, Russia) published a comprehensive website describing their Kronos processors supporting Pascal/Modula/Oberon family of languages.
- Oberon family of computing systems with a focus on technicalities is described in a Oberon Wikibook maintained by peter@easthope.ca.
FPGA Boards Which Can Run the FPGA Oberon System.
Obviously, the Risk boards were designed to run the FPGA Oberon System. But there are other boards which can do the same. Choosing the board is a tricky matter. You should consider the amount of RAM (more is better, but one megabyte may be enough), its type (ASRAM, ZBT, or DRAM), whether or not you have a memory controller (not trivial for DRAM, but ZBT can also be tricky), and the kind of networking which you may need. The cost of the board should be the last on the list, unless you are planning to resell many of those.
- The original FPGA Oberon System was developed with the Digilent Spartan-3 Starter Kit, which unfortunately has been retired. The Digilent website is still a good source of reference materials for this board. The board itself can be still found on Ebay. The FPGA Prototyping book (Spartan-3 Version) by Pong. P. Chu is using this board for its firmware examples.
- Pepino is an entry-level open hardware FPGA development board based on Xilinx Spartan-6 FPGA. It can be assembled with either LX9 or LX25 chips, and either 1 MB or 2 MB of asynchronous RAM. RAM-wise it is close to the Spartan-3 Starter Kit. It can run the original 2013 FPGA Oberon System which did not provide the memory cache, which is not needed with static RAM. Pepino can run Oberon System as well as CP/M on the Z80 processor core, many games, and MacIntosh Plus. Pepino is now open source (as of June/2020).
- Pipistrello is an entry-level, open hardware FPGA development board also based on Xilinx Spartan-6 FPGA. Unlike Pepino, which provides static asynchronous RAM, Pipistrello provides 64 MB of LPDDR. For a long time it was not possible to use DRAM under FPGA Oberon, because the processor needs a cache to utilize DRAM. This has been fixed by Magnus and Joerg and posted to the mailing list on May 27, 2020. It is now possible to run the Oberon System with that much memory on Pipistrello. Note that static RAM can be added to Pipistrello on the expansion daughter card. So you can now run both versions of the FPGA Oberon System on Pipistrello, with or without the static RAM.
Oberon System running on Pipistrello is shown here, but it is an old 2015 version running off SRAM. The most recent LPDDR version is available from Github.
- ULX3 is an crowd funded, open source board built around Lattice ECP5 series FPGA chip supported by the latest open-source toolchains. It provides 32MB SDRAM clocked at 166 MHz. The FPGA Oberon System has been ported to this board, even though it has not been linked on the ULX3 page. The details were posted to the mailing list.
- The Oberon System for the Terasic's Altera DE2-115 Development and Education Board is being worked on by Hellwig Geisse. His old and now defunct GitLab GitLab THM-Oberon is a clone of the FPGA Oberon System running on the DE2-115 from Altera. A newer THM Oberon is hosted on GitHub. This one runs on either Wirth's RISC5, or ECO32 from Giessen University of Applied Sciences (Technische Hochschule Mittelhessen). You will probably need to ask Helmut the details (e-mail Hellwig Geisse < hellwig.geisse _at_ mni.thm.de >).
- OberonStation used to be another such Oberon-capable FPGA development board. Unfortunately, the OberonStation web domain has been discontinued as of July/2018. The availability of this board is thus unclear. It was a Spartan-3 board anyway, so maybe there is not much to miss. The discussion linked above is quite interesting. It refers to Oberon history and provides many interesting web pointers to follow.
Software Resources.
- The original 2013 FPGA Oberon System provides a full software development system: compiler, loader, run time, as well as example applications. The software was written in Oberon-07.
- A version of the original System was modified to run on the Pepino board.
- The Extended Oberon System is a significant enhancement of the original version. (Right-click and use a separate window to open this link.) It also provides a full software development system, closely following the original. Due to many enhancements, this version is not backward compatible with the original. This version implements the Revised Oberon-2, which is a superset of Oberon-07.
Caveat: Andreas distributes his own SD card image, which you can download from his github site. I presume his disk image is reflecting his new developments described in the EOS_news. If this is the first time you are installing the Extended Oberon, it will be prudent to compare the content of the SD image against the EOS news. Later down the road you only need to overwrite those files which have been mentioned in the EOS news. Do not rely on the file creation dates because Andreas always overwrites ALL his files.
- A Module Reference lists all the module dependencies on one another. The modules are provided with a color-coded syntax which makes it significantly easier to read the source code. Cursor highliting is used to trace the variables in the source. All the language elements (procedures, constants, etc.) are cross-referenced on this page among the modules.
- GitHub repository by Tomas Kral provides a collection of Oberon System developments for the 2013 FPGA Oberon System. A net server for FPGA Oberon 2013 workstations is particularly interesting. It runs on RPi 4 over the mesh of nRF24L01 wireless modules. It can be particularly useful for student projects or for development of local area small DAQ systems. Other developments include 4-bit color modules enhancing the original B/W system.
- Astrobe for RISC5 is a free Windows IDE which enables you to program embedded software using the Oberon-2 language. The applications execute on an embedded real-time subset of the Project Oberon Operating System running on a Xilinx FPGA development board.
Reference websites and designs.
- Modula & Oberon Wirthians Community is the Facebook page where human beings of Wirthian descent (not to be confused with those of Ape's descent) publish their newest projects and achievements. It is definitely the place worth watching and subscribing to.
- Oberon V4 for Linux and sources for different Oberon V4 implementations, by Bernhard Treutwein and Friends. This may be your best shot to run the V4 under X-Windows on Linux.
- Oberon RTS, subtitled Embedded Oberon for Real-time Systems. It is an impressive collection of information assembled by Gray Raven. This work is in progress. There are many original concepts on the website. The code repository is available on github. Worth studying in detail.
- Integrated Oberon by Charles Perkins departs from Wirth's Project Oberon by introducing features and capabilities to Oberon, taken from other systems. This work is in progress, whose starting point was Extended Oberon System mentioned earlier. There are many original concepts on the website. Worth studying in detail.
- Why Hardware and System Simulation is a Game-Changer in Embedded Development has nothing to do with Oberon. It is a commercial infotainment article by Wind River.(You will need to sign up to receive this article.) It is interesting in the context of Oberon emulators, which IMHO have much greater value than the Oberon community is realizing. The Wind River article can perhaps provide some motivation to the Oberon emulator developers to continue their magnificent work.
- Component Pascal Collection is a very comprehensive website of the high quality software written in Component Pascal, a descendant of Oberon-2. I particularly recommend a comprehensive mathematical library developed by Robert Campbell under an unassuming name Chill. In this library you will find virually everything you need for algebra and digital signal processing with impressive graphical displays. I also recommend my own waveform graphics named Gr, and Persistent Object Manager POM. This website is a "must read" for any Oberon developer.
- Catalog of resources related with Oberon programming language provides information and web pointers to projects related to programming languages Oberon, Oberon-2, Active Oberon, Modula-2/3, Oberon-07 and Component Pascal (which can be named "Blackbox Oberon"). This website is a "must visit" for any Oberon developer.
- Summary of Oberon System implementations provides screenshots and installation instructions of graphically rich versions of the Oberon System. I recommend visiting this website to see many amazing applications developed under the System 3 branch of Oberon System.
Misc Resources.
- FPGA Oberon software was written in Oberon-07, using a highly professional coding style which... how to say it gently... could benefit from some beautification. Oberon-2 Beautifier can be downloaded from Linz University, a former home of Oberon System V4, 3rd line under Tools. Note: The beautifier should have been included with Linz V4 distribution, but I do not see it among the tools in my V4 installation. Perhaps it needs be downloaded separately.
- FPGA Oberon firmware is written in Verilog, using a highly professional coding style which could also benefit from beautification. Verilog can be beautified with a commercial SlickEdit 15-day trial. Note: I have not used it yet.
- FPGA Oberon System firmware was written in Verilog, but application firmware could be written in VHDL. The VHDL Beautifier & Formatter can beautify and format your VHDL code online. Note: I have not used it yet.
- A list of free formatters and beautifiers was compiled in 2017. Note: I have not used them yet.
Academic coursework.
- FPGA Oberon System is used at ETH Zurich for the System Construction most recently taught by Felix Friedrich with Paul Reed. Some coding examples and the course synopsis can be downloaded from the same website. The collection of slides and course assignments is available from the download repository.
Wiki Book on Oberon.
Oberon family of computing systems with a focus on technicalities is described in a Oberon Wikibook maintained by peter@easthope.ca.
Mailing list.
Oberon mailing list is very lively and well informed. Any serious Oberon developer is strongly encouraged to join the list.
Contact us for more info
Updated Sept/09/2023.
© 2020-2023 by SkuTek.com.