SRAM-based FPGA devices are volatile and require configuration at power up, with the configuration data held in an external device. Systems often task an embedded microprocessor with FPGA configuration, transferring the data from an on-board ROM or Flash memory. However, on systems that require fast configurations, or systems that do not have microprocessor resources readily available, a dedicated PROM is commonly used. Such PROM devices are typically expensive and are usually sourced from a single vendor.
An alternative solution is to use a Lattice non-volatile PLD or FPGA as an FPGA Loader. The FPGA Loader reference design, coupled with a standard parallel Flash memory can perform the function of a PROM or microprocessor. The design provides the JTAG programming interface to the Flash, as well as control of data to the other FPGAs for configuration.