Forum: FPGA, VHDL & Co. FPGA-Routing: Decoupling CAPs


von Full W. (realjey)


Lesenswert?

Hallo Forum-User,

ich "versuche" gerade meinen ersten FPGA zu routen (Cyclone IV). Habe 
mir dazu ein Reference-Design von Altium geladen (Cyclone2) und habe 
mich etwas gewundert.

Hier wird jeweils eine Plane für 3.3V (VccIO) und eine Plane für 1.2V 
(Core-Voltage) genutzt. Soweit so gut, was ich allerdings nicht ganz 
verstehe ist folgendes:

Im Design werden die VCC-Pins jeweils direkt mit den Planes verbunden 
und dann so nahe wie möglich der Decoupling-Cap gesetzt.
Ich habe bisher immer so geroutet, das ich von der Plane erst auf das 
Pad vom CAP gehe und von dort auf den Pin, da man damit soweit ich weiss 
die Filterwirkung erst wirklich herstellt. Der FPGA-Pin ist also von der 
Plane isoliert und bekommt den Kontakt erst über das Pad vom C.
Ist das Design nun einfach nicht korrekt oder ist meine bisherige 
Vorgehensweise tasächlich unnötiger Routingaufwand?

LG
fullwell

: Bearbeitet durch User
von Vanilla (Gast)


Lesenswert?

full well schrieb:
> Im Design werden die VCC-Pins jeweils direkt mit den Planes verbunden
> und dann so nahe wie möglich der Decoupling-Cap gesetzt.
> Ich habe bisher immer so geroutet, das ich von der Plane erst auf das
> Pad vom CAP gehe und von dort auf den Pin, da man damit soweit ich weiss
> die Filterwirkung erst wirklich herstellt. Der FPGA-Pin ist also von der
> Plane isoliert und bekommt den Kontakt erst über das Pad vom C.
> Ist das Design nun einfach nicht korrekt oder ist meine bisherige
> Vorgehensweise tasächlich unnötiger Routingaufwand?

Die Frage ist, um wieviel länger dein Leiterbahn wird und welche 
Induktivität Du dir damit aufbaust. So kann es durchaus kontraproduktiv 
sein sich an die reine Lehre zu halten, weil beispielsweise dann das 
Layout insgesamt verschlechtert werden müsste um alle Block-Cs zu 
platzieren.

von Full W. (realjey)


Lesenswert?

D.h. theoretisch ist meine bisherige Vorgehensweise korrekt, bei nem IC 
mit über 400 pins aber ggf. kontrakproduktiv ;)

von Christoph Z. (christophz)


Lesenswert?

full well schrieb:
> Ist das Design nun einfach nicht korrekt oder ist meine bisherige
> Vorgehensweise tasächlich unnötiger Routingaufwand?

Es geht nicht um den Routingaufwand, sondern um Physik :-)

Wenn du mit dem FPGA Pin direkt auf die Plane gehst, wirken alle 
Kondensatoren parallel. Wenn du von der Plane auf den Kondensator gehst 
du von da mit einer dünnen Leitung, dann wirkt nur gerade dieser eine 
Kondensator.

Xilinx hat ein gutes Application Note wo auch der Einfluss der 
Platzierung der Vias an den Entstörkondensatoren gezeigt wird (sie 
sollen nache beieinander sein, bei den grösseren also zwischen den 
Pads).

http://www.xilinx.com/products/design_resources/signal_integrity/resource/si_power.htm

Im speziellen: power distribution system (PDS) design and bypass 
capacitors
http://www.xilinx.com/support/documentation/user_guides/ug072.pdf


full well schrieb:
> Ich habe bisher immer so geroutet, das ich von der Plane erst auf das
> Pad vom CAP gehe und von dort auf den Pin, da man damit soweit ich weiss
> die Filterwirkung erst wirklich herstellt.

Mach das weiter so, für spezielle Pins die Analoge (oder "analogere") 
Teile des Chips versorgen, z. B. PLL, SerDes etc. So dämpfst du etwas 
Störungen von der Plane zum Pin. (Bei ADC Versorgungen etc. macht man da 
ja dann gerne eine Spule in Serie vor den Entkoppelkondensator).

von Full W. (realjey)


Lesenswert?

Danke für die Artikel!
Ja bei ADCs z.B. nehm ich C+Ferritperle+C (PI)... Bei dem FPGA seh ich 
da aber keine Chance für ;)

Andere Frage: Würdet ihr auch X2Y-caps empfehlen?

Andere Frage: In den Design-Guides findet sich folgender Absatz:

Cyclone IV devices include on-die decoupling capacitors to provide 
high-frequency decoupling. These low-inductance capacitors suppress 
power noise for excellent signal integrity performance and reduce the 
number of external PCB decoupling capacitors, saving board space, 
reducing cost, and greatly simplifying the PCB design

Aber wieviel decoupling-caps pro pin ich jetzt tatsächlich einbauen 
sollte wird hier nicht erwähnt. Habt ihr hier Erfahrung?

von J. S. (engineer) Benutzerseite


Lesenswert?

Hängt vom Strom ab und deinen Anforderungen an die Güte der 
Schaltfunktionalität der Ausgänge.

Was die Diskrepanz der eingangs genannten Beschaltungsarten angeht, 
liefert Dir die erste bessere Werte in Sachen kapazitivem Strom, ist 
also besser für den FPGA, die von Dir vermutete Methode ist besser in 
Sachen EMV, also günstiger für die Landschaft, in der Du den Strahler 
betreibst.

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


Lesenswert?

full well schrieb:
> Aber wieviel decoupling-caps pro pin ich jetzt tatsächlich einbauen
> sollte wird hier nicht erwähnt. Habt ihr hier Erfahrung?
Faustformel: 10nF 0402 pro VCC-GND Pärchen direkt an den Pins (max. 2mm 
Abstand), dazu 1x 100nF pro 5 Versorgungspärchen in der unmittelbaren 
Nähe (5mm), dann noch 1uF Kerko und 10uF Tantal pro Spannung beim FPGA 
(1-2cm). Und wenn der Platz ausgeht: Versorgungen zu Planes 
zusammenfassen und möglichst viele der obigen Kondensatoren einbauen...

von Christoph Z. (christophz)


Lesenswert?


von Fpgakuechle K. (Gast)


Lesenswert?

full well schrieb:

> Aber wieviel decoupling-caps pro pin ich jetzt tatsächlich einbauen
> sollte wird hier nicht erwähnt. Habt ihr hier Erfahrung?

bei xilinx wird das sehr genau fpga -spezifisch angegeben:
http://www.xilinx.com/support/documentation/user_guides/ug393.pdf S. 
13ff

Ich glaube das die anzahl gleichzeitig schaltenden outputs eine 
Abschätzung der Anzahl der bypass Caps erlaubt, schau mal nach 
"Simultaneous Switching Outputs" in den Altera docs.

Allerdings ist es wichtiger die caps möglichst kurz and breitbandig 
anzuschließen als möglichst viele. Es nützt wenig wenn der 
zweite/dritte/vierte Cap über eine längere Schlangenlinie verbunden ist 
weil der erste Cap den Platz um das pad blockiert. Dann besser nr zwei 
und drei weglassen. Es gibt auch BGA-pin -layouts bei den die caps 
direkt auf die vias von Vcc-GND Päarchen gesetzt werden. Also nur einer 
aber den so kurz wie möglich.

MfG,

von Michael (Gast)


Lesenswert?

Hallo,

was ich mich frage ist ob das so wirklich richtig ist.

http://www.lothar-miller.de/s9y/categories/14-Entkopplung

Stromverbrauchsspitzen durch interne Schaltvorgänge werden so ja schön 
durch den Kondensator abgefangen und belasten die Groundplane nicht. Was 
passiert aber mit HF Strömen die aus den IO Pins hinein und 
herausfließen? Diese Ströme haben hier doch einen ungünstig langen 
Rückweg.

MfG

Michael

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


Lesenswert?

Michael schrieb:
> Was passiert aber mit HF Strömen die aus den IO Pins hinein und
> herausfließen? Diese Ströme haben hier doch einen ungünstig langen
> Rückweg
Zu jedem Hinweg muss auch ein Rückweg existieren. Idealerweise ist der 
deckungsgleich in der Masselage darunter. Sonst muss der Strom einen 
Umweg nehmen und es bildet sich eine Leiterschleife und zudem gibt es 
einen Impedanzsprung im Signalpfad.

> was ich mich frage ist ob das so wirklich richtig ist.
Es gibt hier kein Schwarz und Weiß. Man wird immer das eine gegen das 
Andere aufwiegen müssen. Der EMV-Prüfer wird mit blick auf die 
Störstrahlung über die Versorgung sagen: mach es so wie es beim Lothar 
steht. Der Signalintegritäts-Spezi wird sagen: sieh zu, dass jedes 
Signal seinen eigenen Rückstrompfad hat.
Und der Layouter muss sich irgendwo dazwischen bewegen. Aber es ist 
unbedingt hilfreich, wenn man die Wirkmechanismen kennt und 
berücksichtigen kann.

Deshalb gibt es ja auch den schönen Thread, wo ausführlich über diese 
Sache diskutiert wird:
Beitrag "Abblockkondensatoren, wie routen?"
Und dann noch den hier zum Thema Masseflächen:
Beitrag "Massefläche - Wie macht man's richtig?"

: Bearbeitet durch Moderator
von Michael (Gast)


Lesenswert?

Die Masse für die IO Signale benötigt man doch nicht nur für die 
Signalintegrität. Die Schleife bei den IO Signalen strahlt auch EMV ab.
Meiner Ansicht nach ist praktisch jede absichtliche Trennung von Massen 
kontraproduktiv. Wenn man wirklich Massen trennt muss man genau wissen 
was man tut und in der Schaltung entsprechende Maßnahmen treffen.

MfG

Michael

von Full W. (realjey)


Lesenswert?

Lothar Miller schrieb:
> full well schrieb:
>> Aber wieviel decoupling-caps pro pin ich jetzt tatsächlich einbauen
>> sollte wird hier nicht erwähnt. Habt ihr hier Erfahrung?
> Faustformel: 10nF 0402 pro VCC-GND Pärchen direkt an den Pins (max. 2mm
> Abstand), dazu 1x 100nF pro 5 Versorgungspärchen in der unmittelbaren
> Nähe (5mm), dann noch 1uF Kerko und 10uF Tantal pro Spannung beim FPGA
> (1-2cm). Und wenn der Platz ausgeht: Versorgungen zu Planes
> zusammenfassen und möglichst viele der obigen Kondensatoren einbauen...

Kurze Frage: Woher weiss ich denn welches GND-pad zu welchem VCC-pad 
gehört? :) Teilweise sind zu einem 1.2V-pin mehrere GND-pins in der 
Umgebung...einfach das GND-pad was am nächsten liegt?

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


Lesenswert?

full well schrieb:
> Kurze Frage: Woher weiss ich denn welches GND-pad zu welchem VCC-pad
> gehört? :)
Leider sagt dir der Chiphersteller das nicht. Diese Information bekommen 
bestenfalls gute Kunden und große Abnehmer...

Deshalb bleibt dir nur die zweitbeste Lösung:
> ...einfach das GND-pad was am nächsten liegt?

von no name (Gast)


Lesenswert?

Hm, ich überlege gerade, ob man das nicht rausfinden kann. Wenn man die 
VCCs bankweise abschaltet und die Wirkung beobachtet, müsste sich das 
doch mit hoher Wahrscheinlichkeit klären lassen. oder?

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.