Forum: FPGA, VHDL & Co. FPGA-Areale temporär abschalten


von Berndt Eggebrecht (Gast)


Lesenswert?

Ich habe ein Design, in dem je nach Option unterschiedliche 
Verarbeitungen laufen und möchte dafür sorgen, dass nur die Bereich 
aktiv sind, die auch gebraucht werden. Wie erreicht man es am 
Einfachsten, die Bereiche gar nicht erst arbeiten zu lassen?

Wenn z.B. eine bestimmte Datenkonstellation auftritt, muss eine 
bestimmte Filterung nicht durchgeführt werden. Daher würde ich den Takt 
gerne abschalten, wenn solche Konstellationen auftreten, was zu 30% der 
Fall ist.

In Summe sind von den Bearbeitungsoptionen überhaupt nur rund 30%-40% 
aktiv. Daher würde ich gerne die Leistung dafür wegsparen.

(Der FPGA wird momentan ziemlich warm)

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Berndt Eggebrecht schrieb:
> (Der FPGA wird momentan ziemlich warm)
Welches FPGA denn?

von Berndt Eggebrecht (Gast)


Lesenswert?

Das wäre noch festzulegen. Ein kostengünstiger mit richtig DSP-Funktion, 
aktueller Bauart. Gibt es FPGAs, die für Stromsparen prädestiniert sind?

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Berndt Eggebrecht schrieb:
> (Der FPGA wird momentan ziemlich warm)

Lothar M. schrieb:
> Welches FPGA denn?

Berndt Eggebrecht schrieb:
> Das wäre noch festzulegen.

Den Witz hab ich jetzt nicht so recht verstanden...

von Sigi (Gast)


Lesenswert?

Berndt Eggebrecht schrieb:
> Ich habe ein Design, in dem je nach Option unterschiedliche
> Verarbeitungen laufen und möchte dafür sorgen, dass nur die Bereich
> aktiv sind, die auch gebraucht werden. Wie erreicht man es am
> Einfachsten, die Bereiche gar nicht erst arbeiten zu lassen?

Dazu muss du nur ein Enable/ClockEnable-Signal
verwenden. Wird dies konsequent in der gesamten
Logik eines Bereichs verwendet, dann werden nur
die Signale des Eingangs-LUTs verändert, der
Rest ändert sich nicht und bleibt damit "inaktiv".

von Da D. (dieter)


Lesenswert?

Sigi schrieb:
> Dazu muss du nur ein Enable/ClockEnable-Signal
> verwenden. Wird dies konsequent in der gesamten
> Logik eines Bereichs verwendet, dann werden nur
> die Signale des Eingangs-LUTs verändert, der
> Rest ändert sich nicht und bleibt damit "inaktiv".

Noch besser: Du schaltest einfach den entsprechenden Clock für den 
ungenutzen Bereich ganz ab. Denn der Clocktree an sich verbrauch auch 
schon ne Menge Leistung. Das kann eigentlich jedes FGPA, Detail findest 
du um Device Handbock des konkreten Typs.

von Fpgakuechle K. (Gast)


Lesenswert?

Da D. schrieb:

> Noch besser: Du schaltest einfach den entsprechenden Clock für den
> ungenutzen Bereich ganz ab. Denn der Clocktree an sich verbrauch auch
> schon ne Menge Leistung. Das kann eigentlich jedes FGPA, Detail findest
> du um Device Handbock des konkreten Typs.

Nunja inzwischen sind die FPGA's so komplex das deren "Handbook" in 
mehrere Dokumente aufgeteilt ist. Für die aktuellen Xilinx-FPGAs ist 
dieses das passende zu deiner Frage: 
http://www.xilinx.com/support/documentation/user_guides/ug472_7Series_Clocking.pdf

auf S.36 werden die clockbuffer beschrieben. Mit dem CE Pin kannst du 
den jeweiligen Takt abschalten.

Auch bei anderen FPGA's solltest du deine Siche mit dem keyword 
"Clocking resources" fokussieren.

MfG,

von Fpgakuechle K. (Gast)


Lesenswert?

Berndt Eggebrecht schrieb:
> Ein kostengünstiger mit richtig DSP-Funktion,
> aktueller Bauart. Gibt es FPGAs, die für Stromsparen prädestiniert sind?

Xilinx hat die L-Typen: 
http://www.xilinx.com/support/documentation/data_sheets/ds181_Artix_7_Data_Sheet.pdf 
S.1 erster Abschnitt.

Was Du mit richtigen DSP-Funktionen meinst, mußt du noch genauer 
beschreiben. Bei Xilinx gibt es die DSP slices die aus Schaltungstechnik 
wie sie für Filterfunktionen gevraucht wird (Multiplizierer, Adder, 
Akku, ..) bestehen.
Ob diese in der Bitbreite, Pipelining und max. Frequenz deinen 
Anforderungen genügen, musst du selbst evaluieren:
http://www.xilinx.com/support/documentation/user_guides/ug479_7Series_DSP48E1.pdf

MfG,

von Berndt Eggebrecht (Gast)


Lesenswert?

Magnus M. schrieb:
> Den Witz hab ich jetzt nicht so recht verstanden...

D.h. einfach, daß die Auswahl noch nicht erfolgt ist. Ich nehme an, es 
läuft auf Cyclone oder Artix hinaus.

Sigi schrieb:
> Dazu muss du nur ein Enable/ClockEnable-Signal
> verwenden.

Da ist schon so ziemlich realisiert. Wobei clock-enable dadurch 
angedacht ist, dass ich mit Clock-MUX die Takte wegnehme.

Fpga K. schrieb:
> auf S.36 werden die clockbuffer beschrieben. Mit dem CE Pin kannst du
> den jeweiligen Takt abschalten.

So ungefähr ist das gedacht, ja.

Fpga K. schrieb:
> Xilinx hat die L-Typen:

Wow! Das war mir bisher entgangen. Prima! Dann wäre Artix wohl die erste 
Wahl.

Gibt es Erfahrungen, was die im Vergleich zu z.B. den Vorgängern sparen 
können?

von Dussel (Gast)


Lesenswert?

Berndt Eggebrecht schrieb:
> Magnus M. schrieb:
>> Den Witz hab ich jetzt nicht so recht verstanden...
>
> D.h. einfach, daß die Auswahl noch nicht erfolgt ist. Ich nehme an, es
> läuft auf Cyclone oder Artix hinaus.
Das heißt, es ist noch nicht entschieden, welches FPGA warm wird, es ist 
nur schon festgelegt, dass es warm wird.
Darauf bezog sich die Frage.

von Berndt Eggebrecht (Gast)


Lesenswert?

Dussel schrieb:
> Das heißt, es ist noch nicht entschieden, welches FPGA warm wird, es ist
> nur schon festgelegt, dass es warm wird.
> Darauf bezog sich die Frage.

Achso, der FPGA der derzeit zum testen verwendet wird, ist ein Cyclone 
IV. Ein ähnliches Design, dass in einer konkurrenten Baugruppe läuft, 
benutzt einen Spartan6. Alle brauchten bisher Kühlkörper.

Der FPGA ist durch die Wärme allerdings nicht wirklich bedroht, nur 
haben wir eine enges Temperaturfenster. Die Restelektronik darf nicht zu 
sehr geheizt werden. Wenn man da 5 Grad einsparen könnte, würde es sehr 
helfen.

von Christian R. (supachris)


Lesenswert?

Die 7er Serie von Xilinx macht doch das Clock Gating bei Stromspar 
Einstellung im Vivado schon von sich aus ganz gut wenn man das 
entsprechend der Doku beschreibt. Im Wesentlichen mit Clock Enable an 
den FlipFlips. Dazu muss man erst mal nicht selber den Takt abschalten. 
Fur erhöhte Anforderungen reicht es vielleicht nicht, aber kannst du ja 
erst mal testen.

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Dussel schrieb:
> Berndt Eggebrecht schrieb:
>> Magnus M. schrieb:
>>> Den Witz hab ich jetzt nicht so recht verstanden...
>>
>> D.h. einfach, daß die Auswahl noch nicht erfolgt ist. Ich nehme an, es
>> läuft auf Cyclone oder Artix hinaus.
> Das heißt, es ist noch nicht entschieden, welches FPGA warm wird, es ist
> nur schon festgelegt, dass es warm wird.
> Darauf bezog sich die Frage.

Danke an Bernd und Dussel für die Aufklärung :)

von Berndt Eggebrecht (Gast)


Lesenswert?

Christian R. schrieb:
> Die 7er Serie von Xilinx macht doch das Clock Gating bei Stromspar

Klingt gut.

von Christian R. (supachris)


Lesenswert?

Berndt Eggebrecht schrieb:
> Christian R. schrieb:
> Die 7er Serie von Xilinx macht doch das Clock Gating bei Stromspar
>
> Klingt gut.

Schau dir mal die xapp790 und das wp389 von Xilinx an.

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.