Forum Discussion
Altera_Forum
Honored Contributor
10 years agoProgrammatic Reset/Reconfig of Cyclone FPGA
Due to a funny situation, I need to programmatically trigger reboot/reconfiguration of my Cyclone IV E device. I mean that I need to reset/reconfigure the device from inside my VHDL code.
Basically - I'm using a micro to do a firmware upgrade through the FPGA using the ALT_ASMI core to reprogram the serial configuration device. Now, because I unfortunately have no board level access to the reset pins of the FPGA, I have no way to actually reconfigure and use the new FPGA configuration without a power cycle. I know this issue has been addressed in other forums, and it appears the complex Altera system upgrade IP does this and many other other things... But I just want to reset the FPGA without all the other stuff. Is this really so much to ask? I can't believe there is no quick-n-dirty way to due this. Maybe someone over at Altera can do me a big favor and let me know the secret? Maybe drive the reset pin low myself internally? Maybe some other undocumented trick? Again, it doesn't have to be pretty - we're passed that now ;) Thanks in advance! XxZz4 Replies
- Altera_Forum
Honored Contributor
You need to pulse nCONFIG low and high again. However, based on your post I suspect you don't have control of this from your micro...
The only other very, very dirty way I can suggest is to overload one of the FPGA rails (VCCINT or VCCA) - yes, easier said than done - such that it's voltage drops and causes the FPGA's POR circuitry to reconfigure the device. Cheers, Alex - Altera_Forum
Honored Contributor
You want to look at the ALTREMOTE_UPDATE megafunction. Using it you can pulse the nCONFIG signal internally via logic to reboot your device.
Document here: https://www.altera.com/literature/ug/ug_altremote.pdf (https://www.altera.com/literature/ug/ug_altremote.pdf) There is also this global option: set_global_assignment -name ENABLE_NCONFIG_FROM_CORE ON However, if you look in the Altera Quartus QSF Reference that describes this variable, it says nothing about how to use it, or what happens when it is set ON vs OFF. Maybe some Altera Guru has better insight on what this assignment does and how to use it. - Altera_Forum
Honored Contributor
The ENABLE_NCONFIG_FROM_CORE sounded a little too good to be true. From Altera:
"The ACF variable ENABLE_NCONFIG_FROM_CORE was actually only applicable to MAX 10 devices and, after a little digging I've found that this variable is actually no longer supported and has been removed as a feature. "There is no way to toggle nCONFIG from within the core of our FPGAs other than via the Remote Update IP." Cheers, Alex - Altera_Forum
Honored Contributor
--- Quote Start --- The ENABLE_NCONFIG_FROM_CORE sounded a little too good to be true. From Altera: "The ACF variable ENABLE_NCONFIG_FROM_CORE was actually only applicable to MAX 10 devices and, after a little digging I've found that this variable is actually no longer supported and has been removed as a feature. "There is no way to toggle nCONFIG from within the core of our FPGAs other than via the Remote Update IP." Cheers, Alex --- Quote End --- Well that is too bad. In the past when I had to implement this programmable reconfiguration, I explicitly connected the nCONFIG pin on the FPGA to a GPIO port on a microprocessor; or in another case the microprocessor had control of the JTAG interface, and we were able to issue the PULSE_NCONFIG JTAG command to force the reconfiguration to occur.