Sign in

username:

password:



Not a member?

Search Comp.Arch.FPGA



Search tips

fpga by Keywords

Altera | ASIC | CPLD | Cyclone | DCM | DDR | DSP | Ethernet | ISE | JTAG | Linux | LVDS | Microblaze | ML310 | Modelsim | NIOS | OPB | PCI | Quartus | RocketIO | SDRAM | Spartan | Spartan3 | SRAM | Stratix | Verilog | VHDL | Virtex | Virtex-4 | Virtex-II | Xilinx | XST


Ads

See Also

DSPEmbedded SystemsElectronics

Comp.Arch.FPGA | FPGA damage from bad bitstream

There are 19 messages in this thread.

You are currently looking at messages 0 to 10.

FPGA damage from bad bitstream - stephen.craven@gmail.com - 2007-01-23 11:45:00

Does anyone know if it is possible to permanently
harm a Xilinx FPGA
internally through a bad (accidental or malicious) bitstream?

I realize the DRC would catch any problems, but DRC can be turned off
potentially permitting multiple drivers on the same long line or clock
net.

Thanks.
Stephen

______________________________
Join the blogging team on FPGARelated.com and earn rewards! Details Here.



Re: FPGA damage from bad bitstream - Nico Coesel - 2007-01-23 12:07:00

"s...@gmail.com"
<s...@gmail.com> wrote:

>Does anyone know if it is possible to permanently harm a Xilinx FPGA
>internally through a bad (accidental or malicious) bitstream?

YES. Been there done that. I've cooked 2 Spartan2 fpgas that way when
developing JTAG download software.

-- 
Reply to nico@nctdevpuntnl (punt=.)
Bedrijven en winkels vindt U op www.adresboekje.nl
______________________________
Join the blogging team on FPGARelated.com and earn rewards! Details Here.

Re: FPGA damage from bad bitstream - Austin Lesea - 2007-01-23 12:36:00

Stephan,

In the past, before Virtex architecture, it was possible to create
contention in the bitstream (connect two outputs together).

With Virtex, and its new methods of interconnect (fully buffered, no
tristate), we had fewer and fewer places where contention could occur.

Now with Virtex 5, it is almost impossible to create intentional
contention.  There are still some structures where the wrong bits will
connect two outputs together, but these are very few, and do not amount
to a large heat load (device will not be damaged, the currents in the
metal does not even exceed the EM rules!).

The loading of a random bitstream does create some issues, as there are
other bits which are part of the stream that can, and do affect power.

For example, by turning ON all of the parallel DCI impedance matching
circuits, one could have 200 ohms from Vcco to ground, on every IO pin!
 Given 500 to 800 IO's, that is 200/500 ohms, or 200/800 ohms (0.25
ohms) from Vcco to ground.  At 3.3 volts, that is 13 amperes, or 40 watts!

If you intentionally made a 500 MHz clock, and then connected all the
CLB's in a shift register chain (including SRL32's in V5 or SRL16's in
V4), and shifted a 1,0 pattern, I am sure you could melt the solder of a
part!

The design rule check will check for an unsupported combination of bits,
but not an intentional set of connections:  the onus is on the user to
know what they are doing, and not exceed the junction temperature
specification.  SO an "attack" using DCI or a giant shift register would
succeed.

In that sense, a "denial of service" attack on an FPGA is much simpler
if you have physical access -- just hit it with a hammer and be done
with it!

If you hacked into a network management system, and knew that you could
download bitstreams to network elements, I would hope that there are
sufficient security protocols in place so that you could not destroy a
system remotely by downloading a pattern with all DCI turned ON.

For example, if bitstream encyption is used, if you do not know the key,
the bitstream is garbage, the CRC32 does not match, and the device never
starts up (DONE does not go high).

Unlike a microprocessor, there is no possibility of a single "halt and
catch fire" instruction.

Austin
______________________________
Join the blogging team on FPGARelated.com and earn rewards! Details Here.

Re: FPGA damage from bad bitstream - Jon Elson - 2007-01-23 14:24:00


s...@gmail.com wrote:

>Does anyone know if it is possible to permanently harm a Xilinx FPGA
>internally through a bad (accidental or malicious) bitstream?
>
>I realize the DRC would catch any problems, but DRC can be turned off
>potentially permitting multiple drivers on the same long line or clock
>net.
>
>  
>
Note that the bitstream is checked on-chip by CRC before the configuration
is alowed to take place.  So, unless the "bad" bitstream was carefully 
constructed
to have a valid checksum, it would just keep the chip disabled.

Jon

______________________________
Join the blogging team on FPGARelated.com and earn rewards! Details Here.

Re: FPGA damage from bad bitstream - comp.arch.fpga - 2007-01-23 14:43:00

There was a Paper at FPL 1999 about destryoing
FPGAs by implementing
many internal ring oscillators.
http://www.springerlink.com/content/9wnbm5eqgpjvlcug/

They were using Altera FPGAs and the Xilinx crowd in the auditorium
burst into spontaneous applause.
But the speaker pointed out that the same would be possible with Xilinx
FPGAs.

Kolja Sulimma

s...@gmail.com wrote:
> Does anyone know if it is possible to permanently harm a Xilinx FPGA
> internally through a bad (accidental or malicious) bitstream?
>
> I realize the DRC would catch any problems, but DRC can be turned off
> potentially permitting multiple drivers on the same long line or clock
> net.
> 
> Thanks.
> Stephen


Re: FPGA damage from bad bitstream - Neil Steiner - 2007-01-23 16:10:00

I agree in principle, but it sometimes gets a
little more complicated.

> Note that the bitstream is checked on-chip by CRC before the configuration
> is alowed to take place.  

Technically, the CRC is computed on a frame by frame basis, so errors 
might indeed prevent startup for a full bitstream, but for a partial 
active reconfiguration the frames that passed CRC would still be 
reconfigured.

> So, unless the "bad" bitstream was carefully constructed to have a
> valid checksum, it would just keep the chip disabled.

Yes, for a full bitstream that was corrupted by accident.  But 
recomputing the CRCs on a deliberately modified bitstream, or just 
disabling CRC checking altogether, is easy to do, even though Austin 
tells us it would be unlikely to harm the device.
______________________________
Join the blogging team on FPGARelated.com and earn rewards! Details Here.

Re: FPGA damage from bad bitstream - Neil Steiner - 2007-01-23 16:12:00

My bad.  I was trying to respond to Jon Elson.
______________________________
Join the blogging team on FPGARelated.com and earn rewards! Details Here.

Re: FPGA damage from bad bitstream - Neil Steiner - 2007-01-23 16:16:00

I agree in principle, but it sometimes gets a
little more complicated.

> Note that the bitstream is checked on-chip by CRC before the 
> configuration is alowed to take place.

Technically, the CRC is computed on a frame by frame basis, so errors 
might indeed prevent startup for a full bitstream, but for a partial 
active reconfiguration the frames that passed CRC would still be 
reconfigured.

> So, unless the "bad" bitstream was carefully constructed to have a 
> valid checksum, it would just keep the chip disabled.

Yes, for a full bitstream that was corrupted by accident.  But 
recomputing the CRCs on a deliberately modified bitstream, or just 
disabling CRC checking altogether, is easy to do, even though Austin 
tells us it would be unlikely to harm the device.

Re: FPGA damage from bad bitstream - Neil Steiner - 2007-01-23 16:18:00

Oh, I get it.  I just don't know how to use my
news reader.

Re: FPGA damage from bad bitstream - jbnote - 2007-01-23 16:49:00

Hi Austin,

This raises intersting questions:

> For example, if bitstream encyption is used, if you do not know the key,
> the bitstream is garbage, the CRC32 does not match, and the device never
> starts up (DONE does not go high).

Sorry for not reading the docs, is encryption only used on frame data
in the bitstream?

- If encryption is for the full bitstream, then there's not even one
chance that the random garbage will make sense to the bitstream
microcontroller, so you're safe.

- If encryption is limited to the data stream, then on the virtex2,
it's very easy to disable CRC checking and load random garbage for
which I'd guess frying configurations on long lines would not be
uncommon (let's do the math !).

On virtex4 and virtex5, I'd expect that each frame's Hamming SECDED
code is checked by the loading state machine and encrypted, so random
garbage would be rejected ? Or does Hamming Code sits there for nothing
at load-time ?

JB


| 1 | 2 | next