Make: FPGAs: Turning Software into Hardware with Eight Fun and Easy DIY Projects
What if you could use software to design hardware? Not just any hardware--imagine specifying the behavior of a complex parallel computer, sending it to a chip, and having it run on that chip--all without any manufacturing? With Field-Programmable Gate Arrays (FPGAs), you can design such a machine with your mouse and keyboard. When you deploy it to the FPGA, it immediately takes on the behavior that you defined. Want to create something that behaves like a display driver integrated circuit? How about a CPU with an instruction set you dreamed up? Or your very own Bitcoin miner You can do all this with FPGAs.
Because you're not writing programs--rather, you're designing a chip whose sole purpose is to do what you tell it--it's faster than anything you can do in code. With Make: FPGAs, you'll learn how to break down problems into something that can be solved on an FPGA, design the logic that will run on your FPGA, and hook up electronic components to create finished projects.
Why Read This Book
You should read this book if you want a fast, project-driven path from 'what is an FPGA' to deploying working hardware: it walks you through eight approachable DIY projects that teach the tool flow, simple Verilog (and higher-level workflows), and practical debugging on real boards. The projects emphasize immediate, visible results so you learn by doing rather than by abstract theory.
Who Will Benefit
Hobbyists, makers, and engineers new to HDL/FPGA development who want hands-on projects to learn synthesis, simulation, and board deployment without getting bogged down in heavy theory.
Level: Beginner — Prerequisites: Basic digital-logic concepts (gates, combinational/sequential logic) and comfort with programming; no prior HDL experience required though helpful.
Key Takeaways
- Describe the basic FPGA architecture and the standard development flow from HDL to bitstream.
- Write and simulate simple Verilog modules and integrate them into larger designs.
- Build and deploy working projects on low-cost FPGA development boards (I/O, video, simple CPUs).
- Use common synthesis and simulation tools to debug and iterate FPGA designs.
- Design and integrate simple peripherals (VGA controller, memory interfaces) and parallel datapaths.
- Apply higher-level workflows (maker-friendly toolchains and scripting) to automate builds and testing.
Topics Covered
- Introduction to FPGAs: What, Why and How
- Tools and Workflow: Editors, Simulators, and Synthesis
- Getting Started Project: Blinky and Basic I/O
- Driving LEDs, Switches and Debouncing Inputs
- Video Output: Building a VGA/Composite Driver
- Simple CPU: Designing a Custom Processor and Instruction Set
- Memory and Peripherals: RAM, I/O Mapping, and Buses
- Crypto/High-Throughput Project: Accelerator Concepts (Bitcoin-miner example)
- Project Integration: Putting Modules Together and Board Bring-up
- Advanced Topics and Next Steps: Optimization and Further Resources
Languages, Platforms & Tools
How It Compares
More project-driven and accessible than Pong Chu's FPGA Prototyping with Verilog Examples — Romano focuses on maker projects and practical results while Chu provides more exhaustive, textbook-style Verilog examples and deeper coverage of timing and synthesis.











