ForgeFPGA Configuration Guide
Rev.1.0
May 31, 2022
Page 13
8. MCU Programming (Slave Mode)
After POR the CONFIG (GPIO9) signal will go low signaling the host (MCU) that it can start sending data to the
device. After the reset is de-asserted, the host sends 10242 SPI_SCK cycles (preamble) while holding SPI_CSn
low and SPI_SI data set to 0. The preamble is used to flush the SLG47910array before configuring the array.
After the preamble, the MCU sends a sync word (32-bits) followed by 288-bits data used to configure other SOC
registers. After the 288-bits are sent the MCU will then send the configuration bits. Once the configuration
bitstream is sent, the host keeps SPI_SS low and keeps sending SPI_SCKs (postamble) until it sees the
CONFIG signal go high. During the postamble, the SLG47910 generates the CHIP_RST signal resetting the
array.
Figure 15. SPI MCU Mode Timing
A 32-bit synchronization word will be inserted in the beginning of the bitstream by the ForgeFPGA Compiler. The
SLG47910 will check this synchronization word to determine if the transfer is targeting this device. If the
synchronization word does not match this device, then the configuration bitstream will be discarded. This
synchronization word is checked on both SPI slave and SPI master.
The following steps are used to program the SLG47910 in MCU mode.
1. Set CONFIG pin to INPUT PULL-DOWN
2. Set PWR and EN pins to "1"
3. Set Power On (VddC= 1.1 V, VDDIO = 1.8 V)
4. Wait 102.1 ms
5. Send SIGNATURE (1 word, MOSI = 0)
6. Set CS Pin to Pull-Up
7. Wait 2 ms
8. Set CS pin to "0"
9. Send PREAMBLE (321 word, MOSI = 0)
10. Send SYNC (1-word LSB 0x11FF22AA Transmission starts from LSB)
11. Send REGS (9 word. Default all zeros)
12. Send BITSTREAM (11264 words) *
13. Send POSTAMBLE (6 words, MOSI = 0) *
14. Set CS pin to Pull-Up (Or ALL pins to Hi-Z)