Hello forum members,I'm using a Cyclone IV board and would like to drive the configuration from a microcontroller attached to some pins on its expansion header, as follows: * on power-up, the FPGA configs itself using the EPCS flash chip * that config simply wires the EPCS chip through to pins on the expansion header * the microcontroller can now read and modify the flash chip, i.e. upload a new bitstream * the puzzle: how to make the FPGA reset and reload from flash again, triggered by the microcontroller * the challenge is to do this without modifying the board, i.e. no re-wiring of the config button Preferably, reloading should use a different start address in flash, so that the next full power cycle starts the whole process again. If that's not possible, I could include logic in the application bitstream to wire through as above on startup, and then continue with startup after one second (in case no new bitstream is sent). My reason for this is to be able to hand out a pre-configured board, which allows occasional reconfiguration without needing a USB blaster on-site. Is it possible? I'm still exploring and looking through the documentation and resources on the web, so any pointers would be most welcome. Cheers, -jcw PS. I did find http://www.alteraforum.com/forum/showthread.php?t=52583&highlight=can+an+fpga+reset+itself%3f - but it does not seem to lead to an answer.
I'm afraid that Ethernet is not really an option for me.A few other thoughts on this: * have the microcontroller plug into JTAG as well, and then program either EPCS or FPGA that way * just tell people to press the config button manually, but... * if I have overwrite the pass-through bitstream, then recovery from a bad one becomes an issue If there is no solution, I'm afraid I'll have to modify the board after all, and tie the config button to an I/O pin.
As mentioned in the thread you cited, ug_altremote.pdf is probably what you are looking for.The description of Cyclone IV specific capabilities start on page 25. In Figure 10, the line "Set Control Register and Reconfigure" is essentially the behavior you are describing.