Nios® II Flash Programmer User Guide

ID 683118
Date 11/06/2017
Document Table of Contents

1. Overview of the Nios® II Flash Programmer

Many hardware designs that include the Nios® II processor also incorporate flash memory on the board to store FPGA configuration data or Nios® II program data. The Nios® II Flash Programmer is part of the Intel® Quartus® Prime Programmer . Its purpose is to program data into a flash memory device connected to an FPGA. The Nios II Flash Programmer sends file contents over a download cable, such as the Intel® FPGA Download Cable, to a Nios® II system running on the FPGA, and instructs the Nios II system to write the data to flash memory.

The Nios® II Flash Programmer can program three types of content to flash memory:
  • Nios® II software executable files—Many systems use flash memory to store non-volatile program code, or firmware. Nios II systems can boot from flash memory.
  • FPGA configuration data—At system power-up, the FPGA configuration controller on the board can read FPGA configuration data from the flash memory. Depending on the design of the configuration controller, it might be able to choose between multiple FPGA configuration files stored in flash memory.
  • Other arbitrary data files—The Nios® II Flash Programmer can program a binary file to an arbitrary offset in a flash memory for any purpose. For example, a Nios® II program might use this data as a coefficient table or a sine lookup table.
The Nios® II Flash Programmer can be used to program the following types of memory:
  • Common flash interface (CFI)-compliant flash memory—CFI is an industry standard that provides a common, vendor-independent interface to flash memory devices.

    For more information about the CFI specification, refer to the JEDEC Common Flash Interface standard JESD68.01 and JEDEC publications JEP137x, available on the JEDEC Solid State Technology Association standards organization website (

  • Intel EPCQ, EPCQL, and EPCQA serial configuration devices store FPGA configuration data and Nios® II executable software.
The Nios® II processor supports the following two boot options using Intel Serial Flash:
  • The Nios® II processor application executes in place from EPCQ flash.
  • The Nios® II processor application is copied from EPCQ flash to RAM using a boot copier.

You can boot a Nios® II processor from Intel EPCQ flash memory (EPCQx1, EPCQx4) using an Intel FPGA Serial Flash Controller. The Intel FPGA Serial Flash Controller with Avalon® interface allows Nios® II processor systems to access an Intel EPCQ flash memory, which supports standard, quad and single-I/O mode. The Nios® II processor Software Build Tools (SBT) supports the Nios® II booting from the Intel FPGA Serial Flash Controller.

For more information about how to build a bootable system from EPCS and device eram for a Nios II processor application, refer to Nios® II Configuration and Booting Solutions chapter of Embedded Design Handbook.

Note: In this document, the term "flash memory" refers to both CFI and EPCQ memory devices, unless otherwise noted.