Chapter 7. Increasing Statement-Level Parallelism
The C language was designed to describe sequential operations on a sequential CPU. In fact, the semantics of C describe the exact order and manner in which each operation should occur. In this chapter we'll investigate the apparent contradiction between sequential programming in C and the desired result of creating highly parallel, accelerated hardware.
A Model of FPGA Computation
Before we discuss specific techniques for extracting parallelism at the level of instructions—blocks of C statements—within a process, let's consider how computation is actually performed on an FPGA. This will help you understand the hardware execution model of your C code running in hardware. If you can understand the ...