Upload
kn65238859
View
216
Download
0
Embed Size (px)
Citation preview
7/29/2019 Altera MAX Series Configuration Controller Using Flash Memory
1/6
White Paper
MAX Series Configuration Controller Using Flash Memory
September 2009, ver. 2.0 1WP-M060605-1.0
Alteras flash memory configuration controller provides an alternative configuration solution for high-densityFPGA-based designs. With the flexibility to use a bigger flash memory to store more configuration data, designers
can implement the flash memory controller in Alteras MAXII, MAX 3000A, or MAX 7000 devices for use in Stratixseries, Arria series, and Cyclone series FPGAs.
Introduction
Configuration bitstream sizes are increasing with the introduction of higher-density FPGAs. This increase requireslarger configuration devices to store the data and configure these FPGAs. As an alternative to using largerconfiguration devices, designers can use flash memory to store configuration data. To use flash memory to performconfiguration, designers must use a flash memory configuration controller, which also allows the implementation of aremote system upgrade configuration scheme in the design. This white paper shows how to implement the flash
memory controller in Alteras MAX II, MAX 3000A, or MAX 7000 devices.
Configuration Controller Features
Designers can use the MAX series configuration controller for the following functions:
Read configuration data from a flash memory
Configure AlteraFPGAs
Remote System Upgrade Configuration (only in Alteras Stratixseries, Arriaseries, and CycloneseriesFPGAs)
Configuration from multiple pages of configuration data. FPGA_PGMpins allow designers to choose one of theconfiguration pages to configure FPGAs
The MAX series configuration controller supports the following configuration modes:
Fast Passive Parallel (FPP) Mode (with and without decompression) Passive Serial (PS) Mode (with and without decompression) Passive Parallel Asynchronous (PPA) Mode Remote System Upgrade (only in Stratix series, Arria series, and Cyclone series FPGAs)
Figure1shows the flash memory controller block diagram.
7/29/2019 Altera MAX Series Configuration Controller Using Flash Memory
2/6
MAX Series Configuration Controller Using Flash Memory Altera Corporation
2
Figure 1. Flash Memory Configuration Controller Block Diagram
Notes:(1) Not used in PPA mode.
(2) Not used in FPP or PPA mode.(3) Not used in PS mode.
(4) Not use in PS or FPP mode.
(5) Controller works with 8- and 16-bit flash devices.
pga_nSTATUS
fash_ADDR [26..0]
fash_CS_n
fash_OE_n
fash_RW_n
fash_RESET_n
fash_BY TE_n
fash_DATA [7..0] (5)
pga_nWS (4)
pga_nRS (4)
pga_CS (4)
pga_nCS (4)
pga_DATA0 (2)
PGM [2..0]
pga_INIT_DONE
pga_CONFIG_DONE
pga_DCLK(1)
pga_msel [3..0]
pga _ncong
nRS
CS
nCS
DATA [7..0]
DATA0
DCLK
MSEL [3..0]
nCONFIG
nWS
nSTATUS
CONF_DONE
INIT_DONE
PGM[2..0]
FPGA MAX II, MAX 3000A, or
MAX 7000 Device
Flash
Memory
RESET_n
MAX_EN
CPLD_CLKOSC
FPGA_PGM[2..0]
pga_DATA [7..0] (3)
fash_DATA [15..8] (5)
7/29/2019 Altera MAX Series Configuration Controller Using Flash Memory
3/6
Al tera Corporation MAX Series Configuration Control ler Usin g Flash Memory
3
Configuration Controller Operation
Figure2shows how the configuration controller executes the basic operation when it is powered up.
Figure 2. Flash Memory Configuration Controller Basic Operation Flow Chart
Page Selection for Configuration ControllerFlash memory can store multiple configuration pages in different addresses. The configuration controller allows thedesigner to select which configuration page in the flash memory to load during the configuration. To determine whichpage to load, the controller reads theFPGA_PGMpin in non-remote upgrade mode or reads thePGM pin in remoteupgrade mode. A Stratix series, Arria series, or Cyclone series FPGA controls thePGM pins through the FPGAsremote system upgrade block. Designers can control FPGA_PGMpins using DIP switches or other devices.
No
No
No
Yes
Yes
Start
Remote System
Upgrade Mode?
Check FPGA_PGM Pin to
Determine Conguration Data
Start Address
Check PGM Pin to Determine
Conguration Data Start
Address
Read Conguration Data rom
Flash
Process Conguration Data
and Congure FPGA
Conguration
Completed?
WaitReconguration?
Yes
7/29/2019 Altera MAX Series Configuration Controller Using Flash Memory
4/6
MAX Series Configuration Controller Using Flash Memory Altera Corporation
4
Read and Process Configuration Data
The configuration controller reads configuration data through theflash_DATA [7..0]data bus, and optionallythrough theflash_DATA [15..8]data bus. In PS mode, the configuration controller sends the serialconfiguration bitstream through thefpga_DATA0pin. In FPP, FPP with decompression, and PPA mode, the
configuration controller sends the configuration data through thefpga_DATA[7..0]data bus.During the configuration process, the configuration controller executes the following processes:
PS Mode
Reads one byte (eight bits) or two bytes (16 bits) of configuration data from flash memory and serializes the data Generates theDLCKsignal and sends one bit of configuration data for everyDLCKsignal Reads the next byte(s) of configuration data from flash memory after 8 or 16DLCKsignals
FPP Mode
Reads one byte (eight bits) or two bytes (16 bits) of configuration data from flash memory Generates theDLCKsignal and sends one byte (eight bits) of configuration data for everyDLCKsignal Reads the next byte(s) of configuration data from flash memory after one or twoDLCKsignals
FPP Mode with Decompression
Reads one byte (eight bits) or two bytes (16 bits) of configuration data from flash memory Generates theDLCKsignal and sends one byte (eight bits) of configuration data for every fourDLCKsignals Reads the next byte(s) of configuration data in flash memory after every four or eightDLCKsignals
PPA Mode
Reads one byte (eight bits) or two bytes (16 bits) of configuration data from flash memory Sends one byte (eight bits) or two bytes (16 bits) of configuration data to the FPGA and generates the control
signals (nWS, nRS, CS, andnCS) to regulate the data transfer Reads the next byte(s) of configuration data in flash memory after sending one or two bytes of configuration data
f For more information on the configuration modes, refer to theConfiguration Handbook.
f For more information on the configuration controller, refer toAN 386: Using the Parallel Flash Loader withthe Quartus II Software.
Reconfiguration
The configuration controller reconfigures the FPGA if there is an error (nSTATUSgoes low) during the configurationstate.
The FPGA can initiate reconfiguration in remote update mode. The remote update block can update thePGM pin andinitiate reconfiguration through the FPGA core_nconfig. TheCONF_DONEpin goes low when the FPGAinitiatescore_nconfig in user mode.The configuration controller checks theCONF_DONEpin and reconfiguresthe FPGA afterCONF_DONEgoes low.
f For more information about remote system upgrades, refer to theRemote Update Circuitry(ALTREMOTE_UPDATE) Megafunction User Guide.
http://www.altera.com/literature/lit-config.jsphttp://www.altera.com/literature/an/an386.pdfhttp://www.altera.com/literature/an/an386.pdfhttp://www.altera.com/literature/ug/ug_altremote.pdfhttp://www.altera.com/literature/ug/ug_altremote.pdfhttp://www.altera.com/literature/ug/ug_altremote.pdfhttp://www.altera.com/literature/ug/ug_altremote.pdfhttp://www.altera.com/literature/an/an386.pdfhttp://www.altera.com/literature/an/an386.pdfhttp://www.altera.com/literature/lit-config.jsp7/29/2019 Altera MAX Series Configuration Controller Using Flash Memory
5/6
Al tera Corporation MAX Series Configuration Control ler Usin g Flash Memory
5
Configuration Modes
The configuration controller supports the following configuration modes:
FPP Mode PS Mode PPA Mode Remote System Upgrade
FPP Mode
Stratix series, Arria series, selected Cyclone series, and APEX II devices support the FPP configuration mode.
During FPP configuration, configuration data is transferred from a flash memory to the FPGA on theDATA[7..0]pins. This configuration data is latched into the FPGA on the rising edge ofDCLK. For FPP without decompressionor the design security feature, the configuration data is transferred at a rate of one byte per clock cycle. For FPP withdecompression and the design security feature, the configuration data is transferred at a rate of one byte every fourclock cycles.
PS ModeStratix series, Arria series, Cyclone series, APEX II, APEX 20K, Mercury, ACEX1K, FLEX10K, and FLEX6000 devices support the PS configuration mode.
During PS configuration, configuration data is transferred from flash memory to the FPGA on theDATA (FLEX 6000devices) orDATA0 (Stratix series, Arria series, Cyclone series, APEX II, APEX 20K, Mercury, ACEX 1K, andFLEX 10K devices) pin. This configuration data is latched into the FPGA on the rising edge ofDCLK. Configurationdata is transferred at a rate of one bit per clock cycle.
PPA Mode
Stratix series, Arria series, APEX II, APEX 20K, Mercury, ACEX 1K, and FLEX 10K devices support the PPAconfiguration mode.
During PPA configuration, configuration data is transferred from a storage device, such as a configuration device orflash memory to the FPGA onDATA[7..0]pins. Since this configuration mode is asynchronous, control signals(nWS, nRS, CS, andnCS) regulate the configuration cycle.
f For more information about the FPP, PS, and PPA configuration modes, refer to the ConfigurationHandbook.
Remote System Upgrade
The Remote Update Circuitry megafunction supports remote system upgrade using FPP, PS, or PPA configurationmodes to configure Stratix series, Arria series, and Cyclone series FPGAs.
The configuration controller determines which page to load in remote system upgrade mode by reading thePGM pinon the FPGA. The configuration controller monitors thenSTATUSpin to detect any error during configuration or to
initiate reconfiguration after configuration mode. The FPGAs remote system upgrade block initiates reconfigurationto change the page.
f For more information about remote system upgrades, refer to theRemote Update Circuitry(ALTREMOTE_UPDATE) Megafunction User Guide.
http://www.altera.com/literature/lit-config.jsphttp://www.altera.com/literature/lit-config.jsphttp://www.altera.com/literature/ug/ug_altremote.pdfhttp://www.altera.com/literature/ug/ug_altremote.pdfhttp://www.altera.com/literature/ug/ug_altremote.pdfhttp://www.altera.com/literature/ug/ug_altremote.pdfhttp://www.altera.com/literature/lit-config.jsphttp://www.altera.com/literature/lit-config.jsp7/29/2019 Altera MAX Series Configuration Controller Using Flash Memory
6/6
6
Copyright 2009 Altera Corporation. All rights reserved. Altera, The Programmable Solutions Company, the stylized Altera logo, specific devicedesignations, and all other words and logos that are identified as trademarks and/or service marks are, unless noted otherwise, the trademarks and servicemarks of Altera Corporation in the U.S. and other countries. A ll other product or service names are the property of their respective holders. Altera productsare protected under numerous U.S. and foreign patents and pending applications, maskwork rights, and copyrights. Altera warrants performance of itssemiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products andservices at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or servicedescribed herein except as expressly agreed to in writing by Altera Corporation. Altera customers are advised to obtain the latest version of devicespecifications before relying on any published information and before placing orders for products or services.
101 Innovation Drive
San Jose, CA 95134
www.altera.com
Al tera Corporation MAX Series Configurati on Control ler using Flash Memory
Flash Memory
Designers must convert the configuration data from SRAM Object Files (.sof) to a HEXOUT file (.hexor .hexout)and program it into the flash memory. Designers can generate HEXOUT files by choosing theConvert
Programming Files in the Quartus II design softwares file menu.
f For information on the HEXOUT file format, refer to IntelsHexadecimal Object File Format Specification.
Prior to placing it on a board, designers can program the flash memory with standard programming equipment orin-system using test equipment. Because different flash memories have different algorithms, it is recommended thatthe flash memory data sheet is read for accurate programming information.
f A full list of supported flash memories can be found inAN 386: Using the Parallel Flash Loader with theQuartus II Software.
Source Code
The configuration controller megafunction source code is available in Verilog HDL and VHDL code. The samesource code can be compiled to support the following four configuration modes:
FPP FPP Decompression PS PPA
The configuration controller megafunction source code is written for MAX II, MAX 3000A, and MAX 7000 devices.The code reads from the flash memory and configures the FPGA. Designers can customize and modify themegafunction according to other hardware requirements.
f For more details about the configuration controller megafunction source code, refer toAN 386: Using theParallel Flash Loader with the Quartus II Software.
Conclusion
The flash memory configuration controller provides an alternative configuration solution for a design that useshigh-density FPGAs. It offers the flexibility to use a bigger flash memory to store more configuration data. Designerscan use the Parallel Flash Loader and ALTREMOTE_UPDATE megafunctions to design remote upgrade systems forStratix series, Arria series, and Cyclone series FPGAs in FPP, PS, and PPA modes.
Further Information
Configuration Handbook:www.altera.com/literature/lit-config.jsp
AN 386: Using the Parallel Flash Loader with the Quartus II Software:www.altera.com/literature/an/an386.pdf
Remote Update Circuitry (ALTREMOTE_UPDATE) Megafunction User Guide:www.altera.com/literature/ug/ug_altremote.pdf
Intel Hexadecimal Object File Format Specification:http://microsym.com/editor/assets/intelhex.pdf
http://microsym.com/editor/assets/intelhex.pdfhttp://microsym.com/editor/assets/intelhex.pdf