Math, Parallelism, and Pipelined Design
In the last chapter, we looked at FPGA resources and how to use them. We went into detail about RAM, DSP blocks, and PLLs. We also looked at how we can interface with external components using tri-state IO, I2C, and PWM.
In this chapter, we’ll look at some ways that set FPGAs apart from microcontrollers and microprocessors. Microprocessors are custom-designed ASICs that can have very high performance when running at very high frequencies – up to 5 GHz as of writing this book. These processors are general-purpose, meaning they need to balance their operations for a wide variety of tasks. In contrast, the Artix 7 we are targeting can hit speeds of up to 300-400 MHz. Higher-end FPGAs can hit speeds of up to 800 MHz.
Looking at the raw numbers, you might question what would make an FPGA an attractive solution. We know they are costly and now that they run slower than a microprocessor. Unlike microprocessors, FPGAs can be targeted...