FPGA programming modes
Programming Modes
The Xilinx Spartan-3A FPGA we will be using on the SiPM control board can be programmed using any of several modes. This table, adapted from the User Guide, Table 2-1, shows the available programming modes and how to select them by setting the M[2:0] pins on the FPGA.
We will be using the master serial programming mode, since it is simplest to set up, requires fewer pins, and we don't need the higher speeds of the other available modes. For our purposes, reducing the number of pins on the EEPROM and the number of leads on the board is more important than reducing the start-up time of the FPGA.
M[2:0] | Programming Mode |
<0:0:0> | Master serial (platform flash) mode |
<0:0:1> | Master SPI mode |
<0:1:0> | BPI up |
<0:1:1> | Reserved |
<1:0:0> | Reserved |
<1:0:1> | JTAG mode |
<1:1:0> | Slave parallel mode |
<1:1:1> | Slave serial mode |
For information about the other pins used in the programming process, see SiPM digital control board netlist.
Master serial (Platform Flash) mode
Operating in master serial mode, the FPGA generates its own clock signal during the programming process. This clock signal is output through the FPGA's CCLK pin (see FPGA Configuration Pins). When used with a compatible Xilinx EEPROM, the FPGA can read data from the EEPROM by driving the EEPROM's CE and OE pins high, and waiting for CF to rise. New data is available on the D0 pin a short while after each rising clock edge.