Posts

Showing posts from 2017

Incrementer Design: 1-bit Half Adder

Image
Typical isn't it?! ... you wait 10 months for a post and then two come along at once. Well, all being well, this should be the first of a short flurry of posts as I move on to the design of the incrementer.

The incrementer takes any value currently on the 16-bit address bus and adds one to it, or rather, it increments it (clue is in the name of course). Typically that value on the address bus is going to come from the program counter (in order to point it at the next instruction in memory) but it'll also be possible to bump the upcoming XY register eventually too.

One complication in the incrementer is that because the address bus can only hold one value at a time it's necessary to have a built-in 16-bit register which can hold the result of the incrementation ready to be gated back on the address bus and off into the destination register. So, for example, the PC register is selected and the incrementer register loaded with the PC value +1. Once that's done the increm…

Register Design: Program Counter

Image
It's been a while since my last post ... pretty much 10 months in fact ... and I'd love to say I've been quietly working on my relay computer in the meantime but I haven't. Designing, building and blogging about the various parts of the computer is really time consuming and unfortunately I'm just one of those people who has way too many hobbies. Anyway, after picking up some subscribers on YouTube I thought it was high time (or maybe I felt guilty enough) to focus back on the computer and get it through to the next milestone ... where it can step through a simple program stored in its memory without any human intervention (beyond entering the program itself and setting the computer running).

So where to begin? The three units that'll need building are the program counter, incrementer and memory. To recap: the memory holds the instructions that make up the program to be executed; the program counter points to the current instruction (line of program) in the memo…