Appendix A. Getting the Most Out of Embedded FPGA Processors
This appendix is adapted from a paper titled "FPGA Embedded Processors: Revealing True System Performance," which was presented by Bryan Fletcher at the Embedded Systems Conference in San Francisco in March of 2005.
This book has included multiple examples that combine embedded FPGA "soft" processors with custom-designed FPGA logic to create a mixed hardware/software system, primarily for the creation of embedded, software-driven test benches. For larger-scale systems design, embedding a processor inside an FPGA has many advantages. Specific peripherals can be chosen based on the application, with unique user-designed peripherals being easily attached. A variety of available memory controllers enhance the FPGA embedded processor system's interface capabilities.
FPGA embedded processors use general-purpose FPGA logic to construct internal memory, processor buses, internal peripherals, and external peripheral controllers, including external memory controllers. Soft processors are built from general-purpose FPGA logic as well.
As more pieces (buses, memory, memory controllers, peripherals, and peripheral controllers) are added to the embedded processor system, the system becomes increasingly powerful and useful. However, these additions reduce performance and increase the embedded system cost, consuming FPGA resources.
Likewise, large banks of external memory can be connected to the FPGA and accessed by the embedded processor system using included memory controllers. Unfortunately, the latency to access this external memory can have a significant, negative impact on performance. It is important to consider these various aspects of embedded processor performance in order to get the best use of these powerful components.