Go Back

Source code


Name: fpgaconfig
Created: Jan 7, 2007
Updated: Dec 20, 2009
SVN Updated: Mar 10, 2009

Other project properties

Category: Other
Language: Other
Development status: Stable
Additional info:
WishBone Compliant: No


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 ( http://www.base2designs-store.com).


- 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 http://www.opencores.org/pdownloads.cgi/list/fpgaconfig
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: