Getting Started With FPGAs Cover

Getting Started with FPGAs

Digital Circuit Design, Verilog, and VHDL for Beginners
by Russell Merrick
September 2023, 320 pp.
Lay-flat binding

Download Chapter 4: Storing State with the Flip-Flop

Look Inside!

Getting Started with FPGAs back coverFPGAs pages 18-19FPGAs pages 96-97FPGAs pages 206-207

Whether you have been toying with field programmable gate arrays (FPGAs) for years or are completely new to these reprogrammable devices, this book will teach you to think like an FPGA engineer and develop reliable designs with confidence.

Through detailed code examples, patient explanations, and hands-on projects, Getting Started with FPGAs will actually get you started. Russell Merrick, creator of the popular blog, will guide you through the basics of digital logic, look-up tables, and flip-flops, as well as high-level concepts like state machines. You’ll explore the fundamentals of the FPGA build process including simulation, synthesis, and place and route.You’ll learn about key FPGA primitives, such as DSP blocks and PLLs, and examine how FPGAs handle math operations and I/O.

Code examples are provided in both Verilog and VHDL, making the book a valuable resource no matter your language of choice. You’ll discover how to:

  • Implement common design building blocks like multiplexers, LFSRs, and FIFOs
  • Cross between clock domains without triggering metastable conditions or timing errors
  • Avoid common pitfalls when performing math
  • Transmit and receive data at lightning speeds using SerDes
  • Write testbench code to verify your designs are working

With this accessible, hands-on guide, you’ll be creating your own functional FPGA projects in no time. Getting started with FPGAs has never been easier.

Requirements: To complete the projects in this book, readers should plan to purchase an FPGA development board, preferably with a Lattice iCE40 FPGA, a USB connection, and peripherals like LEDs, push-button switches, and a seven-segment display. Some projects may require other inexpensive parts. 

Author Bio 

Russell Merrick is the creator of the popular FPGA blog,, and accompanying YouTube channel. He has worked on many FPGA designs at Accion Systems, as well as at BAE Systems and L-3 Communications. He holds undergraduate and graduate degrees from the University of Massachusetts Amherst and the University of Massachusetts Lowell.

Table of contents 

Chapter 1: Meet the FPGA
Chapter 2: Setting Up Your Hardware and Tools
Chapter 3: Boolean Algebra and the Look-Up Table
Chapter 4: Storing State with the Flip-Flop
Chapter 5: Testing Your Code with Simulation
Chapter 6: Common FPGA Modules
Chapter 7: Synthesis, Place and Route, and Crossing Clock Domains
Chapter 8: The State Machine
Chapter 9: Useful FPGA Primitives
Chapter 10: Numbers and Math
Chapter 11: Getting Data In and Out with I/O and SerDes
Appendix A: FPGA Development Boards
Appendix B: Tips for Starting an FPGA Engineering Career


View the Copyright page
View the detailed Table of Contents
View the Index


"This book covers FPGAs in the exact level of detail you want when getting started—it’s the book I wish had existed when I was first experimenting with FPGAs. It covers the important theory behind design decisions (such as why timing constraints are so important), while also introducing important practical topics ranging from simple state machines, to fixed-point math, to high-speed SerDes blocks.

The helpful inclusion of both Verilog and VHDL throughout makes the book perfect for use anywhere, whether you need only one of the languages or want to be proficient in both."
—Colin O’Flynn, author of The Hardware Hacking Handbook


View the latest errata.

The Lattice iCEcube2 IDE remains freely available to hobbyists, educators, start-ups, and similar users. Visit the software page for instructions on how to obtain a free iCEcube2 Makers Community license.