Hallo,
ich habe eine Frage zur maximal möglichen Auslastung bzw.
Leistungsausnutzung eines FPGA.
Angenommen, ich habe eine komplexe Schaltung in einem FPGA, die dessen
Logikkapazität optimal ausnutzt, also die vorhandenen LUTs zu ca. 60%
und auch weitere logische Blöcke möglichst ausnutzt. Z.B. ein komplexer
Prozessorkern oder etwas in der Art.
Zur maximalen Leistungsausnutzung ist es wohl wünschenswert, eine
möglicht hohe, optimale Taktfrequenz zu verwenden. Hier sind natürlich
Grenzen gesetzt, die man ausloten möchte.
Ist es richtig, dass bei den "größeren" FPGA Modellen, also solchen, mit
größerem Logikvolumen, die Grenzen eher durch die thermische
Belastbarkeit gesetzt werden, wobei man hier bei Last mittels Kühlkörper
und Lüfter die Wärme abführen muß während bei den "kleinen" Modellen die
entstehende Wärme kein Thema ist, sondern hier setzen die
Gatterlaufzeiten die ausnutzbaren Grenzen, die durch den FPGA gesetzt
werden?
Also so ein kleineres Modell wäre z.B. der Spartan 6 LX16 von meinem
ExBoard.
Vielen Dank für Eure Hinweise & Antworten auf meine Frage.
Beste Grüße,
Norbert
Also termische Probleme sind eher untergeordnet. Wenn ein FPGA gut
gefüllt ist, also über 80% wird es für das place&route immer aufweniger
und die maximale Taktrate sinkt.
Nun es gibt schon Fälle, in denen die Thermik die Grenze setzt. Bei
bestimmten Anforderungen im erweiterten Temperaturbereich hat der FPGA
nicht mehr viel Reserve als Stromfresser Nummer 1.
Norbert schrieb:> Ist es richtig, dass bei den "größeren" FPGA Modellen, also solchen, mit> größerem Logikvolumen, die Grenzen eher durch die thermische> Belastbarkeit gesetzt werden, wobei man hier bei Last mittels Kühlkörper> und Lüfter die Wärme abführen muß während bei den "kleinen" Modellen die> entstehende Wärme kein Thema ist, sondern hier setzen die> Gatterlaufzeiten die ausnutzbaren Grenzen, die durch den FPGA gesetzt> werden?
Also wenn größere FPGA's größeres package meint, dann stimmt das eher
nicht da mehr oberfläche und pins zur Wärmeableitung zur Verfügung
stehen. Je kleiner der IC desto höher das Risiko des Verglühens (nach
meiner Erfährung). Ferner kann es sein, das wegen der zunehmenden Länge
der Routing-Kanäle, die Signallaufzeit auf größeren Dies höher ist als
auf kleinen. (Aber das ist stark vom Chip-layout abhängig).
Und wenn kleines FPGA's in kompakten Geräten (Plattenstapel) verbaut
werden dann erhöht sich das thermische Problem nochmal gegenüber großen
FPGA's die in luftigen Racks stecken.
Thermik kann immer zum Problem werden, also mit Wachsen des designs
regelmäßig überprüfen und von anfang an gegenmassnahmen für ein worst
case szenario einplanen (Platz für Lüfter/heat sink einrechnen,
Stromsparmöglichkeiten identifizieren).
MfG,
Aber eigentlich müßte, bei gleicher Integrationsdichte, doch die Anzahl
der logischen Elemente den Grad der Wärmeentwicklung im Wesentlichen
beeinflussen. Wenn ich z.B. eine Million aktive LUTs habe und diese mit
200MHz takte, muß die Wärmeentwicklung um den Faktor 100 höher sein als
z.B. bei 10000 LUTs, die mit der selben Frequenz getaktet werden. Die
Gehäusegröße und -form hat natürlich auch einen Einfluß aber der müßte
(ohne Kühlkörper) eigentlich eher unwesentlich sein.
Daher nochmal meine konkrete Frage an die Experten. Ist es so, dass bei
FPGAs mit kleinem Logikvolumen keine thermische Belastung entstehen kann
weil man hier längst an die Grenzen der Gatterlaufzeit stößt bevor sich
ein thermisches Problem entwickeln kann während bei "großen" FPGAs, also
solchen mit recht großem Logikvolumen bei einem entsprechenden Füllgrad
die Wärmeableitung bei hohen Taktfrequenzen eine wesentliche Rolle
spielt und hier wesentlich eher die Grenzen für hohe Taktfrequenzen
setzt?
Soweit mir bekannt, gibt es in den Strukturen der Hardware keine
Unterschiede zwischen den verschieden großen FPGAs eines bestimmten Typs
(z.B. Spartan 6) von einem bestimmten Hersteller. Also müßte
hauptsächlich die Anzahl der verwendeten Logikelemente der wesentliche
und ausschlaggebende Faktor für eine Erwärmung sein.
klar is (deutlich!) mehr drin!
Wirst nicht drum herum kommen, den Timing-Analyzer anzuwerfen und
nachzusehen, wo
- DU zu viele "Logic Levels" zwischen den FF-Stufen hast
oder
- MAP/PAR (ggf. auf Grund Deiner Pin-Vorgaben o.ä.) zu viel
Routing-Delay hat
Norbert schrieb:> Aber eigentlich müßte, bei gleicher Integrationsdichte, doch die Anzahl> der logischen Elemente den Grad der Wärmeentwicklung im Wesentlichen> beeinflussen. Wenn ich z.B. eine Million aktive LUTs habe und diese mit> 200MHz takte, muß die Wärmeentwicklung um den Faktor 100 höher sein als> z.B. bei 10000 LUTs, die mit der selben Frequenz getaktet werden. Die> Gehäusegröße und -form hat natürlich auch einen Einfluß aber der müßte> (ohne Kühlkörper) eigentlich eher unwesentlich sein.
Dynamische Power ist nur ein teil der abzuführenden leistung, Leckströme
haben auch Anteil. Ebenso verbraten die IO's einen nicht unwesentlichen
teil und ein FPGA mit 100 mehr benutzer logic hat selten 100 mal mehr
IO's
und bei gleicher technologie bleibt die energiedichte (heizer pro um*um)
gleich.
> Daher nochmal meine konkrete Frage an die Experten. Ist es so, dass bei> FPGAs mit kleinem Logikvolumen keine thermische Belastung entstehen kann> weil man hier längst an die Grenzen der Gatterlaufzeit stößt bevor sich> ein thermisches Problem entwickeln kann während bei "großen" FPGAs, also> solchen mit recht großem Logikvolumen bei einem entsprechenden Füllgrad> die Wärmeableitung bei hohen Taktfrequenzen eine wesentliche Rolle> spielt und hier wesentlich eher die Grenzen für hohe Taktfrequenzen> setzt?
Spiel doch mal mit dem Powerestimator
(http://www.xilinx.com/support/documentation/sw_manuals/xilinx13_4/ug786_PowerMethodology.pdf)
und berichte dann von deinen Ergebnissen.
MfG
Dude schrieb:> klar is (deutlich!) mehr drin!>> Wirst nicht drum herum kommen, den Timing-Analyzer anzuwerfen und> nachzusehen, wo> - DU zu viele "Logic Levels" zwischen den FF-Stufen hast> oder> - MAP/PAR (ggf. auf Grund Deiner Pin-Vorgaben o.ä.) zu viel> Routing-Delay hat
Das sollte wohl an den anderen Norbert-Thread:
Beitrag "Spartan XC6SLX16, bei 100MHz schon Ende der Fahnenstange?"
MfG,
Norbert schrieb:> Ist es so, dass bei> FPGAs mit kleinem Logikvolumen keine thermische Belastung entstehen kann
Sehe ich auch so. In einen kleinen Spartan 3A kriegt keiner viel Logik
rein, um ihn zu grillen und schnell taktet der auch nicht.
E. M. schrieb:> Norbert schrieb:>> Ist es so, dass bei>> FPGAs mit kleinem Logikvolumen keine thermische Belastung entstehen kann> Sehe ich auch so. In einen kleinen Spartan 3A kriegt keiner viel Logik> rein, um ihn zu grillen und schnell taktet der auch nicht.
Grillen ist keine Frage der kombinatorik sondern der togglerate.Eines
der "heißesten " Designs kommt mit überschand wenig Kombinatorik aus:
Alle FF als D-FF hintereinanderschalten und das erste als Toggle-FF
betreiben. Dann 100 MHz an den Takt und das Thermoter steigen sehen wie
der Schuldenstand Griechenlands. Wer noch eins trauf setzen will häng
noch die LUT#s als SRL16 rein. Viel-Logik Designs sind eher langsam, da
viele Routingresourcen benötigt werden, kleine 8 bit cores takten meist
schneller oder genaus schnell wie 32bit cores.
MfG,
Fpga Kuechle schrieb:> Grillen ist keine Frage der kombinatorik sondern der togglerate.Eines> der "heißesten " Designs kommt mit überschand wenig Kombinatorik aus:
Das würde also bedeuten, ich kann auch den kleinen XC6SLX16 von meinem
Experimentierboard verheizen wenn ich nicht vorsichtig bin?
Gut, sowas zu wissen. Im Handbuch vom Nexys3 steht diesbezüglich
keinerlei Warnung. Das finde ich schon bedenklich.
Mit dem Bitcoin Miner Code konnte ich dem FPGA übrigens nicht sonderlich
einheizen. Das Design hat ihn trotz grenzwertiger Taktrate noch
überraschend kalt gelassen. Allerdings kam ich auch "nur" bis 100MHz.
Mehr ist wohl nur mit händischen Optimierungen noch drin.
Du kannst jeden Halbleiter grillen, wenn Du ihn rasch genug schaltest
und nicht genügend kühlst. FPGAs sind hochdicht gepackt, wundert mich
also nicht.
Schon ein kleines LX9 FPGA was ich hier habe wird mit einem recht
einfachen und nicht sonderlich hoch getakteten Design nach ner Weile
grob 44°C warm (bei 25°C Umgebungstemp).
Kann mir gut vorstellen dass das richtig heiss wird wenn man da so ne FF
Kaskade @maximaltakt reinbaut...
Norbert schrieb:> Fpga Kuechle schrieb:>> Grillen ist keine Frage der kombinatorik sondern der togglerate.Eines>> der "heißesten " Designs kommt mit überschand wenig Kombinatorik aus:>> Das würde also bedeuten, ich kann auch den kleinen XC6SLX16 von meinem> Experimentierboard verheizen wenn ich nicht vorsichtig bin?
Naja, so aus Versehen grillt man selten einen FPGA. Man muss den schon
richtig auslasten und trotzdem clever genug routen das eine hohe
taktrate möglich ist. Meist pasiert das wenn Cheffes 3. Sonderwunsch
realisiert wird und alles in das schicke Minigehäuse gequetscht wird in
dem die Luft steht.
Das Entwärmkonzept erkennt man erst dann als notwendig an, wenn alles in
Flammen steht.
So ein Evalboard bekommt gut Luft und ist selten ausgelastet. Und auf
dem Evalboard ist schnell der Temperaturfühler "Finger" am messobjekt,
damit spürt man Probleme ruckzuck auf.
Ist übrigens ein beliebter Eignungstest für FPGA-Entwickler:
mit einer Hand zwei Scope_tastköpfe an durchkontaktierungen fixieren und
mit dem kleinen Finger die Temperatur "überwachen" ;-)
Ich empfehle vor der Abgabe der Hardware wenigstens mal eine
Poweranalyse laufen zu lassen, die Aufschluss über die zu erwartende
Leistung gibt. Ab 1W werden die Dinger nennenswert warm, ab 3W
kühlpflichtig! Oder man sieht im ersten Design pauschal einen Kühlkörper
vor.