Getting Started
Pick the path that matches your background. Every path loops back to the others — you don’t have to commit to one.
I want to build with discrete logic
For the 74-series, PAL/GAL, and breadboard crowd — no FPGA required.
- Read the Architecture page to learn the common bus signals, timing, and memory map.
- Pick a CPU family you want to build around. The classics — 6502, Z80, 6809, 68000, 8088 — all map cleanly onto the bus.
- Prototype on a breadboard or perfboard. Start with CPU, RAM, and a simple output (LEDs or UART) before adding cards.
- Design your first card — address decoder, UART, or a simple peripheral. Plain 74-logic or a PAL/GAL for decode works fine.
- Share schematics, BOMs, and timing notes back to the community so others can build compatible cards.
I want to build with an FPGA
For builders who want to pack a lot onto one board with open-source tools.
- Install the open-source FPGA toolchain: Yosys, nextpnr, and OpenFPGALoader. Start at yosyshq.net.
- Get an affordable starter board. Suggested: Colorlight i5 (ECP5) or an ICE40-based board. See the Projects page.
- Read the Architecture page so your soft-core or peripheral can talk the common bus.
- Clone the reference implementation at github.com/benpayne/learn-fpga and synthesize a known-good config.
- Start modifying: drop in your own CPU, add a peripheral card, share the bitstream and RTL back to the community.
I want to write software
For C/C++ developers new to embedded or bare-metal work.
- Install the GCC retro back-end for your target CPU family (6502, Z80, 68k, 8086, or RISC-V). GCC and its ports cover most of the classic ISAs.
- Read Portable Drivers with GCC to understand how one driver can target many systems that speak the common bus.
- Pick a reference build (or your own) and get a “hello world” running over UART. This is the loop you’ll iterate in.
- Write a driver for a peripheral card you care about. Contribute it back so every system that has that card gets it for free.
- Port a retro app: try recompiling a FreeDOS or EmuTOS utility for your system.
Every Path Leads Home
All three audiences benefit from the same shared work. A card designed with plain 74-logic and a card synthesized into an FPGA can look identical to the software above them. A driver written for one system works on every other system that speaks the bus. Blog posts written for beginners save experts time. Pick a starting point, follow your thread, and when you look up you’ll find you’ve been building on everyone else’s work — and they’re building on yours.