FPGARelated.com
Forums

Remotely updating Altera FPGA configuration

Started by Amigo January 30, 2006
Hi All,

We are developing a product which uses a Cyclone2 device from Altera.
The unit is a completely sealed unit with only a RS232 link to the
outside. We want to be able to update the Cyclone2 configuration files
stored in a EPC device using the available RS232 link. Has anyone done
something similar out there?

I have thought of writing a PC application which would serially send
the configuration files from the PC to a AVR and then the AVR would
program the EPC. There are a few unknows for me here.
1. Which output file format could I use and interpret seeing that it
seems as if the .pof files generated by the Quartus software must be
interpreted and can only be used by Quartus?
2. Are EPC devices the best things to use as there are numerous other
flash based configuration devices out there?

Try taking a look at how Parallax does this with their SmartPack development
boards.  They do the same thing as you're suggesting only with a PIC instead
of an AVR.

Keith


"Amigo" <rmichau@grintek.com> wrote in message
news:1138612161.902990.245260@g49g2000cwa.googlegroups.com...
> Hi All, > > We are developing a product which uses a Cyclone2 device from Altera. > The unit is a completely sealed unit with only a RS232 link to the > outside. We want to be able to update the Cyclone2 configuration files > stored in a EPC device using the available RS232 link. Has anyone done > something similar out there? > > I have thought of writing a PC application which would serially send > the configuration files from the PC to a AVR and then the AVR would > program the EPC. There are a few unknows for me here. > 1. Which output file format could I use and interpret seeing that it > seems as if the .pof files generated by the Quartus software must be > interpreted and can only be used by Quartus? > 2. Are EPC devices the best things to use as there are numerous other > flash based configuration devices out there? >
"Amigo" <rmichau@grintek.com> wrote in message 
news:1138612161.902990.245260@g49g2000cwa.googlegroups.com...
> Hi All, > > We are developing a product which uses a Cyclone2 device from Altera. > The unit is a completely sealed unit with only a RS232 link to the > outside. We want to be able to update the Cyclone2 configuration files > stored in a EPC device using the available RS232 link. Has anyone done > something similar out there?
Yes, with a Cyclone but I presume the same can be done with a Cyclone2. I have a core that allows an EPCS1/4 to be accessed from the FPGA over the FPGA programming lines, ie you don't need to waste any FPGA pins to use this functionality. It's currently driven by a SBC over a PCI interface, the SBC controls the download/verification of the config data. You would need to design in some extra control if you want to do this completely within the FPGA. This is being used in a shipping product and so far has proved very reliable. Nial Stewart ---------------------------------------------------------- Nial Stewart Developments Ltd Tel: +44 131 561 6291 42/2 Hardengreen Business Park Fax: +44 131 561 6327 Dalkeith, Midlothian EH22 3NU www.nialstewartdevelopments.co.uk
"Amigo" <rmichau@grintek.com> writes:

> We are developing a product which uses a Cyclone2 device from Altera. > The unit is a completely sealed unit with only a RS232 link to the > outside. We want to be able to update the Cyclone2 configuration files > stored in a EPC device using the available RS232 link. Has anyone done > something similar out there?
You can have the Cyclone2 do ISP by controlling the JTAG port of the EPC.
> I have thought of writing a PC application which would serially send > the configuration files from the PC to a AVR and then the AVR would > program the EPC. There are a few unknows for me here.
Does your design include an AVR? If the RS232 is connected to the Cyclone2 and you have enough pins and some extra LEs you should be able to do this from the Cyclone.
> 1. Which output file format could I use and interpret seeing that it > seems as if the .pof files generated by the Quartus software must be > interpreted and can only be used by Quartus?
I've done similar things using SVF files.
> 2. Are EPC devices the best things to use as there are numerous other > flash based configuration devices out there?
There are cheaper FLASH devices out there, but you will need a small PLD to load data into the FPGA. Petter -- A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad thing? A: Top-posting. Q: What is the most annoying thing on usenet and in e-mail?
Hi all,
Thanks so much for your replies.

>> Try taking a look at how Parallax does this with their SmartPack development >> boards. They do the same thing as you're suggesting only with a PIC instead >> of an AVR.
I've had a look at what Parallax does and it is one of the options that I've been exploring. They use a Pic to configure a Cyclone device. They also seem save the configuration on flash which the Pic reads at startup. Other than a basic explanation they dont give much information.
>> Does your design include an AVR? If the RS232 is connected to the >> Cyclone2 and you have enough pins and some extra LEs you should be >> able to do this from the Cyclone.
The design at this stage does not contain a AVR. The thinking for the AVR is that we always want a static method for updating the configurations (a bootloader). The AVR can be programmed when the unit is installed and this never changes so even if the programming/configuration of the FPGA is interrupted for some reason, and a valid configuration is not saved, at the next reset we'll still be able to access and configure the unit. I have also considered a PLD for this purpose but I think my C/C++ is better than my VHDL at this stage :-) Regards, Randall
Amigo wrote:
> Hi All, > > We are developing a product which uses a Cyclone2 device from Altera. > The unit is a completely sealed unit with only a RS232 link to the > outside. We want to be able to update the Cyclone2 configuration files > stored in a EPC device using the available RS232 link. Has anyone done > something similar out there? > > I have thought of writing a PC application which would serially send > the configuration files from the PC to a AVR and then the AVR would > program the EPC. There are a few unknows for me here. > 1. Which output file format could I use and interpret seeing that it > seems as if the .pof files generated by the Quartus software must be > interpreted and can only be used by Quartus? > 2. Are EPC devices the best things to use as there are numerous other > flash based configuration devices out there? >
An alternative idea might be to use USB instead of RS232. There are some nice FTDI chips like the FT2232C which are effectively UART to USB converters (with corresponding virtual comms port drivers for the PC), which also have jtag programming pins designed for just this sort of application. If you always have the device connected to a PC, you don't need any flash at all on the card - the PC software can download the FPGA design on connection.
Amigo ha scritto:

> Hi All, > > We are developing a product which uses a Cyclone2 device from Altera. > The unit is a completely sealed unit with only a RS232 link to the > outside. We want to be able to update the Cyclone2 configuration files > stored in a EPC device using the available RS232 link. Has anyone done > something similar out there?
My thesis was about remote update of altera FPGA with an EPC configuration device (sorry but it's in italian). I do the same with a NIOS system on the FPGA with a custom block to the external EPC interface with an HAL device driver for the flash.
> > I have thought of writing a PC application which would serially send > the configuration files from the PC to a AVR and then the AVR would > program the EPC. There are a few unknows for me here. > 1. Which output file format could I use and interpret seeing that it > seems as if the .pof files generated by the Quartus software must be > interpreted and can only be used by Quartus? > 2. Are EPC devices the best things to use as there are numerous other > flash based configuration devices out there?
Another type of remote update system I made, use the jtag port of the EPC with the jamplayer software. You can find the source code from the Altera website. I modified this software to use an FTDI 2232 device. Ask me if you want more information, source code, ecc Matteo