Forum: FPGA, VHDL & Co. Verständnisfrage: Leistungsaufnahme FPGA


von Peter Reither (Gast)


Lesenswert?

Hallo,

ich weiß, dass diese Frage sehr allgemein gehalten ist, aber mir geht es 
um ein prinzipielles Verständnis:

Wie genau kommt die Leistungsaufnahme bei einer FPGA-basierten Schaltung 
zustande, also was genau ist für die Menge der benötigten Leistung 
verantwortlich? Wie spielen Zahl der verwendeten LUTs, Takt, IO 
Aktionen, ... hier eine Rolle?
Oder anders formuliert: Worauf muss man achten, um bei einer 
FPGA-basierte Architektur einen möglichst kleinen Energiebedarf zu 
erreichen, und wie sind (wenn überhaupt) etwas wie "Stromsparmodi" 
realisierbar?

Momentan arbeite ich mich mit LatticeXP2 FPGAs in die FPGA-Welt ein, und 
möchte damit ein SoC System entwerfen, welches mit Batteriebetrieb eine 
längere Zeit auskommen kann. Außerdem interessieren mich die technischen 
und physikalischen Hintergründe.

Vielen Dank im Voraus!

von Lattice User (Gast)


Lesenswert?

Die Leistungsaufnahmhe teilt sich im Wesentlichen in statischen und 
dynamischen Verbrauch auf.

Statischer Verbrauch entsteht in erster Linie durch Leckströme, und kann 
dem Darenblatt entnommen werden.

Dynnamischer Verbrauch entsteht durch Änderungen der Zustände im FPGA, 
da müssen jedesmal zwar winzige aber viele Kapazitäten umgeladen werden.
d.h. je höher die Taktfrequenz und je mehr Signale sich bei einem Takt 
ändern desto höher die Leistungsaufnahme.

Daneben hängt beides nich von der Versorgungspannung und der Temeperatur 
ab.

Leistungsaufnahme der IOs muss dann auch noch berücksichtigt werden, ist 
im Prinzip das gleiche, ausser dass es auch noch von der 
Aussenbeschaltung und der Platine abhängt.

Spiel etwas mit dem Powerestiminator im Diamond um ein Gefühl zu 
bekommen.

von Peter Reither (Gast)


Lesenswert?

Vielen Dank für die vielen guten Informationen! Das Diamond einen Power 
Calculator hat habe ich total übersehen...

von Sigi (Gast)


Lesenswert?

Lattice User schreib:
>Leistungsaufnahme der IOs muss dann auch noch berücksichtigt werden, ist
>im Prinzip das gleiche, ausser dass es auch noch von der
>Aussenbeschaltung und der Platine abhängt.

Die Leistungsaufnahme der IOs kann auch stark von der Konfiguration
der IO-Zellen abhängen: Unbenutzte Pins sich selbst zu überlassen
kann zu wesentlich höheren Wärmeentwicklung sorgen, bei sehr vielen
unbenutzten Pins kann der FPGA sogar extrem heiss laufen oder gar
kaputt gehen.

Das Thema wird hier im Forum alle zig Monate mal diskutiert. Eifach
mal suchen.

von Lattice User (Gast)


Lesenswert?

Sigi schrieb:

>
> Die Leistungsaufnahme der IOs kann auch stark von der Konfiguration
> der IO-Zellen abhängen: Unbenutzte Pins sich selbst zu überlassen
> kann zu wesentlich höheren Wärmeentwicklung sorgen, bei sehr vielen
> unbenutzten Pins kann der FPGA sogar extrem heiss laufen oder gar
> kaputt gehen.

Unnötige Panikmache.
Unbenutzte IOs werden sowohl bei Lattice als auch bei Xilinx (und ich 
wette bei allen anderen auch) als Input mit weak Pullup oder Pulldowns 
konfiguriert, da passiert nichts böses.


>
> Das Thema wird hier im Forum alle zig Monate mal diskutiert. Eifach
> mal suchen.

von Bernd S. (Gast)


Lesenswert?

bei Xilinx (zumindest Spartan 6) kann man konfigurieren was mit 
ungenutzten IOs passiert. Man kann sie auch bei Bedarf floaten lassen. 
(nicht zu empfehlen)

Für Xilinx gibt es verschiedene Methoden für die Leistungsabschätzung, 
ein Excel-Tool für die ungefähre Abschätzung, hier gibt man die 
Auslastung der FPGA-Komponenten ein, LUTs, Takte, IOs, RAM usw.

Im ISE gibt es dann auch noch den Power Estimator der für ein fertiges 
Design die Leistung abschätzt.

Für Lattice gibt es wie schon erwähnt im Diamond auch ein Abschätztool 
für fertige Designs, welches aber meines Wissens auch manuell mit 
Fülldaten benutzt werden kann.

Für Spartan 6 und Lattice ECP3 habe ich mich sehr umfangreich mit dem 
Thema auseinandergesetzt. Die Quintessenz war, dass die Chips eine sehr 
große Streuung aufweisen was die Verlustleistung angeht. Speziell ein 
Problem stellt die exponentiell anwachsende Verlustleistung bei 
steigender Temperatur dar. Steigende Temperatur führt zu höheren 
Leckströmen, was wiederum zu steigender Temperatur führt, also ein 
Teufelskreis.

Die Tools von Xilinx und Lattice werfen bei worst case Einstellung die 
Verlustleistung eines sehr schlechten Exemplars aus. Im Normalfall ist 
die Verlustleistung also wesentlich geringer, das gilt vor allem für 
hohe Temperaturen wo schlechte Chips extrem hohe Verlustleistungen 
aufweisen.

Bei mir ging es vor allem um die Auslegung der Stromversorgung und um 
das Thema Kühlung...

von J. S. (engineer) Benutzerseite


Lesenswert?

Wo es einen grossen Leistungsbedarf und damit Einsparungspotenzial gibt, 
sind die Taktnetze. Die kosten pauschal schon mal Leistung, egal ob da 
viele oder wenige FFs dranhängen. Daher sollte man möglichst wenige 
unterschiedliche Takte nehmen (fragt sich natürlich, ob man da grosse 
Wahl hat) und so niedrig wie möglich takten. Eine geringe Taktfrequenz 
entspannt auch das Design, erfordert weniger Extra-FFs.

Im Einzelfall ist es daher so, dass es sich lohnen kann, doch wieder 
einen Takt mehr einzuführen, um eine externe Quelle zu sampeln und dann 
intern runter zu gehen, um parallel zu arbeiten. Oft gibt es die 
Möglichkeit mit einem doppelt instanziierten langsamen Schaltwerk lokal 
dieselbe Datenrate zu schaffen und damit das Design auf die geringe 
Gesamtfrequnz zu bekommen. Kommt halt drauf an.

Was man tun kann, power safe FPGAs zu verwenden. Die sind 
Schaltungstechnisch schon so ausgelegt, dass sie beim Schalten weniger 
Strom verbrauchen, zu Lasten der Geschwindigkeit.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.