My team has verified our logic design on a development board and we are ready to move to a final prototype. Due to the nature of the device, the FPGA board must contain minimal components and be configured via an external programming circuit. The specific technology we have targeted is the Altera Cyclone V but I imagine the same principles could apply to other technology as well. I am looking for advice on the best way to achieve this in terms of time, cost and complexity.
I will focus on the simplest method of programming, which is Active Serial configuration. After scouring the Altera website for a few days this is what I have come up with as design requirements:
-The FPGA cannot hold a design configuration (bitstream) through power off, and thus requires some type of programmable non-volatile memory, such as flash memory.
-There is a simple power-on sequence where the FPGA provides a couple external signals to indicate it is ready to receive a bitstream and also provides a clock via internal oscillator to synchronize itself with the bitstream source.
-The board containing the FPGA must be programmed while attached to an external circuit, removed from the circuit, and placed in a PCB stack containing several other devices that are all operating independently from the FPGA. The FPGA is not controlling any of these other devices, although it does receive control signals in order to synchronize its activity with the overall system.
A few questions I am having difficulty with:
Are there OTS solutions for FPGA configuration (storage and bitstreaming) or is this something that absolutely requires a custom designed microcontroller solution, such as MSP430/PIC?
I've looked at the USB blaster chip for a programming circuit solution, but it uses JTAG and interfaces with the FPGA directly. I'm not sure if it is capable of interfacing with a storage device. It provides far more functionality than is needed for this system, and is quite costly (~$300 just for the chip). We don't need to be able to access internal signals using Signal Tap, because our test setup can verify operation using co-simulation. Are there existing devices that I can use, possibly as a paired system (on-board chip plus external programmer chip)? Or, can anyone recommend an alternative approach?
I've submitted a support request to Altera, but I doubt they will be interested in helping out a startup like us. Plus, I'm sure there's more expertise available here. Thanks in advance for any helpful advice. You guys are great!