Rework complete, Fast ROM & a surprise

The rework has been completed and 6 new boards have been ordered from JLCPCB, these are;

  • Instruction Decode (with the new instructions and a greatly simplified logic that should speed things up)
  • Program Counter (removing of mod wires)
  • ALU (simplification and removal of mod wires)
  • Register board (so it’s no longer upside down)
  • Special register board (remove mod wires and improve speed for flag writes)
  • Divider (remove mod wires)

these have been ordered and are due in a week or so, when we’ll start testing them. This should then let us reach 4MIPS which will be super exciting.

Jon has been busy working on the Fast Rom board

Fast Rom Board

This is quite a busy board, but primarily consists of a 2Mbyte flash RAM chip, 3 fast RAM chips (12nS access time).
The large dial lets you select from one of 10 programs and when reset is pressed the Fast ROM board holds the PJ5 CPU in a reset state whilst it copies that portion of code (64Kword, 24bit word) into the RAM chips and then once complete releases the CPU so it can begin executing from the very fast RAM. Again, this is all discrete logic.

The next challenge is, how do you program that flash chip?
Well, you need a programmer of course, so here’s the programmer

Fast ROM programmer board

In keeping with our “no microcontrollers” rule, Jon has designed a simple pipelined CPU that handles the data coming from an FTDI USB chip. Yes you read that correctly, Jon has created a very simple and dedicated CPU from discrete logic that handles getting data from USB (via the FTDI chip) and programming the flash on the fast ROM board.
This CPU has only a few commands and needs less than 64 words (16bit) of code to handle getting data to/from USB and into the fast ROM board. This board can also be detached when you’re not using it.

I have to say even I’m impressed with this, we’d originally agreed a simple micro controller would be the way to go and was “fair” as it wasn’t part of the main CPU. But I have to say I’m wowed at this.

We still have a few things left to do;

  • Main Bus board (we’ve added a couple of extra signals, so these need to included)
  • Clock board (again, extra control signals and I’m really unhappy with the current way clocks are generated)
  • Display Board (whilst it works, it needs some modifications and we’d like to get it a bit brighter)
  • Small peripheral block, this will be the bit that lets us add joystick inputs and sound output.

Hopefully we’ll be publishing a video of the CPU running with the new boards early November 2021, so stay with us.

Edited 2021-10-21: Updated images.