Enhanced Configuration (EPC) Devices Datasheet

ID 683253
Date 5/04/2016

1.3.2. External Flash Interface

The EPC devices support external FPGA or processor access to its flash memory. The unused portions of the flash memory can be used by the external device to store code or data. This interface can also be used in systems that implement remote configuration capabilities. Configuration data within a particular configuration page can be updated using the external flash interface and the system could be reconfigured with the new FPGA image. This interface is also useful to store Nios boot code, application code, or both.

The address, data, and control ports of the flash memory are internally connected to the EPC device controller and external device pins. An external source can drive these external device pins to access the flash memory when the flash interface is available.

This external flash interface is a shared bus interface with the configuration controller chip. The configuration controller is the primary bus master. Since there is no bus arbitration support, the external device can only access the flash interface when the controller has tri-stated its internal interface to the flash. Simultaneous access by the controller and the external device will cause contention, and result in configuration and programming failures.

Since the internal flash interface is directly connected to the external flash interface pins, controller flash access cycles will toggle the external flash interface pins. The external device must be able to tri-state its flash interface during these operations and ignore transitions on the flash interface pins.

Note: The external flash interface signals cannot be shared between multiple EPC devices because this causes contention during ISP and configuration. During these operations, the controller chips inside the EPC devices are actively accessing flash memory. Therefore, EPC devices do not support shared flash bus interfaces.

The EPC device controller chip accesses flash memory during:

  • FPGA configuration—reading configuration data from flash
  • JTAG-based flash programming—storing configuration data in flash
  • At POR—reading option bits from flash

During these operations, the external FPGA or processor must tri-state its interface to the flash memory. After configuration and programming, the EPC device’s controller tri-states the internal interface and goes into an idle mode. To interrupt a configuration cycle in order to access the flash using the external flash interface, the external device can hold the FPGA’s nCONFIG input low. This keeps the configuration device in reset by holding the nSTATUS-OE line low, allowing external flash access.

Figure 4. FPP Configuration with External Flash InterfaceFor external flash interface support in the EPC8 device, contact Altera for support.