HDL (hardware description language) and FPGA (field programmable gate array) devices allow designers to quickly create and test sophisticated digital circuits. This book uses a learning by doing approach, introducing the HDL and FPGA development process to designers through a series of hands-on experiments. A wide range of examples are included, all of which can be physically tested on an actual FPGA prototyping board. Although this is an introductory text, the examples are rigorous enough to build a solid foundation for developing large, complex systems in the future.
This is the best introduction to "programming" FPGA's that I've seen. I put programming in quotes because writing HDL for FPGA's isn't like writing a normal programming language--you have to think in a whole different way because you're configuring hardware rather than writing something that executes on a processor. This book communicates that way of thinking extremely well and provides a solid methodology for writing Verilog (or any HDL really) in a way that reduces the likelihood of creating bugs.
I approached this book already knowing a fair amount about how digital circuits and their building blocks work and are combined together (flip-flops, muxes, etc.). If you don't know this stuff already you might find this book tough reading. But then again, I'm not sure how you can effectively program FPGAs without knowing how the HDL maps to digital constructs, so you really have to learn the basics at some point.