Based on experiments performed at Memec, several conclusions have been reached.
Have Reasonable Expectations
All manufacturers want to publish the best possible benchmark. FPGA manufacturers take full advantage of system flexibility and FPGA design techniques to achieve high benchmarks. The embedded designer must understand how these benchmarks are achieved and realize that an actual FPGA embedded processor system cannot achieve such high marks. However, the benchmarks are still useful as a means of comparing one manufacturer to another.
Regarding the design process, remember that the hardware platform is part of the FPGA embedded processor design. Unlike off-the-shelf processors where the hardware is predefined and fixed, FPGAs have the flexibility and added complexity to create a multitude of different systems. A member of the design team must have knowledge of hardware development and optimization of the FPGA embedded processor.
If an application does not require high performance or any of the other advantages that an FPGA can provide, an off-the-shelf processor is most likely a less complicated, less expensive, and better solution.
Optimization Through Experimentation Yields the Best Results
Much can be done to optimize an FPGA embedded processor system. In addition to standard software optimization, the embedded designer can perform many hardware optimizations. Careful use of memory has a large impact on the system's performance. Experimenting with different memory strategies is necessary to achieve the best performance.
Understand that the addition or removal of each peripheral, peripheral controller, or bus alters the design size, cost, and speed. Use only what is necessary and no more!
Take Advantage of Superior Flexibility in FPGAs
An FPGA embedded processor has the power and ability to provide previously unachievable flexibility and performance. With an FPGA, a designer can specify exactly the peripherals required in a system. With an FPGA soft processor, a designer can purchase and own the source code for the processor. With an FPGA, a designer can adapt C code from a software bottleneck to create a custom hardware coprocessing unit. These are excellent advantages that can be realized only in programmable hardware.
If the designer chooses not to take advantage of these capabilities, the realized FPGA embedded processor system performance may be a huge disappointment. However, for those who take full advantage of the FPGA embedded processor, specific application performance greatly exceeding typical microprocessor expectations is possible!
Thanks to Shalin Sheth of Xilinx and Ron Wright of Memec for their advice and assistance.