Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
The FPGA Programming Handbook

You're reading from   The FPGA Programming Handbook An essential guide to FPGA design for transforming ideas into hardware using SystemVerilog and VHDL

Arrow left icon
Product type Paperback
Published in Apr 2024
Publisher Packt
ISBN-13 9781805125594
Length 550 pages
Edition 2nd Edition
Languages
Tools
Arrow right icon
Authors (2):
Arrow left icon
Guy Eschemann Guy Eschemann
Author Profile Icon Guy Eschemann
Guy Eschemann
Frank Bruno Frank Bruno
Author Profile Icon Frank Bruno
Frank Bruno
Arrow right icon
View More author details
Toc

Table of Contents (17) Chapters Close

Preface 1. Introduction to FPGA Architectures 2. FPGA Programming Languages and Tools FREE CHAPTER 3. Combinational Logic 4. Counting Button Presses 5. Let’s Build a Calculator 6. FPGA Resources and How to Use Them 7. Math, Parallelism, and Pipelined Design 8. Introduction to AXI 9. Lots of Data? MIG and DDR2 10. A Better Way to Display – VGA 11. Bringing It All Together 12. Using the PMOD Connectors – SPI and UART 13. Embedded Microcontrollers Using the Xilinx MicroBlaze 14. Advanced Topics 15. Other Books You May Enjoy
16. Index

What this book covers

Chapter 1, Introduction to FPGA Architectures, explains what an ASIC and an FPGA are and gives some background on Boolean logic that will be the building blocks for your designs.

Chapter 2, FPGA Programming Languages and Tools, introduces Hardware Description Language (HDL) and Vivado/ Vitis. A sample design is introduced to showcase the flow and demonstrate the development of a testbench for verification.

Chapter 3, Combinational Logic, looks at writing a complete SystemVerilog module from scratch to perform some basic operations to show how to use combinational logic in your own designs. We’ll also introduce testbenches and how to write one that self-checks.

Chapter 4, Counting Button Presses, builds upon the previous chapter’s combination logic, adding storage—sequential elements. We’ll learn about the capabilities of the Artix-7 and other FPGA devices to store data and design a simple project to count button presses. We’ll also take a look at using clocks and synchronization, one of the few things that can break a design completely if not done correctly.

Chapter 5, Let’s Build a Calculator, looks at how to create more complex design. Inevitably, you need to keep track of the design state. In this chapter, we’ll learn about state machines and use a classic staple of engineering, the traffic light controller. We’ll also enhance our calculator and show how we can design a divider using a state-based design.

Chapter 6, FPGA Resources and How to Use Them, takes a step back after having quickly dived into FPGA designs, examining some of the FPGA resources in more detail. To use these resources, we’ll introduce some of the board resources, the PDM microphone and i2c temperature sensor attached to the FPGA and use them in projects.

Chapter 7, Math, Parallelism, and Pipelined Design, takes a deeper dive into fixed-point and floating-point numbers. We’ll also look at pipelined designs and parallelism for performance.

Chapter 8, Introduction to AXI, covers how Xilinx has adopted the AXI standard to interface its IP and has developed a tool, IP integrator, to easily connect the IP graphically. In this chapter, we’ll look at AXI by taking our temperature sensor and using the IP integrator to integrate the design.

Chapter 9, Lots of Data? MIG and DDR2, looks at how the Artix-7 provides a good amount of memory, but what happens if we need access to megabytes or gigabytes of temporary storage? Our board has DDR2 on it and in anticipation of implementing a display controller, we’ll look at the Xilinx Memory Interface Generator to implement the DDR2 interface and test it in simulation and on the board.

Chapter 10, A Better Way to Display – VGA, looks at implementing a VGA and an easy way to display text. We’ve used LEDs and a seven-segment display to output information from our projects. This does limit us to what can be shown; for example, we can’t display our captured audio data and text.

Chapter 11, Bringing It All Together, covers adding to our inputs. We’ve covered the output with VGA, but we’ll add to our inputs by interfacing to the keyboard using PS/2. We’ll take our temperature sensor and PDM microphone and create a project that uses the VGA to display this data.

Chapter 12, Using the PMOD Connectors – SPI and UART, will explore the PMOD connectors on the Nexys A7 board. By the end of this chapter, we will have created AXI reusable components for a Universal Asynchronous Receiver-Transmitter (UART) and a Serial Peripheral Interface (SPI) bus.

Chapter 13, Embedded Microcontrollers Using the Xilinx MicroBlaze, will introduce the Xilinx Microblaze processor, how to implement one using Vivado and how to develop software for it using Vitis.

Chapter 14, Advanced Topics, wraps things up by looking at some SystemVerilog concepts that I skipped over but you may still find them useful. We’ll look at some of the more advanced verification constructs and finally look at some other gotchas and how to avoid them.

lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime
Banner background image