Programming Flash in Spartan 6 Learner's board

The Reference Designer Spartan 6 Evaluation board for Verilog/VHDL learners contains 16 Mega Bit Flash ( Winbond W25Q16) that can be programmed for standby operation. We will go through the process of programming the

To program the integrated Flash we need to first generate the *.mcs file which can then be downloaded to the Flash. Once you program the Flash, the FPGA will read the programming file from the external flash which is used to configure itself.

Follow the following steps to generate the *.mcs file to be programmed to the Flash. These steps have been generated Xilinx ISE 14.4 but should be similar for other a slightly earlier or slightly later versions as well. At the end of the configuration, you will also have a youtube to walk you through the steps.

1. Click on Manage Configuration Project (iMPACT) in your poject to Open iMPACT Now double click "Create PROM Files" on the left Window.

2. In step 1, Select SPI Flash ->Configure Single FPGA. In step 2, choose 16M and press Add storage device button. In the step 3, set the name, location and the format of the file as MCS. Follow the following picture ( it has the filename as Untitled which you may wish to fix. Click "OK" to continue.

3. Press OK, and assign the source *.bit file to generate the MCS file.

When it asks for "Would you like to add another device" - select "No".

At this stage you will be prompted with the following window.

Click ok.

4. Now Double click "Generate File" in the left side window "iMPACT Processes".

5. Now Right click "SPI/BPI?" button, and select "Add SPI/BPI Flash".

8. Select the generated *.MCS file, and choose the right type of flash on your board. In this case, W25Q16V ( It is Winbond 16 Mbit Flash IC).

10. Right click on the "Flash" button, and select "Program"

Select the default settings and click ok.

At this point it will take some time to download the mcs file and may take like couple of minutes.

To confirm that the programming was successful, turn off the power to the board and then turn it on again and make sure, it works as expected.