Close

Bus design

A project log for One-instruction TTL Computer

A breadboard-able computer which uses only a single instruction - MOVE

justin-davisJustin Davis 04/19/2017 at 13:300 Comments

The address/data bus will be the focus of the computer. I will need two address buses - one for the source address and one for the destination address. And I will need one data bus. I figure for now I will keep it simple and have them all be 8-bit buses. This means my instruction memory will be 16-bits wide since each instruction will include both the source and destination addresses.

One reason is that I will need a way to put constants from the program into the data bus. I don't want to create a second instruction which writes a constant into a register because that breaks my #1 goal. So instead I'll need a special function register. In a normal register, when the destination address targets it, it captures data from the data bus and stores it. In this special function register, when the destination address targets it, it captures the value of the source address bus instead.

One thing to consider is how the source address bus works. Since I'm not really using the source address bus as an address and instead as a data word, it could mess up whatever the source address is pointing at. For example, if my data word is 9 and that memory location is a FIFO, a read of that register may pop off the word at the top of that FIFO. I'm not sure how exactly to handle this just yet, but I think I can. I could do a two-step command like disabling the source bus address or something in the first step. I could reverse the command so that the source is actually the destination and put the data word into the destination address. Of course, that just reverses my problem. I'll think on it.

Discussions