You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 9 Next »

DIP Switch Configuration

Similar to the traditional configuration memories, SPI serial Flash memories must be loaded with the configuration data. SPI serial Flash memories have a single interface for programming, but there are multiple methods to deliver the data to this interface. This section discusses the hardware setup, the PROM file generation flow and the software flow for ISP (indirect in-system programming) of a Trenz Electronic TE0300 SPI serial Flash configuration PROM through the JTAG interface of a Xilinx Spartan-3E FPGA using Xilinx iMPACT 10.1 (with other version the procedure should be almost the same).

To write the SPI Flash memory, perform the following steps:

  • Check the configuration switches against the following table:

DIPswitch

on (left)

off (right)

S1

X

X

S2

Run

 

S3

-

PON

S4

X

X

  • Connect the host computer to the micromodule through both the SPI flying leads cable and the USB cable.
  • Start Xilinx ISE iMPACT and follow this procedure for the creation of .mcs file and this procedure for the Indirect ISP. 

TE0300 Example

The following example shows the case of iMPACT 10.1.

  • Check the configuration switches against the previous table.
  • Connect the host computer to the micromodule through both the SPI flying leads cable and the USB cable.
  • Start Xilinx ISE iMPACT and follow this procedure for the creation of .mcs file and this procedure for the Indirect ISP.
  •  If the "iMPACT Project" window pops up, press the "Cancel" button.

SPI Direct 1
  • Double click the "Boundary Scan" option in the "Modes" panel.
Double click the "Boundary Scan" option in the "Modes" panel.
  • Right click the "Boundary Scan" to initialize the chain and select "Initialize Chain".
Right click the "Boundary Scan" to initialize the chain and select "Initialize Chain"
  • An "Assign New Configuration File" dialog window should pop up automatically. You can now select the file corresponding to your design. In the following example, we will show how to select the micromodule reference design "blinking.bit" in the "TE0300" folder. Do not forget to select the "Enable Programming of SPI Flash Device Attached to this FPGA" option in the same window.
An "Assign New Configuration File" dialog window should pop up automatically.
  • An "Add PROM File" dialog window should pop up automatically. You can now select the file corresponding to your design. In the following example, we will show how to select the micromodule reference design "blinking.mcs" in the "TE0300" folder.
An "Add PROM File" dialog window should pop up automatically.
  • Select now the SPI Flash corresponding to the one present on the module (STMicroelectronics M25P32 in the example, a 32 Mbit (4M x 8) Serial Flash memory).
Select now the SPI Flash corresponding to the one present on the modul
  • iMPACT should now look like this.
iMPACT should now look like this
  • Right click the "Flash" device and select the "Program" operation
  • In the "Device Programming Properties" window, just leave the default settings and press the "OK" button.
  • iMPACT will first erase the SPI Flash memory 
Erase the SPI Flash memory
  • and then write the bitstream in the SPI Flash memory. 
Write the bitstream in the SPI Flash memory.
  • After successful programming, you should read the message "Program Succeeded" popping up for a few seconds in the "Boundary Scan" panel.

  • Switch S3 back to the "FX PON" position. In case you uploaded the reference design, you should see the on-board led blinking at 0.5 Hz.

For further information about indirect (SPI over JTAG) in-system programming of SPI Flash memories, please see Xilinx Application Note XAPP974 "Indirect Programming of SPI Serial Flash PROMs with Spartan-3A FPGAs".

When downloading via parallel JTAG programmer to FPGA, it can happen that programming fails with Error: "'1' : Programming terminated. DONE did not go high." Try setting DIP switch S4 to JTAG-only. A bug in certain Xilinx iMPACT versions can cause this.
  • No labels