Build an 8-bit Computer from Scratch
In this seminar, you will learn some basics of computer architecture by doing. We will design and build an 8-bit CPU from scratch using mostly 74xx series TTL-logic chips.
More specifically, you will:
- design and implement your own instruction set, micro architecture, peripherals
- use EDA tools to create schematics (a building plan) of your machine
- build the machine using discrete logic chips on breadboards (see here for an example)
- devise techniques to test the components of your system
- write basic/simple system software (assembler, operating system, maybe a small compiler?) to bring life to your machine an run simple programs
The ultimate goal is to have a fully working machine that can run simple programs by the end of the seminar.
Maybe we want to go further and layout, order, and solder PCBs!
This seminar is for people who are passionate about building stuff and getting it to work. It will require time, dedication, and perseverance!
The number of participants is limited to 10. Building the machine is a team effort of all participants. We'll form teams of 2-3 people to design and build the individual components. All teams will work in close cooperation because all components are inter-dependent.
The whole team will have to deliver a small report at the end of the seminar on the design of the machine.
We will closely support you throughout the seminar helping you out with design decisions and build issues.
All material will be provided by us.
You will be absolutely free in the design of your machine. It has to fulfill certain requirements, though:
- At least 64KiB memory (i.e. 16-bit address bus)
- Register file
- ALU of at least 8-bit
- Interrupt controller
- Some I/O (at least a 7-segment display or maybe a VGA adapter, a PS/2 keyboard, or a serial interface with a UART controller).
- Fundamental understanding of electronics from high-school physics (Ohm's law, Kirchhoff's law, resistors, capacitors). Much of that however can also be acquired on the fly.
- Basics of boolean logic, gates, flip flops (System Architecture)
- Basics of programming (Programming 1/2)
The limited space on a few breadboards requires that the machine has a simple microarchitecture that was state-of-the art in the 70s and 80s (simple functional units driven by microcode). We also cannot build much more in the short time available.
Nevertheless you will definitely get a deeper understanding how computers work, what the trade-offs are in a hardware design. You will also better understand why more modern techniques like pipelining, out-of-order execution, superscalar execution were invented, what problems they solve, and how complex they are.
You will also understand the origins of CISC-like instruction sets like x86 and see why they made sense in their historical context and why and how we do things a bit differently today.