
16-Bit Processor (Step 1: Approach to Bus and Modules)
I have previously built an 8-bit processor (my 8-bit) using Ben Eater's video series. Since then, I have been spending time on 6502 and 65816 system development. I think it would be a fun challenge to extend Ben's 8-bit processor to 16-bit (registers, bus). I see many nice examples of 16-bit processors that people have built. I am not sure exactly where I will end up with this project, but I need to start somewhere.
My first step is to come up with an approach for the bus and "modules." I will have plenty of breadboard-based work to do, but I would like to have a PCB for distribution of clock, address, data, and a few other miscellaneous signals. Hopefully, this will save me a bunch of effort in wiring. I will probably use the bus PCB to distribute power also, going with a four-layer board with inner VCC and GND planes (just on the bus PCB).
The following comes to mind. Dimensions are not fully dialed in yet, but this should illustrate what I am thinking.





This layout gives me room for a dozen PCB modules, and in its entirety will be approximately 19 inches (480 mm) wide by 22 inches (560 mm) high. Initial modules that come to mind:
Bus monitor
Clock, reset
Program counter, instruction counter, instruction register
Memory
Register A
Register X
Register Y
ALU
Microcode
To be determined
To be determined
Debug or to be determined
Each module is sized so that a BB830 breadboard will fit on the PCB. As I start to layout actual PCB modules, I will get a better feel for whether the sizing above will work out. If I can consolidate, I will. For example, if I can fit both A and B registers on a single module, that would be great. I can widen the overall setup, too (I do not want to go any taller, though, as it will not fit on my workbench 😂).
I expect I am overlooking many things at this stage. I would love to hear any and all suggestions.
As I wait to get some initial PCBs to help with the build, I am going to work on prototyping some concepts in an FGPA. I have an 8-bit processor running in VHDL. I might try to extend that to 16-bit. More to come on that later.