Logic Systems

Research

Flip Flops

Once the designs for the basic gates were established, I started looking into more complicated logic systems such as flip flops and counters. The hard part here was to find circuits that used the least number of gates, whilst still performing correctly using DTL. I've gone for mostly NAND logic, as it uses the least components and has the best performance when implemented in DTL.

Below is an edge triggered flip flops, used for storing data:

Counters

These can then be linked together to make a counter. I decided to use a synchronous counter for the program counter. Synchronous counters use a few more gates then the simpler asynchronous counters, but they are a lot faster. The set/ reset function on each flip flop allows you to insert a number into the counter, from which it can then count from. The layout for a 2 bit counter is shown below:

The program counter is a 12 bit counter, so you can imagine how many components are going to be required just for that. Once the counter design was completed, I suddenly got a sense of the shear scale of this project. But seeing as I've just started my gap year, I shouldn't be short of time!

Registers

For this project I am trying to keep the number of registers to a minimum as they take up a lot of components. So far I plan to have 4 physical registers; a Working Register, an Address Register, an Instruction Register, and the Program Counter, which is basically a self incrementing register. These will all be constructed from flip flops, but different registers will use different types of flip flop. The program counter and the Working Register will be made from edge triggered D type flip flops, while the address register and working register will be made from the simpler clocked R-S flip flops (shown below). The edge triggered flip flops are needed because they are being read from and written to simultaneously, so the edge trigger makes sure it does not get stuck in a loop

.

From now on, the Working Register is going to be referred to as the W register, and the program counter will be shortened to P.C. The other register names may well be shortened in places, but this should be obvious enough.

Data Storage

Research