Автор: Russell Merrick
Издательство: No Starch Press
Год: 2024
Страниц: 345
Язык: английский
Формат: epub (true), mobi
Размер: 10.1 MB
Skip the complexity and learn to program FPGAs the easy way through this hands-on, beginner-friendly introduction to digital circuit design with Verilog and VHDL.
Whether you have been toying with field programmable gate arrays (FPGAs) for years or are completely new to thesereprogrammable 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 actuallyget you started. Russell Merrick, creator of the popular blog Nandland.com, will guide you through the basics of digitallogic, look-up tables, and flip-flops, as well as high-level concepts like state machines. You’ll explore the fundamentals ofthe FPGA build process including simulation, synthesis, and place and route.You’ll learn about key FPGA primitives, suchas 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 ofchoice. 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
Although not strictly required, I recommend having a development board with a Lattice iCE40 FPGA so you can complete the book’s hands-on projects. There’s nothing more satisfying than learning about a concept and then being able to implement that concept on real hardware. The software tools for working with iCE40 FPGAs run best on Windows. If you don’t have a Windows computer, I recommend running the tools inside a Windows virtual machine.
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.
Who Is This Book For?
I’ve tried to make this book as accessible as possible so that a broad range of people will be able to read and understand the material. The intended audience is anyone who is curious about how digital programmable logic works and how FPGAs can be used to solve a wide variety of problems. Maybe you’re a college student who encountered FPGAs in a class and was left intrigued but confused, or someone in the electronics industry who has been exposed to FPGAs at work. Perhaps you’re a tinkerer or hardware hacker, or a software developer interested in programming at a much lower level than you’re used to. This book is very approachable for all of these groups. I’m assuming you’ve had at least some exposure to a conventional programming language, like Python, C, or jаvascript. It will be helpful if you understand concepts like functions, conditional statements (if…else), loops, and other basic programming techniques. You don’t need any prior experience with Verilog or VHDL, however; this book will introduce the basics of these languages. FPGAs lie at the intersection of hardware and software, so having some interest in electronics is helpful. We’ll sometimes discuss concepts like voltage and current within the FPGA. Here again, it will be useful if you’ve had some basic introduction to these terms, but it won’t be required to get value out of those sections.
Скачать Getting Started with FPGAs