This is not the first TTL CPU/Computer and not the last. I got interested in designing my own TTL-CPU after a friend showed me his Ben Eater 8Bit Computer setup. I really liked the educational part of it, even that CPU is very limited. I then looked into the Gigatron – TTL microcomputer, which is a clever RISC-like design.
Both CPU designs had not been leaned on any existing CPU architecture. Because of its nature, the Gigatron doesn't even require any micro code. It runs fast, but it also doesn't support any register display. Ben Eater's design supports binary and hex-displays, but is very limited and slow. For my own design I wanted to imitate a real CPU, allow extensive debug and display options as well as running it as fast as the original. A simple and very common CPU of the past was the MOS 6502 with its variant 6510 running in the Commodore C64. Even though I liked Zilog, the complexity of the Z80 CPU was much higher and harder to bring on a board like this.To allow for extensive register displays, I added headers where smaller boards can be plugged in for single steps. They can be removed for full speed. A special logic also allows single instruction steps, single clock phase steps. For the last mode I found it better to replace the 8-bit hex display boards for the instruction register and the micro codes with special LCD module controllers displaying text lines in addition to the codes.I tried to stick to 74xx logic chips, mainly the HCT series. But I had to do some exceptions. I really wanted to use real ALU chips (because I always wanted to do something with these) and had to settle to the 74LS181, which is still available. I also had to use 2 GALs, one for the C64-like chip select decoder for memories and IOs (part of a PAL in the C64). I had to introduce the second GAL for remapping the ALU codes because I ran out of micro code bits. Now it maps 4-bit codes plus CY to 5 ALU selection bits plus carry-in. I had to resist the temptation to replace more logic with GALs. The extreme would have been implementing the whole board into an FPGA, which was not the goal :-).
Before I even got started designing my own CPU, I spent quite some time on creating a simulation tool DigiSim to analyze both designs above and then working on this design. In addition, I had to create the MicroCodeGenerator for this design and the small boards HexDisplayController,LCD-DisplayController and ArduinoExpander. All of this came together in this project.
I made the first board revision and had to realize that I should have finished simulating all instructions and micro code conditions completely. Now I'm pretty much done with all simulations and changing the schematic. I'm working on the new layout for Rev B.
I'm also still working on the documentation of the design.
Comments