SD/MMC/SPIflash FPGA Config

Project maintainers


Name: fpgaconfig
Created: Jan 7, 2007
Updated: Dec 20, 2009
SVN Updated: Mar 10, 2009
SVN: Browse
Latest version: download (might take a bit to start...)
Statistics: View
Bugs: 0 reported / 0 solved
Star4you like it: star it!

Other project properties

Development status:Stable
Additional info:
WishBone compliant: No
WishBone version: n/a


Configure Altera and Xilinx FPGAs using a small low cost micro-controller and commodity SD/MMC/SPI flash memory.

There are already solutions available that use a CPLD and SD/MMC/SPI flash memory, but this scheme uses a very small C8051 micro-controller in place of the CPLD, and this has several advantages.
1. Smaller. C8051 is available in a 4mm x 4mm package.
2. Very few additional components. eg C8051 has internal oscillator.
3. Less programming headers. Only one small header required.
4. A local microprocessor can be connected to the C8051 UART port, and program the flash memory using a few simple commands.

Downloads configuration files at 2Mbps. For example a Cyclone EP1C20 can be configured in under 2 seconds.

The total solution is very compact requiring only 2 ICs, 1 programming header, 1 resistor, and 2 capacitors.

To program the SD/MMC/SPI flash memory on your target hardware, you can purchase the Base2Designs USB2Flash programming adapter (


- Low cost.
- Customer can upgrade hardware by replacing SD card.
- Wide choice of flash memory manufacturers.
- Large flash memory capacity.
- Flash memory can be used to store large software images.
- Fail safe in field re-programming.


Release 1.0 available. Tested with Altera and Xilinx FPGAs. Download from
If there is enough interest I will port the C8051 firmware to a USB capable microcontroller. This would allow end customers to upgrade their hardware directly from a PC.

IMAGE: fpgaConfig_system_block_diag.gif

FILE: fpgaConfig_system_block_diag.gif

IMAGE: altera_config.png

FILE: altera_config.png


See fpgaConfig used in a complete project at: