EmbeddedRelated.com
Books

Programming FPGAs: Getting Started with Verilog

MONK, Simon 2016

Take your creations to the next level with FPGAs and Verilog

This fun guide shows how to get started with FPGA technology using the popular Mojo, Papilio One, and Elbert 2 boards. Written by electronics guru Simon Monk, Programming FPGAs: Getting Started with Verilog features clear explanations, easy-to-follow examples, and downloadable sample programs. You’ll get start-to-finish assembly and programming instructions for numerous projects, including an LED decoder, a timer, a tone generator―even a memory-mapped video display! The book serves both as a hobbyists’ guide and as an introduction for professional developers.

• Explore the basics of digital electronics and digital logic
• Examine the features of the Mojo, Papilio One, and Elbert 2 boards
• Set up your computer and dive in to Verilog programming
• Work with the ISE Design Suite and user constraints files
• Understand and apply modular Verilog programming methods
• Generate electrical pulses through your board’s GPIO ports
• Control servomotors and create your own sounds
• Attach a VGA TV or computer monitor and generate video
• All source code and finished bit files available for download


Why Read This Book

You will learn how to move from digital-logic ideas to working FPGA projects using approachable, hands-on instruction — Simon Monk demystifies Verilog and the FPGA toolchain so you can write, simulate, synthesize, and load real designs. The book favors practical examples and small projects that get you building quickly rather than bogging you down in dense theory.

Who Will Benefit

Hobbyists, electronics and embedded engineers, and students who know basic digital/electronic concepts and want a fast, practical introduction to Verilog and FPGA development.

Level: Beginner — Prerequisites: Basic digital logic (gates, binary, flip-flops) and basic electronics; familiarity with programming concepts is helpful but not required.

Get This Book

Key Takeaways

  • Write clear, synthesizable Verilog for combinational and sequential logic
  • Simulate designs and create testbenches to validate behavior before synthesis
  • Synthesize and implement designs using common FPGA toolchains and load them onto development boards
  • Design finite‑state machines and common building blocks (counters, arithmetic units, memories, PLLs)
  • Interface FPGAs to simple peripherals (LEDs, buttons, UART, VGA, PWM)
  • Debug and iterate FPGA projects using simulation, waveform viewers, and basic on‑board testing

Topics Covered

  1. Introduction to FPGAs and Development Boards
  2. Getting Started with Verilog: Syntax and Basic Modules
  3. Combinational Logic in Verilog
  4. Sequential Logic and Flip‑Flops
  5. Testbenches and Simulation Techniques
  6. State Machines and Control Logic
  7. Arithmetic, Shifters, and Memory Blocks
  8. Synthesis, Constraints, and Timing Basics
  9. FPGA Toolchains and Programming your Board
  10. I/O, Clocks, and Debouncing
  11. Common Projects: Counters, LEDs, UART, VGA
  12. Practical Tips, Debugging, and Next Steps

Languages, Platforms & Tools

VerilogFPGA (general — Xilinx, Intel/Altera, Lattice)FPGA development boards (e.g., Mojo, Papilio, Basys series)Xilinx ISE / VivadoIntel QuartusIcarus VerilogModelSimGTKWaveFPGA programmer tools for common dev boards

How It Compares

More approachable and project-focused than academic texts like Pong P. Chu's FPGA Prototyping; less formal and theory-heavy than Harris & Harris's Digital Design and Computer Architecture, making it a better choice for hobbyists and embedded engineers seeking quick practical results.

Related Books

Bryant, Randal, O'Hallaron,...