Saturday, May 28, 2011

Bit Slice

A 16-bit computer has a lot of connections in it. Making up schematics of everything at once is a challenge, as will testing the finished machine be. As this is my first attempt at building a computer I will try and make things as simple as possible. I found a couple of references to bit-slice based machines in the literature. Bit-slice machines are basically a collection of 1-bit machines glued together. So if you want a 16-bit machine you build 16 1-bit machines and connect them together. I spent a couple of lunchtimes this week looking at the idea, and have come to the conclusion that it may be the way ahead for this my first computer.

The key reason is that you reduce the complexity not the functionality, also testing a 1-bit board will be easier than a 16-bit board.

So having decided on going bit-slice, I've had a first stab at putting some schematics together.

This is the Arithmetic Logic Unit (1-bit). It should be noted that this is the generic bit 1 to 14 version. Bit 0 and bit 15 versions will be slightly different due to setup and propagation of carry bits etc.
I've added shifts into the instruction set as it was a no brainer once I drew the circuit, as it is not logic but simple wiring. I've also added SET and RESET, i.e. set to zero and one, again because it was easy. The above ALU implements AND, OR, NOT, XOR, ADD, ADC, SUB, SBC, SET, RESET, SWAB (swap high and low bytes of word), LOGICAL SHIFT LEFT, LOGICAL SHIFT RIGHT, ARITHMETIC SHIFT RIGHT, ARITHMETIC SHIFT LEFT, ROLL LEFT, ROLL RIGHT.

Below is the register implementation:

No comments:

Post a Comment