[Oberon] Inexpensive Hardware: Cost vs Objectives
jwr at robrts.net
jwr at robrts.net
Tue Feb 16 04:41:38 CET 2016
Summary Statement: The various hardware platforms supporting Oberon
were designed with different objectives in mind, and differ in what
purposes they support most effectively. Each of us must identify our
own goals and objectives, and select the hardware platform(s) which
meet our own objectives most cost-effectively. One person may favor
minimal total cost, another may favor features which facilitate study
of Project Oberon, yet another also wants to learn about hardware
interfacing or FPGAs in general, and still others desire to use it for
additional applications such as embedded control or Retrocomputing.
There is no single "right" answer which applies to everyone: our
various goals determine which particular hardware is most appropriate
for each of us, and therefore provides the "best value" for what we
wish to accomplish.
This message is intended to draw together and respond to some of the
ideas in the threads titled:
Apples vs Oranges
oberonstation vs. a [$5/]$9 computer
oberonstation questions, ps/2?
Train VS all terrain truck
hardware cost
In concluding his message at
http://lists.inf.ethz.ch/pipermail/oberon/2016/008922.html, Paul Reed
asks "Can we please talk about something else now? Thanks." Yes, we
can and will. But with apologies to Paul, I believe that there
remains some value in saying a bit more, to put the recent
interactions in better perspective. I apologize to all that my
response isn't more succinct.
A central issue in much of the recent discussion involved the cost and
complexity of various hardware configurations, and questions related
to why not use less expensive or more modern hardware? In my view, the
proper response was never stated fully: there are multiple different
goals and objectives involved, and by design each of the hardware
platforms satisfies those goals differently, at differing
price-points. Each of the hardware platforms was intentionally
designed to satisfy particular goals, and does not satisfy other goals
(such as very low cost, or use of the most modern and flexible
keyboard or mouse or SD-card formats) quite as well. So each of us
must take our own goals and objectives into account, when choosing
among the various hardware options available, and evaluating which
one(s) provide the "best value" with respect to our own purposes.
When Dr. Wirth and Paul Reed ported Project Oberon to an FPGA-based
implementation, they had multiple objectives. Among these were to make
details of both the hardware and software very clear and
understandable, to keep the entire system as simple as practical, to
enable highly effective educational use of the system to teach both
software and hardware topics (at the university level), and to protect
against future obsolescence using an FPGA-based RISC5 CPU
implementation. They specifically chose NOT to use an inexpensive
existing CPU (such as ARM) because they correctly recognized that in
the near future, ANY particular CPU version they chose would become
obsolete and unavailable. They chose a particular Digilent FPGA
Starter Board using a Xilinx Spartan 3 FPGA as an appropriate platform
for their initial implementation, based on the features it offered for
what they needed to accomplish at the time.
Digilent and Xilinx designed that board not to minimize cost, but
rather to provide a wide range of capabilities to enable
experimentation with and demonstration of the full range of
capabilities of the Spartan 3 FPGA chip. It was not designed to run
Oberon: it was designed to be a very flexible FPGA development board.
It accomplished its key marketing purpose: providing a demonstration
and development environment for persons implementing FPGA designs
using that particular Spartan chip, to enable high-volume sales of
that chip. The board has since been discontinued and replaced by
development boards supporting newer and more complex Xilinx FPGAs.
When that Digilent starter board was discontinued, Project Oberon was
ported to other boards. Magnus Karlsson ported it to the Pipistrello
with an Oberon Wing, and later implemented the customized Pepino.
Both the Gadget Factory's Papilio and Saanlima's Pipistrello are
designed for beginners to learn FPGA development, and for implementing
certain types of applications including Logic analysis (ie Open Bench
Logic Sniffer) and Retrocomputing. They are designed to an appropriate
cost and feature set for those applications, not to minimize the cost
of an Oberon implementation. Additional features (particularly fast
static RAM, and PS/2 keyboard and mouse interfaces) had to be added at
additional cost to support Oberon.
Paul Reed and Victor Yurkovsky designed the OberonStation to provide a
"minimal" Spartan 3 FPGA development board which contained all
features needed to support a clean and complete port of the Project
Oberon code from the Digilent Spartan 3 Starter board. It contained
the 8 LEDs in a row, the static ram required, the keyboard and mouse
interfaces, the microSD card interface, the RF network port, etc.
which were formerly available using the Digilent board. I suspect that
they also had other goals not yet realized, involving possible use of
this hardware for Retrocomputing or other FPGA-based applications, due
to the presence of pads for an as-yet-unpopulated expansion connector.
Note here my understanding of the goals for the OberonStation: it is
NOT intended to be a minimal-cost Oberon implementation, rather, it IS
intended to be a "minimal" hardware implementation which supports all
the important features for Project Oberon, which were supported on the
discontinued Digilent board, at a lower cost than other FPGA
development boards which support more than those necessary features.
It ALSO supports more general use as an FPGA development platform for
certain types of applications such as Retrocomputing.
In the same timeframe, Chris Burrows ported AStrobe to target the
RISC5 FPGA-based CPU, in both "workstation" mode such as on the
Digilent Board or OberonStation or Pepino, and also using an
"embedded" Oberon subset which does not necessarily require keyboard,
mouse, display, nor as much memory. AStrobe already targets ARM
Cortex-M3 and ARM Cortex-M4 based embedded microcontrollers. The RISC5
port allows use of less expensive FPGA development boards, which I
will term "embedded FPGA-based microcontrollers", due to my lack of
knowledge of that market segment. So AStrobe achieves multiple goals
involving use of Oberon in applications of embedded controllers, as
well as experimentation, tinkering, and product implementation
involving interfacing hardware to embedded controllers with the
software written in Oberon.
Raspberry Pi, Orange PC, ODROID, the $9 C.H.I.P., and others are
designed as fairly general-purpose computers, with major design goals
to minimize cost to the end user, for purposes of "getting computers
into kids hands", and enabling widespread learning and tinkering with
both software and interface hardware for educational purposes.
However, the cost goals drove use of complex ASICs to implement USB,
HDMI, and other interfaces, and the goals related to hardware
education are focused on how to interface to and control external
hardware, not to fully understand the actual implementation of the
onboard hardware.
The various flavors of Native Oberon, and especially the Linux-related
ones, are very appropriate for use on existing "PC" hardware to study
and use Oberon. They do not include and fully enable study of the
FPGA-based hardware components of the Project Oberon effort, but
instead implement appropriate interfaces to "native" PC hardware. In
addition to the ETH Native Oberon family, Peter Matthias' Oberon Linux
Revival is a particularly easy-to-install version for use and study of
the Oberon system on Linux platforms. Use of a Linux-based Oberon on
Raspberry Pi, Orange PC, ODROID, C.H.I.P., or your already-purchased
PC hardware is a very inexpensive way [perhaps even free] to use and
study Oberon.
Choosing "minimal cost" hardware depends on the purposes for which it
will be used. If all you want to do is learn and use Oberon, download
one of the Native Oberon or OLR implementations for the computer you
already own. To experiment with it on a "tiny" platform, purchase your
preferred platform (Raspberry Pi, Orange PC, BeagleBone, ODROID,
C.H.I.P., etc.) and then download an appropriate Linux-based Oberon
for it. To study and grasp Project Oberon 2013 in total, which
includes the FPGA-based hardware aspects, either download and use a
software-based emulator, or purchase an OberonStation or Pepino or
Pipistrello with Oberon Shield, or another AStrobe RISC5 target (if
any) which supports "workstation" mode. To experiment with using
Oberon on embedded controllers, get an appropriate Cortex-M3,
Cortex-M4, or FPGA board supported by AStrobe, and purchase or
download the proper version of AStrobe. If you have additional
purposes (Retrocomputing, learning how to program FPGAs, porting
Project Oberon to other boards, etc.), then factor those requirements
into your choice of hardware, and the costs involved to support those
purposes.
The price of the Digilent Spartan 3 Starter board, the OberonStation,
the Pepino and Pipistrello, and most of the AStrobe-supported
development targets, is significantly higher than that of the C.H.I.P.
or the Raspberry Pi Zero. But the full scope of what they enable is
significantly different, for which many people will gladly pay more to
obtain the specific functionality and capabilities they desire.
-- John Roberts
More information about the Oberon
mailing list