Designing for Reuse of Configurable Logic

Field-programmable gate arrays (FPGAs) offer electronic systems designers the opportunity to reduce development cost, reduce time-to-market, increase system performance, and improve system adaptability. As FPGAs become larger and more complex, the process of developing firmware for them has evolved to include similarities with the design of complex software subsystems. Reuse of FPGA firmware components can further reduce the system development cost and time-to-market, while also providing product quality improvements.
This technical report provides an overview of a generic FPGA firmware design process and identifies the resulting work products that may be suitable for reuse in future development efforts. It provides a brief summary of research done in the field of software reuse and highlights its applicability to FPGA firmware. This report also provides guidance to developers on the evaluation of firmware components to determine their suitability for reuse and discusses actions that can be taken by both acquirers and developers to produce reusable FPGA firmware.