FPGARelated.com
Forums

Maximum Current Draw of FPGA

Started by Nevo August 12, 2006
I've reviewed the docs briefly but didn't find this information.

I'm playing with a XC3S400 in a 256 BGA on the Digilent board. If I were to 
use all the available I/O pins to drive LEDs (that's 104 of them), and do 
something silly like turn 'em all on at once, will I exceed the maximum 
current draw of the chip and let out the magic smoke?

The eight red LED's on the board are driven directly from the I/O pins 
through 390 ohm resistors.

I am planning on attaching a green LED to each of the 96 I/O pins exposed on 
the connectors through 390 ohm resistors.

Thx,

-Nevo 


Do your homework:
Build one such interface, then measure the supply voltage and the
voltage on either side of the 390 Ohm resistor. Use simple math to
clculate the current, and also the power dissipation inside the chip,
for this one instant. Then multiply the power by 96.
I am quite sure that the current will be below 1 A, and thus no
problem. But you might think about the on-chip power dissipation.
All you need is a multimeter and high-school math.
Peter Alfke
========================
Nevo wrote:
> I've reviewed the docs briefly but didn't find this information. > > I'm playing with a XC3S400 in a 256 BGA on the Digilent board. If I were to > use all the available I/O pins to drive LEDs (that's 104 of them), and do > something silly like turn 'em all on at once, will I exceed the maximum > current draw of the chip and let out the magic smoke? > > The eight red LED's on the board are driven directly from the I/O pins > through 390 ohm resistors. > > I am planning on attaching a green LED to each of the 96 I/O pins exposed on > the connectors through 390 ohm resistors. > > Thx, > > -Nevo
Peter,

Where did the 1A maximum come from? That's the figure I couldn't find in my 
quick look at the datasheet.

Thanks!

-Nevo

"Peter Alfke" <alfke@sbcglobal.net> wrote in message 
news:1155440396.057616.75560@b28g2000cwb.googlegroups.com...
> Do your homework: > Build one such interface, then measure the supply voltage and the > voltage on either side of the 390 Ohm resistor. Use simple math to > clculate the current, and also the power dissipation inside the chip, > for this one instant. Then multiply the power by 96. > I am quite sure that the current will be below 1 A, and thus no > problem. But you might think about the on-chip power dissipation. > All you need is a multimeter and high-school math. > Peter Alfke > ======================== > Nevo wrote: >> I've reviewed the docs briefly but didn't find this information. >> >> I'm playing with a XC3S400 in a 256 BGA on the Digilent board. If I were >> to >> use all the available I/O pins to drive LEDs (that's 104 of them), and do >> something silly like turn 'em all on at once, will I exceed the maximum >> current draw of the chip and let out the magic smoke? >> >> The eight red LED's on the board are driven directly from the I/O pins >> through 390 ohm resistors. >> >> I am planning on attaching a green LED to each of the 96 I/O pins exposed >> on >> the connectors through 390 ohm resistors. >> >> Thx, >> >> -Nevo >
There is no max Icc spec. But I find 1 A acceptable, since we often see
3 W power dissipation...
I think there is a (very conservative) spec that wants to keep the
current per pin below 10 mA (I think 20 to 30 mA is fine), and it looks
like all that is not really your problem.
Peter Alfke, Xilinx Applications (from home)
===================================
Nevo wrote:
> Peter, > > Where did the 1A maximum come from? That's the figure I couldn't find in my > quick look at the datasheet. > > Thanks! > > -Nevo > > "Peter Alfke" <alfke@sbcglobal.net> wrote in message > news:1155440396.057616.75560@b28g2000cwb.googlegroups.com... > > Do your homework: > > Build one such interface, then measure the supply voltage and the > > voltage on either side of the 390 Ohm resistor. Use simple math to > > clculate the current, and also the power dissipation inside the chip, > > for this one instant. Then multiply the power by 96. > > I am quite sure that the current will be below 1 A, and thus no > > problem. But you might think about the on-chip power dissipation. > > All you need is a multimeter and high-school math. > > Peter Alfke > > ======================== > > Nevo wrote: > >> I've reviewed the docs briefly but didn't find this information. > >> > >> I'm playing with a XC3S400 in a 256 BGA on the Digilent board. If I were > >> to > >> use all the available I/O pins to drive LEDs (that's 104 of them), and do > >> something silly like turn 'em all on at once, will I exceed the maximum > >> current draw of the chip and let out the magic smoke? > >> > >> The eight red LED's on the board are driven directly from the I/O pins > >> through 390 ohm resistors. > >> > >> I am planning on attaching a green LED to each of the 96 I/O pins exposed > >> on > >> the connectors through 390 ohm resistors. > >> > >> Thx, > >> > >> -Nevo > >
Peter .. he WAS doing his homework, and forced to ask the list because
XILINX continues to refuse to specify the part completely.  Your
"process" for determining this does NOT provide the answer for other
than ONE part, at ONE voltage, at ONE temperature. The process does NOT
provide any clue about how the next 1 million parts will perform, nor
does it provide a defective screening limit to return high current
parts that are well outside of specification (which XILINX refuses to
provide).

Your answer to this poster, isn't any better than the XILINX answer to
mine last winter.

John

Peter Alfke wrote:
> Do your homework: > Build one such interface, then measure the supply voltage and the > voltage on either side of the 390 Ohm resistor. Use simple math to > clculate the current, and also the power dissipation inside the chip, > for this one instant. Then multiply the power by 96. > I am quite sure that the current will be below 1 A, and thus no > problem. But you might think about the on-chip power dissipation. > All you need is a multimeter and high-school math. > Peter Alfke > ======================== > Nevo wrote: > > I've reviewed the docs briefly but didn't find this information. > > > > I'm playing with a XC3S400 in a 256 BGA on the Digilent board. If I were to > > use all the available I/O pins to drive LEDs (that's 104 of them), and do > > something silly like turn 'em all on at once, will I exceed the maximum > > current draw of the chip and let out the magic smoke? > > > > The eight red LED's on the board are driven directly from the I/O pins > > through 390 ohm resistors. > > > > I am planning on attaching a green LED to each of the 96 I/O pins exposed on > > the connectors through 390 ohm resistors. > > > > Thx, > > > > -Nevo
fpga_toys@yahoo.com wrote:

> Peter .. he WAS doing his homework, and forced to ask the list because > XILINX continues to refuse to specify the part completely. Your > "process" for determining this does NOT provide the answer for other > than ONE part, at ONE voltage, at ONE temperature. The process does NOT > provide any clue about how the next 1 million parts will perform, nor > does it provide a defective screening limit to return high current > parts that are well outside of specification (which XILINX refuses to > provide). > > Your answer to this poster, isn't any better than the XILINX answer to > mine last winter.
To give this a reference point, here is an example from over the fence, of a Philips data sheet : http://www.standardics.philips.com/products/pca/pdf/pca9506.pdf Notice they specify: Maximum power Maximum current per pin Idd Max Gnd Max Total Iol, recommended and Vol Mins, for Vcc and Temp limits This device is a LED driver, and yes, that is the level of spec a designer could reasonably expect to find in a data sheet, when designing for LED drive usage. -jg
"Nevo" <nevo_n@hotmail.com> wrote:

>I've reviewed the docs briefly but didn't find this information.
They specify a maximum current of 24mA sink/source per pin. For 96 pins, this would add up to 2.3 A. -- Reply to nico@nctdevpuntnl (punt=.) Bedrijven en winkels vindt U op www.adresboekje.nl
Nico Coesel wrote:
> "Nevo" <nevo_n@hotmail.com> wrote: > > >I've reviewed the docs briefly but didn't find this information. > > They specify a maximum current of 24mA sink/source per pin. For 96 > pins, this would add up to 2.3 A. > > -- > Reply to nico@nctdevpuntnl (punt=.) > Bedrijven en winkels vindt U op www.adresboekje.nl
For the OP question, assuming 3.3V I/O power and a typical forward voltage on the LED of 2V, then the total current into the device is about 320mA (3.33mA per pin) which should be fine. Note that LED forward voltage varies quite a lot - at low currents it may be as low as 1.5V (for some devices). That would add about 50% to the total, to ~450mA total. Without knowing the exact device it's hard to be really specific. I second the comment about incomplete specs - in this particular case, I don't think the OP has anything to worry about though. Cheers PeteS
"Nevo" <nevo_n@hotmail.com> wrote in message 
news:uOvDg.5670$zc2.3643@trnddc06...
> I've reviewed the docs briefly but didn't find this information. > > I'm playing with a XC3S400 in a 256 BGA on the Digilent board. If I were > to use all the available I/O pins to drive LEDs (that's 104 of them), and > do something silly like turn 'em all on at once, will I exceed the maximum > current draw of the chip and let out the magic smoke? > > The eight red LED's on the board are driven directly from the I/O pins > through 390 ohm resistors. > > I am planning on attaching a green LED to each of the 96 I/O pins exposed > on the connectors through 390 ohm resistors. > > Thx, > > -Nevo >
That's a really naff way of driving LED's. Instead drive them from the FPGA IO configured as open collector (ie tristate with the tristate buffer input connected to ground, and the tristate control as your input. Then connect the LED to the IO, supplying the other end of the LED via a resistor to your supply. That way you considerably reduce the FPGA power dissipation to that of the saturated output drivers - the bulk of the power being dissipated in the external resistors. Slurp
"Slurp" <slip@slap.slop> wrote:

> >"Nevo" <nevo_n@hotmail.com> wrote in message >news:uOvDg.5670$zc2.3643@trnddc06... >> I've reviewed the docs briefly but didn't find this information. >> >> I'm playing with a XC3S400 in a 256 BGA on the Digilent board. If I were >> to use all the available I/O pins to drive LEDs (that's 104 of them), and >> do something silly like turn 'em all on at once, will I exceed the maximum >> current draw of the chip and let out the magic smoke? >> >> The eight red LED's on the board are driven directly from the I/O pins >> through 390 ohm resistors. >> >> I am planning on attaching a green LED to each of the 96 I/O pins exposed >> on the connectors through 390 ohm resistors. >> >> Thx, >> >> -Nevo >> > >That's a really naff way of driving LED's. > >Instead drive them from the FPGA IO configured as open collector (ie >tristate with the tristate buffer input connected to ground, and the >tristate control as your input. Then connect the LED to the IO, supplying >the other end of the LED via a resistor to your supply. > >That way you considerably reduce the FPGA power dissipation to that of the >saturated output drivers - the bulk of the power being dissipated in the >external resistors.
Xilinx FPGAs (like almost all digital CMOS devices) have complementary push/pull output stages. It doesn't matter whether you sink or source current, the output stage will be saturated in either case unless the programmed output current is exceeded. If an FPGA is used, I think it is easy to connect the LEDs in a matrix and deploy a nifty multiplexing scheme. -- Reply to nico@nctdevpuntnl (punt=.) Bedrijven en winkels vindt U op www.adresboekje.nl