--- Quote Start ---
If I have a Cyclone III FPGA, a EPCS configuration device, and I want to use USB Blaster to download configuration data to the FPGA, I understand than what is happen is this:
1. The EPCS device is programed by USB Blaster
2. EPCS device download configuration to the FPGA after each power up
Then am I using AS + JTAG ?
--- Quote End ---
The EPCS devices are essentially re-branded SPI flash. To program them, you need to issue SPI sequences. There's two ways to do this using Altera's tools and a USB-Blaster;
1. AS header.
The USB-Blaster gets plugged into an AS header, which connects to the SPI pins on the EPCS flash. The USB-Blaster is then used to program the SPI flash directly. In this scheme, the FPGA just stays out of the way.
2. JTAG header.
The USB-Blaster gets plugged into a JTAG header, which connects to the JTAG pins on the FPGA. The Quartus programmer configures the FPGA with a JTAG-to-SFL (serial flash loader) bridge, and then issues JTAG commands that are converted into SPI commands. These commands can be used to read the serial flash IDs and to program the device. This is called 'indirect' programming.
I personally prefer the wiring of the latter scheme, i.e., just wire a USB-Blaster into the JTAG chain on your board, include a JTAG header on the board, and do not include an AS header.
Since you can configure the FPGA EPCS pins as user I/O after the device has configured, you can write your own SPI interface logic and software to program the flash. Eg., you can use a large Spansion device such as the S25FL512S device to program the Cyclone device on power up, and then you can use your own custom controller to access the device using the faster Quad-I/O and DDR I/O modes and 32-bit addressing modes (that are not supported by Altera's flash programming tools). The 'extra' locations in the flash can be used for reconfiguration images, configuration images for FPGAs, or boot code for a processor.
When you turn power on to your board, the Cyclone device checks its MSEL pins, and determines that it needs to configured from an external SPI flash device. The FPGA then issues SPI read (or fast read) commands to load the configuration data from flash. The address in SPI flash is nominally address 0, however, using the reconfiguration feature of the FPGA, you can select a fairly arbitrary start address for the image (24-bits, 32-bit aligned).
Cheers,
Dave