Processor Register

Full AdderWith my full adder complete and working in emulation, I just need to build it on a breadboard to make sure it works in practice.

The next step would be to etch and build a prototype before outsourcing for eight of them to be made (my processor will be 8bit), I might use surface mount components to keep down costs and size.

Okay, so I can add two numbers together, but where do I get those numbers from, and where can I store the result. Now I need memory, specifically for registers.

Flip FlopFlip Flop

So how do I write and read bit states. The answer is a Flip Flop.

To read from it is easy, neither input should be set as high, and the output will be the value stored.

To write a state, first the Reset input must be set high, this sets the value stored to low, now before a new value is set, Reset must be set to low.

With reset set to low, the Set input should be set high to store a high value. One problem with however is that giving an input of low, will not store a low signal.

Flip Flop with Enable1-Bit Dynamic Memory

One way around this is to use a third input, Enable. We can AND this input with each input.

Now whenever we want to set a value, we must set the reset to high, then toggle the Enable input between high and low.

For setting a value, we set the Input to the value we want stored, and toggle the Enable input between high and low.

This will prevent accidentally setting the value stored until we are ready.

NOR GateThe NOR Gate

Now I just need to breakdown the logic gates in the flip flop into discrete components. The AND Gate I already have a circuit for, so all I need a NOR Gate.

A NOR Gate works in the reverse of an OR Gate, so I just switched the PNP for an NPN, however the voltage dropped again so I added another signal booster.

I only quickly put this circuit together and will look at reducing the amount of transistors being used for it later. For three registers, two for input and one for output, an 8-bit processor will need a total of 24 flip flops.