[Oberon] RISC5 Project Oberon on Digilent's NexysA7

Chris Burrows chris at cfbsoftware.com
Thu Dec 24 04:13:04 CET 2020

> -----Original Message-----
> From: Chris Burrows [mailto:chris at cfbsoftware.com]
> Sent: Monday, 7 December 2020 3:09 PM
> To: 'ETH Oberon and related systems'
> Subject: RE: [Oberon] Project Oberon, RISC-V Edition
> FYI you can also use the Arty A7-100 board to run the official
> Project Oberon Workstation using entirely off-the-shelf parts i.e.
> Digilent's VGA, SDCard and PS/2 PMOD boards and cables. I succeeded
> in implementing this recently using only the BRAM that is on the
> Artix-7 100T board running at a clock speed 50% higher than normal
> (i.e. 37.5 MHz). 

I have now similarly ported RISC5 Project Oberon to Digilent's Nexys A7-100T
FPGA Trainer board:


Alternative URL: https://tinyurl.com/y5zvb8p7

it has the following hardware advantages over the Arty A7-100T w.r.t the
original Project Oberon:

An onboard VGA socket
An onboard MicroSD card socket
8 Genuine green LEDs (Arty: 4 green and 2 RGB LEDs pretending to be green)
8 Switches (Arty: 4 switches)

Additionally a USB keyboard (or USB mouse if preferred) can be used instead
of one of the PS/2 connectors.

Consequently only one of the four Pmod sockets needs to be used (for the
remaining Pmod PS/2 connector). 

The board also has eight spare switches, eight 7-segment LEDs, 1 spare
button, an I2C temperature module, an SPI accelerometer, PWM audio output
and microphone so would be ideal for additional student exercises. 

However, it does not have the Arduino-compatible sockets of the Arty A7 and
I'm getting some timeout issues when uploading files via the onboard SD
card socket that I don't get with the Pmod SD card adapter.

Digilent also produce a more powerful Nexys 'Video' FPGA board. This uses
the bigger 200T variant of the Artix-7 which has three times as much BRAM so
should be able to run the standard 1 MB Project Oberon Workstation entirely
in BRAM!

Chris Burrows
CFB Software

More information about the Oberon mailing list