Will Alchitry Cu V2 run the Oberon System

I am new to FPGAs, and I am interested in testing out the RISC processor in Verilog from the Project Oberon from Niklaus Wirth: https://www.projectoberon.net/.

The website contains Verilog files of the CPU, and an operating system and a compiler. I can run the operating system in an emulator that interprets the custom CPU instructions, so that part works. Now I would be interested in running it on actual hardware. I have several questions regarding that:

  1. If I buy the Alchitry Cu V2 board, will it be able to run it, or do I need a faster FPGA? They originally got it working on Xilinx Spartan-3 XC3S200, which seems to have less LUTs than the ICE40HX8K-CB132 on the Alchitry Cu V2 board, but perhaps there are other considerations like memory on the chip.

  2. Is the open source tooling to compile Verilog to the Cu board robust enough to compile the Oberon Project Verilog?

  3. The first step would be to communicate over text somehow with the CPU on the FPGA. Using the Serial Interface tutorial it seems I don’t need any additional hardware for that.

  4. The Oberon System uses VGA output to display graphics. What is the recommended approach to display graphics from the board? Do you recommend figuring out how to control some LCD display directly, or is there a way to output graphics using VGA or HDMI using some extension board? Or some other approach.

  5. The Oberon System uses the PS2 receiver for keyboard and mouse. What would be the best approach to get a keyboard and a mouse connected to the board?

The steps 4. and 5. might be advanced, but I think the step 3. might not be that hard from the hardware perspective, and I know how to do the software part.

If you have any feedback or recommendations, I would appreciate it.

1 Like

Let me try to answer these.

  1. FPGAs do have speed grades but usually the difference between them is the size of the design they can implement. If it’s too small, a design simply won’t fit. The best way to check if it will is to try it. The Spartan-3 XC3S200 is quite old and comparing LUT to LUT between device families is not very useful (some LUTs are much more capable than others). Again, the only way to really know is to try it. The tools to build are free.
  2. Maybe, maybe not. They have some weird quirks (notably with bi-directional signals) but are overall pretty solid. Again, you’d have to try it to know for sure. I do find that they’re less resource efficient and often create designs that are slower.
  3. Yep.
  4. The only documented video out I have is for the Hd or the old GPU demo. The Hd would be my recommendation but requires an Au to drive (Cu can’t do TMDS).
  5. Probably just use a Br and wire up a PS2 port. PS2 uses 5V so you’d need resistor dividers to bring the two signals down to 3.3V levels.
1 Like