View Single Post
  #5 (permalink)  
Old 01-21-2006, 02:54 PM
Ray Andraka
Posts: n/a
Default Re: Creating Multiple Configuration PROM File

Antti Lukats wrote:
> "Rob" <[email protected]> schrieb im Newsbeitrag
> news:[email protected]
>>All I want to do is change the select bits on the PROM, initiate a
>>configuration cycle, and have the FPGA loaded with a new/different
>>configuration. Is this possible? If so, how does one create an .mcs file
>>with two configurations? Or is it another file extention?

> well that is where you need external microcontroller or PLD to select
> between active config
> you can also select by jumpers but you can not select from FPGA which
> revision is loaded from Platform Flash
> the revision select pins must be controlled by some additional circuitry !!
> if you wire them to the FPGA then they are reset to defaults and you can not
> select which config is loaded
> so if you are happy with jumpers selecting the config then its all ok, just
> add 2 revisions to the PROM when writing it and connect a swithc or
> jumpers to the rev select pins of the PROM
> Antti

You'll need to use a parallel ROM rather than the serial one so that you
can select the configuration. The configuration select needs a little
bit of logic outside of the FPGA to hold the configuration select bits
while the FPGA is being reconfigured...unless you use partial
reconfiguration, in which case you just have to be careful that the part
the controls the reconfiguration stays alive. If you go for the partial
reconfiguration, you'll still need something outside to bootstrap the
initial design that has the configuration controller in it.

I've done whole FPGA configuration with a configuration select on
several designs. One of them is documented (although I don't recall
there being much detail on the reconfiguration scheme) in my paper on an
FPGA based radar environment simulator from about 8 years ago. In that
case, a parallel ROM held 16 (I think) FPGA configurations. A CPLD,
which IIRC was a Lattice 1032, held the selection registers and the
configuration state machine. Configuration in this case was initiated
with a command from a VME interface. It managed the configuration of
four XC4025E's. The hooks were in the design to allow any of the FPGAs
to initiate a reconfiguration, but as I recall we didn't use that

Another one that comes to mind was a universal card reader design on a
XC3020 (now I am really dating myself) that would self reconfigure after
determining what kind of card was inserted. That one also used a CPLD
to manage reconfiguration from a parallel PROM, but in that case it
would start up with a default configuration, then when the FPGA
application was ready for a reconfiguration, it would output a
configuration code and go signal to the CPLD, and the CPLD would then
handle the FPGA reconfiguration using a simple state machine.

Those were in the days before Xilinx could do partial reconfiguration,
and it worked just fine. So, yes it can be done, and it doesn't take a
very complicated external circuit to do it. In fact, I think the PLD
and parallel ROM needed actually cost less than the serial ROM for a
stock configuration circuit.
Reply With Quote