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)
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".
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.
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,
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?
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.
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.
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.
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 :)
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.