www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Leistungsaufnahme abschätzen


Autor: Steffen Hausinger (steffenh)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich dimensioniere gerade die Spannungsversorgung meiner FPGA-Schaltung. 
Von Xilinx gibt es zur Unterstützung ja das Tool XPower, mit dem ich mir 
aus meinem Design komfortabel die spätere Leistungsaufnahme abschätzen 
lassen kann. Das habe ich gemacht, allerdings überrascht mich das 
Ergebnis.

Obwohl ich meinen Chip (Spartan 3E, 500K), wie ich finde, schon recht 
ordentlich nutze, komme ich auf lediglich 171 mW Leistungsaufnahme 
(siehe Anhang). Trotz einer Berechnung nach Worst Case! Ich bin immer 
davon ausgegangen, dass FPGAs den Stromzähler ordentlich zum Drehen 
bringen. Erst recht den Xilinx Bausteinen wird dies nachgesagt. Aber 171 
mW sind bei bspw. 5 V Versorgung keine 35 mA!

Mein Design ist noch nicht ganz fertig und ich möchte mir mit den 
zukünftigen Erweiterungen keinen Stolperstein in den Weg legen. Was also 
sind die größten Stromfresser in einem FPGA? Mein Design kann 
glücklicherweise auf einem niedrigen Takt laufen (50 MHz) - ist das der 
Grund für die niedrige Leistungsaufnahme? Welche Erweiterung würde die 
Leistung in die Höhe schnellen lassen?

Grüße
Steffen

Autor: Fritz Jaeger (fritzjaeger)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Steffen Hausinger schrieb:
> Hallo zusammen,
>
> ich dimensioniere gerade die Spannungsversorgung meiner FPGA-Schaltung.
> Von Xilinx gibt es zur Unterstützung ja das Tool XPower, mit dem ich mir
> aus meinem Design komfortabel die spätere Leistungsaufnahme abschätzen
> lassen kann. Das habe ich gemacht, allerdings überrascht mich das
> Ergebnis.
>
> Obwohl ich meinen Chip (Spartan 3E, 500K), wie ich finde, schon recht
> ordentlich nutze, komme ich auf lediglich 171 mW Leistungsaufnahme
> (siehe Anhang). Trotz einer Berechnung nach Worst Case! Ich bin immer
> davon ausgegangen, dass FPGAs den Stromzähler ordentlich zum Drehen
> bringen. Erst recht den Xilinx Bausteinen wird dies nachgesagt. Aber 171
> mW sind bei bspw. 5 V Versorgung keine 35 mA!
>
> Mein Design ist noch nicht ganz fertig und ich möchte mir mit den
> zukünftigen Erweiterungen keinen Stolperstein in den Weg legen. Was also
> sind die größten Stromfresser in einem FPGA? Mein Design kann
> glücklicherweise auf einem niedrigen Takt laufen (50 MHz) - ist das der
> Grund für die niedrige Leistungsaufnahme? Welche Erweiterung würde die
> Leistung in die Höhe schnellen lassen?
>
> Grüße
> Steffen

Deine 35 IOs Pins machen ja so gut wie nichts, bei weniger als 100 
mikroWatt pro pin, können da ja nichtmal LED's treiben. Ist das 
realistisch? Oder hast du da bei der Berechnung die Ausgänge zu niedrig 
angesetzt?

MfG

Autor: Steffen Hausinger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fritz Jaeger schrieb:
> Oder hast du da bei der Berechnung die Ausgänge zu niedrig
> angesetzt?

Also ich habe da gar nichts angesetzt. Ich habe nur die Constraints 
eingestellt, die stehen allerdings allesamt auf 12 mA (Standard), den 
Rest hat XPower gemacht.

Es war mir aber klar, dass bei der niedrigen Aufnahme der Output-Strom 
nicht schon mit einberechnet sein kann. Trotzdem finde ich den Wert sehr 
niedrig. Da hier aber noch niemand die Hände über den Kopf 
zusammengeschlagen hat, kann ich wohl davon ausgehen, dass er dennoch 
realistisch ist?

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Steffen Hausinger schrieb:
> Obwohl ich meinen Chip (Spartan 3E, 500K), wie ich finde, schon recht
> ordentlich nutze
Was ist darauf implementiert?

> Mein Design kann glücklicherweise auf einem niedrigen Takt laufen
> (50 MHz) - ist das der Grund für die niedrige Leistungsaufnahme?
Es kommt sehr darauf an, wieviele FFs gleichzeitig schalten. Wenn du da 
"nur" LEDs ansteuerst, und das nur mit einem langsamen Zähler, dann 
bekommst du keine nennenswerte dynamische Stromaufnahme...

> Ich bin immer davon ausgegangen, dass FPGAs den Stromzähler ordentlich
> zum Drehen bringen.
Naja, wir wohnen ja auch nicht mehr mit unseren Ziegen in 
Natursteinhöhlen. Die Technik entwickelt sich eben weiter...

Autor: Steffen Hausinger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lothar Miller schrieb:
> Was ist darauf implementiert?

Ein Protokollstack, ein ROM-Emulator, ein CAN-Interface und jede Menge 
Logik dazwischen. Ziemlich viel also - so kommt es mir zumindest vor (es 
ist ja noch mein erstes Projekt).

Lothar Miller schrieb:
> Es kommt sehr darauf an, wieviele FFs gleichzeitig schalten.

Ich vermute, dass das nicht besonders viele sein werden. Die meisten 
sicherlich beim ROM-Emulator.

Lothar Miller schrieb:
> Naja, wir wohnen ja auch nicht mehr mit unseren Ziegen in
> Natursteinhöhlen. Die Technik entwickelt sich eben weiter...

Die Ansprüche aber auch ;-) Und ich finde es trotzdem sehr wenig.



Grundsätzlich brauche ich nur eine Einschätzung, ob die 
Leistungsaufnahme ungefähr hinkommen könnte oder ob XPower sich da gerne 
mal vertut. Es wäre auch schön abschätzen zu können, ob meine noch 
ausstehenden Erweiterungen das Blatt nochmal wenden. Ich nehme aus 
Deinem Posting mit, dass "gleichzeitig schaltende FFs" da das Stichwort 
ist.

Warum ist auf dem Eval-Board denn ein TPS75003 drauf, der 3A auf der 
1,2V Schiene kann? Ist der nun völlig überdimensioniert für das Board 
oder kommt man je nach Design tatsächlich in diese Regionen?

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Steffen Hausinger schrieb:
> Und ich finde es trotzdem sehr wenig.
Was bekommst du denn, wenn du auf "Confidence Level" clickst?

Autor: Steffen Hausinger (steffenh)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lothar Miller schrieb:
> Was bekommst du denn, wenn du auf "Confidence Level" clickst?

Diesen Knopf kann ich nicht finden. In der Hilfe steht auch nichts dazu. 
Kann es sein, dass er erst in den neueren Versionen zu finden ist? Ich 
verwende ISE 11.1. ...

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich verwende ISE 12.1 ...
Hast du deine (Timing-)Constraints zur Analyse mit angegeben?

Autor: Fritz Jaeger (fritzjaeger)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Steffen Hausinger schrieb:
> Fritz Jaeger schrieb:
>> Oder hast du da bei der Berechnung die Ausgänge zu niedrig
>> angesetzt?
>
> Also ich habe da gar nichts angesetzt. Ich habe nur die Constraints
> eingestellt, die stehen allerdings allesamt auf 12 mA (Standard), den
> Rest hat XPower gemacht.
>
> Es war mir aber klar, dass bei der niedrigen Aufnahme der Output-Strom
> nicht schon mit einberechnet sein kann. Trotzdem finde ich den Wert sehr
> niedrig. Da hier aber noch niemand die Hände über den Kopf
> zusammengeschlagen hat, kann ich wohl davon ausgehen, dass er dennoch
> realistisch ist?

Also Deine Zahlen oben sind nicht für den Vcco (IO-Treiber) und nicht 
für Vccaux sondern nur für Vcccore?! Dann ist das natürlich nicht der 
Gesamtverbrauch des FPGA;s. BTW, in vielen designs verbrauchen die 
Hi-Speed IO (z.B. PCIe, meherer GBit/s) einen bedeutenden Anteil der 
Gesamtleistung.
MfG

Autor: Fritz Jaeger (fritzjaeger)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Steffen Hausinger schrieb:
> Lothar Miller schrieb:
>> Was ist darauf implementiert?
>
> Ein Protokollstack, ein ROM-Emulator, ein CAN-Interface und jede Menge
> Logik dazwischen. Ziemlich viel also - so kommt es mir zumindest vor (es
> ist ja noch mein erstes Projekt).
>
> Lothar Miller schrieb:
>> Es kommt sehr darauf an, wieviele FFs gleichzeitig schalten.

Die "heisseste" Schaltung die man in einem FPGA aufbauen kann ist ein 
langes Schieberegister aus (möglichst allen) FF's. und das erste FF's 
wechselt im jedem Takt seinen Wert (Toggle-FF, D <= not Q). Damit habe 
ich bei einem FPGA der sonst anständig mit Datenverarbeitung 
beschäftigt, den Leistungsverbrauch drastisch hochschnellen lassen (Temp 
+30-40 Grad).

also solange du keine breiten und tiefen Pipilinestrukturen hast, sollte 
dein Design eher von der kühlen Sorte sein. Zum Vergleich, der 32 bit 
CPU-Core microblaze ist von der kühlen Sorte, heisser ist das Auslesen 
eines 16 bit ad-wandlers mit 50 MHz, über ca 5 Filterstufen, bei 
entsprechend ungunstigen AD-Werten (wechselnd 0 und alles 1 bspw.).

>
> Ich vermute, dass das nicht besonders viele sein werden. Die meisten
> sicherlich beim ROM-Emulator.
>

> Warum ist auf dem Eval-Board denn ein TPS75003 drauf, der 3A auf der
> 1,2V Schiene kann? Ist der nun völlig überdimensioniert für das Board
> oder kommt man je nach Design tatsächlich in diese Regionen?

Vielleicht sind die 3A zur Sicherheit beim PowerUp bzw. vor der 
Konfiguration des FPGA's. Bei ungünstiger Einschaltreihenfolge zw. 
Vcccore, Vccaux und Vcco kann es zu  Querströmen ü+ber einen Ampere 
kommen, der Regler muss dann deutlich mehr verkraften als im 
Normalbetrieb nach der Konfiguration. Auch kann es vorkommen, das im 
unkonfigurierten FPGA;s intern Schaltungsteile gegeneinander treiben 
(wg. zufälligen routing). Z.B gabs beim Spartan2e da mitunter 
Überraschungen.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fritz Jaeger schrieb:
> Die "heisseste" Schaltung die man in einem FPGA aufbauen kann ist ein
> langes Schieberegister aus (möglichst allen) FF's. und das erste FF's
> wechselt im jedem Takt seinen Wert (Toggle-FF, D <= not Q).
Und zudem solltest du dann jedes der FFs auf einen Portpin herausführen 
(so viel, wie Portpins eben da sind)...

Aber dann sollte man auch die Guidelines zum Thema SSO ansehen:
http://www.xilinx.com/support/documentation/applic...
http://www.ansoft.com/converge/Xilinx_Ansoft.pdf

Autor: Steffen Hausinger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lothar Miller schrieb:
> Hast du deine (Timing-)Constraints zur Analyse mit angegeben?

Ja, wenn er sie automatisch betrachtet. Um XPower auszuführen muss ich 
die Kette bis einschließlich Place&Route ausführen. Die Constraints 
braucht er aber schon beim Map -> kennen tut er sie also.

Fritz Jaeger schrieb:
> Also Deine Zahlen oben sind nicht für den Vcco (IO-Treiber) und nicht
> für Vccaux sondern nur für Vcccore?!

Nein, sie sind für die Gesamtaufnahme. In einem anderen Menüpunkt kann 
man sich die Stromverbräuche für VCC_Core, VCC_Aux und VCC_O ansehen - 
zusammengerechnet ergibt sich die im Screenshot angegebene Leistung.

Fritz Jaeger schrieb:
> Vielleicht sind die 3A zur Sicherheit beim PowerUp bzw. vor der
> Konfiguration des FPGA's.

Guter Punkt, da muss ich bei meinem Schaltungsdesign noch drauf achten!


Lothar Miller schrieb:
> Aber dann sollte man auch die Guidelines zum Thema SSO ansehen:
Die kenne ich schon :-) Man findet in der ug393 auch sehr gute Hinweise 
zum Aufbau der Spannungsversorgung. Übrigens bin ich für solche Tipps zu 
Whitepapers etc. immer sehr dankbar!!


Also ich nehme mit, dass insbesondere viele simultan schaltende FF die 
Leistungsaufnahme erhöhen. Außerdem steigt sie zu sehr hohen Frequenzen 
deutlich an. Für mein Design können die Werte schon hinkommen, wenn 
obige Punkte bei mir nicht zutreffen. Trotzdem muss ich den 
Einschaltstrom bei der Dimensionierung beachten.


Vielen Dank für Eure Hilfe!!
Steffen

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.