Using a Microprocessor to Configure Xilinx FPGAs via Slave Serial or SelectMAP Mode

Mike Peattie · 2009

With embedded systems becoming more popular, many designers want to reduce their component count and increase flexibility. To accomplish both of these goals, a microprocessor already available in the system can be used to configure an FPGA. This application note provides a thorough discussion of FPGA configuration via a microprocessor, covering Virtex® and Spartan® FPGA families. Also, this application note presents a system-level model using a Xilinx® Complex Programmable Logic Device (CPLD) to implement an interface to the FPGA configuration pins. C code is included to illustrate an example application using either Slave Serial or SelectMAP mode. CPLD design files are also included to illustrate a possible synchronous interface between the processor and the FPGA. System Overview Today's systems demand greater functionality in less space and at reduced cost. In addition, each generation of Xilinx FPGAs delivers higher performance and increased capabilities. Although the Platform Flash PROMs provide an easy-to-use, pre-built configuration solution for Xilinx FPGAs, an embedded processor-based configuration solution can allow for advanced FPGA configuration applications and reduce board real estate requirements, assuming that an external, embedded processor with sufficient memory is already a pre-requisite for the system. This application note describes a technique for configuring an FPGA from an embedded processor. Three common components are required: an embedded microprocessor, some non-volatile memory, and a CPLD. Cost, as well as real estate, can be reduced if the function of a dedicated configuration device, such as a PROM, can be integrated within these three components. A system diagram is shown in Figure 1.

Read the paper · More papers on PaperTik