Forum: Platinen Mein FPGA-Board


von Gerhard (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
ich habe für ein grösseres Bastelprojekt ein FPGA-Board entworfen, 
respektive erstmal Schema gezeichnet und das ganze gelayoutet. Es ist 
nun eine 6lagige Platine geworden, und nun habe ich dazu noch ein paar 
layouttechnische Fragen.
Ich habe übrigens folgenden Lagenaufbau:

Top Layer
Ground Plane
Signal Layer 1
Signal Layer 2
VCC Plane (3.3V)
Bottom Layer

1. Da der FPGA mehrere Versorgungsspannungen benötigt (nämlich 3.3V und 
1.2V), und ich die VCC- oder GND-Fläche nur ungern unterbrechen möchte, 
habe ich einen Trick angewandt, den ich schon anderswo gesehen habe. Ich 
habe auf dem Bottom Layer unter dem FPGA einen Kupferring gemacht, der 
mit diesen 1.8V verbunden wird. Bei den entsprechenden Pins des FPGAs 
kann nun recht einfach mit einem Via auf diesen Ring zugegriffen werden. 
Die Abblock-Cs habe ich einfach direkt auf diesen 1.8V-Ring gesetzt. 
Frage: ist das schlecht, oder kann man das so machen? Ich habe rein 
zufällig vorhin hier was über diese Technik gelesen, aber die Aussagen 
waren etwas widersprüchlich.

2. Auf dem Bottom-Layer habe ich recht viele recht breite Datenbusse mit 
vielen parallel verlaufenden Leitungen. Dennoch habe ich recht viel 
Platz frei. Ich habe nun über die ganze Unterseite der Leiterplatte eine 
einzige grosse Massefläche gelegt. Macht das Sinn, oder wird mir das 
eher Probleme bereiten? Meine zu erwartenden Taktfrequenzen sind <= 100 
MHz.
Jetzt sind alle Leitungen ringsherum mit Masseflächen umgeben.
Soll ich das auf der Oberseite wenn möglich vielleicht auch gleich 
machen?

von Hendi (Gast)


Lesenswert?

Wow! Ich kann dir zwar nicht deine Frgaen beantworten aber darf ich 
dafür fragen, wie lang du dafür gebraucht hast und welches 
Layoutprogramm du verwendet hast? Das sieht alles so professionell aus !

von Roger (Gast)


Lesenswert?

Mache Split Planes. Das mit dem Ring ist ganz gut!

mfg
Roger

PS: Ist Altium Designer!

von Reinhard Kern (Gast)


Lesenswert?

Gerhard schrieb:
> 2. Auf dem Bottom-Layer habe ich recht viele recht breite Datenbusse mit
> vielen parallel verlaufenden Leitungen. Dennoch habe ich recht viel
> Platz frei. Ich habe nun über die ganze Unterseite der Leiterplatte eine
> einzige grosse Massefläche gelegt. Macht das Sinn, oder wird mir das
> eher Probleme bereiten? Meine zu erwartenden Taktfrequenzen sind <= 100
> MHz.

Hallo,

elektrisch ist das ok, aber es ist möglich, dass sich deine Platinen 
verziehen, weil die Cu-Verteilung nicht symmetrisch ist. Kann man 
auspropieren oder den Hersteller fragen, ob er das hinkriegt. Eine 
Möglichkeit wäre auch den Top Layer zu fluten, da ist ja auch viel 
freier Platz. Zuviel GND schadet nie.

Gruss Reinhard

von Gerhard (Gast)


Lesenswert?

Hallo Leute,
danke erstmal für eure Beiträge!
Allerdings muss ich noch anmerken, dass ich wohl keine Angst haben muss, 
dass sich die Platine verzieht. Ich werde sie von Hand bestücken, da 
denke ich sollte es keine Probleme geben. Später, wenn dann mehrere 
solche Teile hergestellt werden, werde ich es zwar schon bei einem 
Bestücker machen, aber erfahrungsgemäss haben die 
Leiterplattenhersteller mittlerweile den Prozess so im Griff, dass 
dieses Problem kaum mehr auftritt. Jedenfalls hatte ich in der Firma 
erst vor kurzem eine 500 x 500 mm grosse Leiterplatte gemacht, wo 
ähnlich viel Kupfer drauf war. Wellenlöten und im Reflow-Ofen war kein 
Problem, es hat sich nix verzogen.

@Roger:
Split Planes habe ich bereits; allerdings, wie gesagt, nicht für die 
1.8V für den FPGA.

@Hendi:
Roger hat recht, die Leiterplatte wurde mit Altium Designer erstellt. Am 
Layout selber hatte ich ca. 3 Wochen (ich kann nur jeweils Samstags 
etwas daran arbeiten). Für das zugehörige Schema etwas länger.

@Alle:
Also, meint ihr, man kann das mehr oder weniger Problemlos so anfertigen 
und es funktioniert dann auch ungefähr erwartungsgemäss?
Erwähnen möchte ich noch folgendes: Auf dem Top Layer seht ihr unten den 
Stecker X4, welches ein LAN Anschluss ist. Dessen Zuleitungen sind 
natürlich impedanzkontrolliert! Frage: Wenn ich nun diese zusätzliche 
Massefläche auf der Unterseite habe - hat das einen Einfluss?
Noch was: ihr seht auf dem Top und auf dem Bottom Layer jeweils oben 
links zwei bzw. eine Leitung, welche mäanderartig verlegt sind. Das sind 
Taktleitungen, welche ich so verlegt habe, dass sie exakt gleich lang 
sind. Bekomme ich keine Probleme, wenn rund um diese Taktleitungen herum 
so viele Masseflächen sind? Schliesslich bildet sich ja aufgrund der 
Isolation zwischen der Taktleitung und der Massefläche eine Kapazität, 
die ja doch schon recht gross werden dürfte, da die Leitungen eine 
gewisse Länge haben.

Ich hoffe ihr könnt mir noch ein paar Tipps geben! Vielen Dank :-)

von Rudolph (Gast)


Lesenswert?

Du hast viele Leitungen auch über längere Strecken sehr nahe zueinander 
gelegt. Mein Layouter würde sich schütteln ob des potentiellen 
Crosstalks. Meist hast Du viel Platz, da kann man die Leitungen durchaus 
mit mehr Abstand legen. Wenn Deine Altium Version eine Crosstalkanalyse 
erlaubt, würde ich die mal durchführen.

von Gerhard (Gast)


Lesenswert?

Hi Rudolph,
ja stimmt schon, dass da recht viele Leitungen beieinander sind. 
Allerdings muss ich auch sagen: Schau mal ein PC-Mainboard oder eine 
Grafikkarte an. Da sind auch ganze Adressbusse parallel verlegt, und 
offensichtlich funktioniert es. Ich habe bereits einen Prototypen dieser 
Leiterplatte hier (allerdings mit einigen Designfehlern, ausserdem ist 
nur ca. die Hälfte der ganzen Schaltung drauf). Dort habe ich den 
Adress-/Datenbus ähnlich gelayoutet, und es funktioniert.
Ich werde deinen Einwand beachten, jedoch kann ich leider keine 
Crosstalk-Analyse durchführen :-(

von Purzel H. (hacky)


Angehängte Dateien:

Lesenswert?

Mein erstes FPGA, ein ACEX mit 100MHz bei 3.3V. Ein 2 Lagiger ... unten 
auch der Ring mit C's fuer die Speisung, der Rest GND.

Wie schnell ist denn dein FPGA ?

von Gerhard (Gast)


Lesenswert?

Hi,
mein FPGA ist ein Cyclone II von Altera (Genauer: Ein EP2C8, Speedgrade 
8, also der langsamste). Der kann, laut Datenblatt, glaube ich max. 400 
MHz, aber ich werde diese maximale Geschwindigkeit sowieso nicht 
ausnützen, schon nur wegen des Stromverbrauchs (ich denke, bei 400 MHz 
reicht der 1A Spannungsregler für die 1.8V nicht mehr).

von Purzel H. (hacky)


Lesenswert?

Aha. Schoen wenn man sich die Geschwindigkeit fuer die Anwendung 
aussuchen kann... Da sollte man auch auf das feingedruckte bei Altera 
hinweisen. Der Stromverbrauch fuer eine Frequenz bezieht sich auf 10% 
schaltende Gatter. Falls es denn mehr % sich, braucht es mehr Strom.

Der Altium Designer sollte aber Kopplungen von Leitungen rechnen 
koennen...

von Gerhard (Gast)


Lesenswert?

Wie viel Strom braucht denn dein ACEX?
Ich besitze das DE2-Eval Board von Altera, und dort ist für VCCINT ein 
LM1117-Spannngsregler (800 mA max.) vorgesehen. Und es funktioniert 
problemlos. Deshalb habe ich bei meinem Design dann auch diesen LM1117 
übernommen. Für VCCIO, also 3.3V, habe ich eine wesentlich stärkere 
Stromversorgung, denn die 3.3V werden auch anderweitig benötigt. 
Insgesamt stehen auf den 3.3V 3A zur Verfügung, was wohl reichen sollte. 
VCCINT wird mit dem erwähnten LM1117 aus VCCIO erzeugt.

von Purzel H. (hacky)


Lesenswert?

Der Acex ist kaum gefuellt. Er war vor 10 Jahren der einzige, der 
bezahlbar war und diese Geschwindigkeit aufwies.
Ich lief aber spaeter mal in dieses Problem mit der zu knappen Speisung. 
Das laesst sich zum Glueck mit tieferem Clock beheben.
Was auch noch zu beachten ist, sind die offenen Eingaenge. Offene 
Eingaenge gehen in die Mitte floating und ziehen unsinning viel Strom 
aus der Speisung. Wenn man die Speisespannung in der Folge nicht mehr 
erreicht, wird umprogrammieren etwas schwierig. Daher sollte man einen 
externen Speisungsanschluss, zB ein Pad vorsehen.

von Falk B. (falk)


Lesenswert?

@  Gerhard (Gast)

>8, also der langsamste). Der kann, laut Datenblatt, glaube ich max. 400
>MHz, aber ich werde diese maximale Geschwindigkeit sowieso nicht
>ausnützen, schon nur wegen des Stromverbrauchs (ich denke, bei 400 MHz
>reicht der 1A Spannungsregler für die 1.8V nicht mehr).

Schon, aber das hat auf die HF-Entkopplung absolut KEINEN Einfluß! Denn 
die Gatter schalten IMMER mit voller Geschwindigkeit. Wenn dann das 
Layout zu schlecht ist, weil die Zuleitungen zuviel Induktivität und die 
Cs zuwenig Kapazität haben, kommt es zu Fehlfunktionen. Auch bei 1kHz 
Takt! Siehe Wellenwiderstand.

MfG
Falk

von Gerhard (Gast)


Lesenswert?

Hi Falk,
ich habe schon auf diesen Kommentar gewartet ;-)
Das ist mir absolut klar. Ich habe an jedem VCC-Pin einen 
Abblock-Kondensator. Ausserdem werde ich im Quartus II die "Drive 
Strength" oder wie das schon wieder heisst, auf "minimum" stellen, 
sodass die Flankensteilheit der Signale reduziert wird.
Mir ist bewusst, dass für die max. Leitungslänge etc. die 
Flankensteilheit massgebend ist, und nicht die Frequenz.
Erwähnen möchte ich allerdings noch, dass die Distanz zwischen dem 
Signallayer (Top oder Bottom) und dem Ground Layer 0.2mm beträgt und die 
Leitebahnen eine breite von 6 mils haben. Daraus resultiert, laut meinem 
CAD, ein Wellenwiderstand von 70 Ohm. Wenn ich jetzt noch auf dem Bottom 
Layer diese ganze Masse habe, wird der Wellenwiderstand wohl noch etwas 
sinken. Auf meinem Testboard hatte ich jedenfalls auch bei ca. 8 cm 
Leitungslänge keine Probleme (oder hatte ich einfach Glück?). Was meinst 
du denn zu dem Layout?

@hacky
Beim Cyclone II kann man in der Quartus-Software glücklicherweise im 
Menü "Unused Pins" auf "Configure as output, driving ground" einstellen. 
Unbenutzte Pins werden intern dann mit GND verbunden, wodurch man sich 
wohl die Pulldowns sparen kann.

von Uwe N. (ex-aetzer)


Lesenswert?

Hallo Gerhard,

> Wenn ich jetzt noch auf dem Bottom Layer diese ganze Masse habe, wird der
> Wellenwiderstand wohl noch etwas sinken.

Ja, aber das gilt nur für die Leitungen, die direkt neben der GND-Fläche 
liegen -> Coplanare Impedanz.

Ansonsten sieht dein Layout gar nicht schlecht aus.

Gruss Uwe

von Purzel H. (hacky)


Lesenswert?

>Beim Cyclone II kann man in der Quartus-Software glücklicherweise im
Menü "Unused Pins" auf "Configure as output, driving ground" einstellen.
Unbenutzte Pins werden intern dann mit GND verbunden, wodurch man sich
wohl die Pulldowns sparen kann.


Und wie stehen diese Pins vor der ersten Programmierung ?

von Gerhard (Gast)


Lesenswert?

Hi hacky,
solange der FPGA noch nicht konfiguriert ist, haben alle Pins einen 
internen Pulldown-Widerstand. Nach der Programmierung wird dieser 
Pulldown ausgeschaltet, und die Pins verhalten sich gemäss der 
FPGA-Konfiguration. Leider kann man nicht festlegen, dass Eingänge 
automatisch einen Pulldown kriegen, deshalb muss man halt drauf achten, 
dass unbenutzte Pins als "Output, driving ground" konfiguriert werden, 
und Eingänge immer ein definiertes Potential haben (was ja aber so oder 
so immer der Fall sein sollte).

von Falk B. (falk)


Lesenswert?

@  Gerhard (Gast)

>Das ist mir absolut klar. Ich habe an jedem VCC-Pin einen
>Abblock-Kondensator.

Schon mal gut.

> Ausserdem werde ich im Quartus II die "Drive
>Strength" oder wie das schon wieder heisst, auf "minimum" stellen,
>sodass die Flankensteilheit der Signale reduziert wird.

Auch gut. Aber den Kern kannst du nicht beeinflussen, dort wird immer 
SAUSCHNELL geschaltet. Und dafür muss deine Stromversorgung HF-mäßig 
geeignet sein.

>Erwähnen möchte ich allerdings noch, dass die Distanz zwischen dem
>Signallayer (Top oder Bottom) und dem Ground Layer 0.2mm beträgt und die
>Leitebahnen eine breite von 6 mils haben. Daraus resultiert, laut meinem
>CAD, ein Wellenwiderstand von 70 Ohm.

Naja, mein Verweis auf den Wellenwiderstand ist etwas irreführend. 
Bei der Stromversorgung will man den niedrigstmöglichen Widerstand 
haben, auch bezüglich Wellenwiderstand. Also eher was in Richtung 1 Ohm 
und weniger! Und das bitte von 0..1GHz++, möglichst ohne größere 
Resonanzen.

>sinken. Auf meinem Testboard hatte ich jedenfalls auch bei ca. 8 cm
>Leitungslänge keine Probleme (oder hatte ich einfach Glück?). Was meinst
>du denn zu dem Layout?

Sieht ziehmlich gut aus ;-)

MFG
Falk

von Uwe N. (ex-aetzer)


Lesenswert?

Falk Brunner schrieb:
> Naja, mein Verweis auf den Wellenwiderstand ist etwas irreführend.
> Bei der Stromversorgung will man den niedrigstmöglichen Widerstand
> haben, auch bezüglich Wellenwiderstand. Also eher was in Richtung 1 Ohm
> und weniger!

Stimmt. Dieser Wert wird bedingt durch den Lagenaufbau (grosser Abstand 
GND-Vcc)aber sicherlich nicht erreicht werden. Das Board sollte denoch 
prima funktionieren, wenn auch nicht mit Vmax :-)

Gruss Uwe

P.S. Du hast Passermarken auf deinem Board - lässt du Bestücken ?

von Gerhard (Gast)


Angehängte Dateien:

Lesenswert?

@Falk
okay, wie gut meine Stromversorgung HF-Mässig ist, weiss ich nicht. 
Anbei findest du das Schema, wie ich den Regler beschaltet habe. Beide 
Elkos sind Low-ESR Tantal Elkos. Kannst du dazu vllt. mal ein Statement 
abgeben?

@Uwe
was meinst du mit Vmax? Oder ist das ein Tippfehler, und du meintest 
fmax? :D
Aber 100 MHz liegen wohl noch drin, oder. Würde es ansonsten genügen, 
wenn ich einfach einen dickeren Spannungsregler montiere?
Das mit den Passermarken habe ich einfach vorsorglich mal so gemacht. 
Evtl. werde ich das Teil bestücken lassen, da ich u.U. noch einige davon 
brauchen werde.

von Falk B. (falk)


Lesenswert?

@  Gerhard (Gast)

>Elkos sind Low-ESR Tantal Elkos. Kannst du dazu vllt. mal ein Statement
>abgeben?

C8 und C9 sind zu klein, wenn der Kern mal schlagartig Strom ziehen 
will. Da braucht man eher 100µF, ggf. mehr. Ich muss mir mal wieder 
etwas Webspace beschaffen, dann stell ich meinen Kram mal wieder Online, 
dort ist u.a. eine Messung für die Stromversorgung von FPGAs drin.

MFG
Falk

von Gerhard (Gast)


Lesenswert?

Falk,
ich denke, dein "Kram", wie du das so abschätzig nennst, interessiert 
viele Leute. Ich würde dir von meinem Webspace was abgeben, wenn du 
willst (kostenlos). Oder noch besser: stell es doch im Wiki rein, damit 
es jeder anschauen kann.

von Falk B. (falk)


Lesenswert?

@  Gerhard (Gast)

>willst (kostenlos). Oder noch besser: stell es doch im Wiki rein, damit
>es jeder anschauen kann.

Jetzt wo du es sagst, klingt das eigentlich einleuchtend. Werd ich 
gleich mal machen!

MFG
Falk

von Falk B. (falk)


Lesenswert?

Stromversorgung für FPGAs

Druckfrisch und auf Deutsch übersetzt. Njoy.

MFG
Falk

von Benni (Gast)


Lesenswert?

>Druckfrisch und auf Deutsch übersetzt. Njoy.


Ein sehr schöner Artikel!

MfG Benni

von Falk B. (falk)


Lesenswert?

Und weil ich gerade dabei bin, hier noch ein Artikel für FPGAs

Glitch

MFG
Falk

von Gerhard (Gast)


Angehängte Dateien:

Lesenswert?

Hi Falk,
Die Artikel sind sehr interessant und durchaus lehrreich.
Ich habe jetzt deine Tipps und das, was ich in deinen Artikeln gelesen 
habe, wie folgt umgesetzt:

- Für C9 habe ich einen Super Low ESR Alu-Elko mit 100 uF genommen.
- Bei dem Kupferring, der VCCINT für den FPGA bereitstellt, habe ich 
rinsherum noch 1 uF Keramikkondensatoren verteilt, zusätzlich zu den 100 
nF, die ja eh schon da sind.

Guck dir mal das Bild an:
N2 ist, wie gehabt, der LM1117. Der ist mittels einer relativ grossen 
Fläche mit dem C106 verbunden, also der Ausgangs-Elko von 100 uF. Über 
eine ganze Reihe von Vias ist die Ausgangsspannung des Reglers nun mit 
den inneren beiden Signallayern verbunden, wo ich wieder relativ 
grossflächig versucht habe, zum VCCINT-Ring zu verbinden. Das auch 
wieder über eine ganze Reihe von Vias.
Unter dem FPGA habe ich dann bei jedem Pin einen 100 nF 
Abblockkondensator platziert, und zwar habe ich den, wie bereits 
angedeutet, einfach auf die Fläche drauf gelegt.
Als Masse dient die das ganze Board bedeckende Massefläche.

Na, was meinst du? so könnte es, glaube ich, schon funktionieren. Oder 
ist das ganze Murks?

von Falk B. (falk)


Lesenswert?

@  Gerhard (Gast)

>- Bei dem Kupferring, der VCCINT für den FPGA bereitstellt, habe ich
>rinsherum noch 1 uF Keramikkondensatoren verteilt, zusätzlich zu den 100
>nF, die ja eh schon da sind.

Kann man machen, ob es viel bringt weiß ich nicht. Schadet aber auch 
nicht.

>N2 ist, wie gehabt, der LM1117. Der ist mittels einer relativ grossen
>Fläche mit dem C106 verbunden, also der Ausgangs-Elko von 100 uF. Über
>eine ganze Reihe von Vias ist die Ausgangsspannung des Reglers nun mit
>den inneren beiden Signallayern verbunden, wo ich wieder relativ
>grossflächig versucht habe, zum VCCINT-Ring zu verbinden. Das auch
>wieder über eine ganze Reihe von Vias.

Alles sehr reichlich dimensioniert, passt schon. Die Hälfte der VIAs am 
Regler und Elko würde es aber auch tun ;-)

>Unter dem FPGA habe ich dann bei jedem Pin einen 100 nF
>Abblockkondensator platziert, und zwar habe ich den, wie bereits
>angedeutet, einfach auf die Fläche drauf gelegt.
>Als Masse dient die das ganze Board bedeckende Massefläche.

Ist OK, aber die Kondensatoren würde ich über Thermals an die Flächen 
koppeln, sonst hast du ziemliche Probleme beim Löten, erst recht bei 
maschinellem Löten im Reflow (Tombstone effect).

>Na, was meinst du? so könnte es, glaube ich, schon funktionieren.

Sieht sehr gut aus.

> Oder ist das ganze Murks?

Nein, keinesfalls.

MfG
Falk

von Gerhard (Gast)


Lesenswert?

Hi Falk,
danke für deine Kompetente Hilfe!
Noch zu den Vias. Ich bin mir nicht sicher, wie viele es davon wirklich 
benötigt. Immerhin haben sie nur 24 mil Durchmesser und 12 mil Bohrung, 
sind also schon recht klein. Ich könnte mir vorstellen, dass die dann 
schon eine gewisse Induktivität aufweisen, deshalb habe ich immer 
möglichst viele genommen, um den Effekt zu minimieren. Auch bin ich mir 
über die Strombelastbarkeit nicht ganz sicher; Immerhin fällt über 
diesen Vias dann ja auch was ab, wenn der FPGA richtig Strom zieht.

von Falk B. (falk)


Lesenswert?

@  Gerhard (Gast)

>Noch zu den Vias. Ich bin mir nicht sicher, wie viele es davon wirklich
>benötigt.

Weniger als du jetzt hast.

>möglichst viele genommen, um den Effekt zu minimieren. Auch bin ich mir
>über die Strombelastbarkeit nicht ganz sicher; Immerhin fällt über
>diesen Vias dann ja auch was ab, wenn der FPGA richtig Strom zieht.

Soviel Strom kann es gar nicht ziehen, denn der LM1117 bringt nur 800mA 
;-)

Siehe Leiterbahnbreite und

http://www.fs-leiterplatten.de/html/el__bemessung.html

MFG
Falk

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.