Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
13 years ago

Cyclone IV: multiple configurations on one EEPROM

I want to configure a Cyclone IV from an EEPROM device using the active serial method described in the Cyclone handbook. I want to store multiple configurations on one EEPROM (one that can be upgraded and one that remains fixed as something to fall back to). I can't find anything in the Altera documentation about this but I think it should be possible. Can anyone point me to a resource or offer advice on this?

I've read about Remote System Upgrade, which contains steps similar to what I want to do, but it seems more complicated that what I need as I just want to reprogram everything by JTAG, not remotely.

Any help or ideas of to where to look would be great.

3 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    I 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.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Thanks for your help. We aren't using a CPU in the project so I want to keep things simple. I think the first bit you mentioned about using Quartus II to load multiple images on one EPCS device may be enough for what we need to do.

    Thanks for the help!
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    That will get your multiple configurations into the EEPROM device, but without the remote update block you will not be able to reconfigure the FPGA to use any of the images except the one that is at the default starting address. In serial devices, this is at 0x0.