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!
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.
Vielen Dank für die vielen guten Informationen! Das Diamond einen Power Calculator hat habe ich total übersehen...
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.
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.
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...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.