Forum Discussion
Altera_Forum
Honored Contributor
13 years agoI am using the Cyclone III. We have a serial EPCS device which has 2 images. A safe image and the application image. I program this device initially with a .jic file which you can create in Quartus under file->convert programming files. From this menu you can take multiple .sof files and map them to space in your EPCS device. Once you've created your JIC you can then program your EPCS device through the JTAG port.
The Remote System Upgrade component is useful if you want to use your FPGA images, because by default the image at location 0x0 will always be the image that is used. Here are two examples. First, on bootup the FPGA loads the safe image from the EPCS device at 0x0. Then, it checks if the user is holding down a button for x amount of seconds. If the user is not, then the FPGA will boot into the second image using the Remote System Upgrade component. Otherwise it will stay in the safe mode. Second, a user can upgrade an image by inserting a USB drive. After the NIOS is done writing the data from the USB drive to the EPCS device. You call one function which then tells the FPGA to reconfigure. If you are looking for some more information I recommend reading up forum posts about Remote System Upgrade. If you're using a CPU it isn't really hard at all, you just call one function. If you aren't using a CPU it will be more difficult, but some searching on this forum will probably give you some ideas.