Posts

Showing posts from January, 2015

Sequencer Design: 8-cycle FSM

Image
So far I've got the design complete for the instruction register along with the initial design for the decoder and so I'm well on the way to having the computer perform MOV-8, ALU and SETAB instructions. Later I'll get on to the control card design where the computer will operate the control lines according to the 8-bit opcode stored in the instruction register. Before that though there's the sequencer card which will generate the pulses that drive the control card.

There's two halves to the sequencer card: the finite state machine (FSM) and the pulse distributor. I'll cover pulse distribution in my next post as that is driven directly by the FSM. The FSM itself is driven by the clock signal which at the moment will be generated manually using the clock switch on the front of the computer but will eventually, of course, be generated automatically by the clock card.

The FSM moves from state to state on each clock transition, that is, when the clock line goes hi…

Decoder Design: MOV-8, ALU & SETAB

Image
In my last post I introduced the design for the instruction register which holds the current 8-bit opcode that the computer is executing. The next card to design is the decoder which will take the 8-bit opcode and set either the MOV-8, ALU or SETAB control lines depending which class of instruction the opcode represents. This is actually quite straightforward and just needs a few relays to handle the logic.

Firstly though lets quickly recap the form of those three instruction classes:
MOV-8: 8-Bit Move Instruction
00dddsss
ddd = destination register (000-A, 001-B, 010-C, 011-D, 100-M1, 101-M2, 110-X, 111-Y)
sss = source register (000-A, 001-B, 010-C, 011-D, 100-M1, 101-M2, 110-X, 111-Y) ALU: ALU Instruction
1000rfff
r = destination register (0-A, 1-D)
fff = function code (000-NOP, 001-ADD, 010-INC, 011-AND, 100-OR, 101-XOR, 110-NOT, 111-SHL) SETAB: Load Immediate Instruction
01rddddd

r = destination register (0-A, 1-B)
ddddd = value (-16..15) Mapping this out as a binary tree using the hig…