Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
20688 Discussions

Can an FPGA reset itself?

Altera_Forum
Honored Contributor II
1,473 Views

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.
0 Kudos
4 Replies
Altera_Forum
Honored Contributor II
473 Views

This is a tricky one.. I am not sure if an update over Ethernet would be an option for you. If yes, I've seen some design examples that does that.

0 Kudos
Altera_Forum
Honored Contributor II
473 Views

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.
0 Kudos
Altera_Forum
Honored Contributor II
473 Views

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.
0 Kudos
Altera_Forum
Honored Contributor II
473 Views

Aha - thank you, I missed that. It looks indeed like all the essential info is in there. Chewing on it now!

0 Kudos
Reply