Video (PC register, PC increment, ROM, clock generator)
Main specs
- ALU with 16 functions
- 2x16bit GPR (General Purpose Registers)
- 64x8bit instruction ROM
- 8x12bit RAM
- 16x12bit data ROM
- 2 IPS (Instructions per second)
- 24-LED output / dip-switch input
Block diagram
Instruction set
R200 Instruction Set
Emulator
There’s simple emulator available, made in C#. It accepts assembler file as an input, does simple preprocessing and executes the program. No actual byte-code generation present.
Here's the emulator running fibonacci.R200
program at x10 speed.
Construction progress
- Blocks assembled, mounted and tested (the pic in the gallery and the video): PC register, PC increment, ROM, clock generator.
- Blocks assembled: ALU, RA register, RB register, RAM
- Blocks that need to be designed: instruction decoder
Example of programs it can run (currently on the emulator)
- Multiplication (12-bit X 12bit = 24bit)
- Division (24-bit / 24-bit = 24-bit[result] 24-bit[reminder])
- Fibonacci numbers (12-bit)
Really amazing project, I can only imagine the hard fight making all these relays work! As far as the minimalistic algorithmic ideas go, you may want to try finding successive primes and maybe have a buzz generated (and value displayed) once one is found. I wrote a "minimal" CPU in VHDL which is able to do just that (see https://opencores.org/projects/signed_unsigned_multiplier_and_divider ) and it didn't need much more than R200:
> 3 16-bit registers n, m, i (this one is just to count the number of primes found)
> 2 8-input 16-bit multiplexers to feed the data to ALU inputs
> 16-bit ALU, with 2's complement addition and substraction, and special operations to convert BCD nibbles to ASCII
> 16-input condition code multiplexer
> Microcode store (32 words by 32 bits deep) encoding the prime number finding algorithm
> Control unit - contains a 4 deep 8-bit microinstruction pointer stack and can execute goto/gosub/wait/return etc. microinstructions
I did have a dedicated divider unit, but that algorithm is already readily available on R200 and can be incorporated.