Hey ich habe sehr wahrscheinlich ein Signalintegritätsproblem bei PCIe
gen2.
Ein am PCIe-host hängender externer switch verrät mir nach dem
linux-boot, dass zwar der 5GT link aufgebaut wurde es aber dennoch zu
"fatal uncorrectable errors" kommt.
Mein Schaltplan ist dem vom Referenzdesign 1zu1 nachgebaut, ich mutmaße
das es eher an den PCB-Stack und meiner Berechnungen nicht optimal
sind.. Und ich habe an der falschen Ecke gespart als ich nicht
"impedanzkontrolle" angeclickt habe :(
Erfahrungsgemäß funktioniert das tastächlich noch bei DDR3L und gigabit
ethernet aber PCIe...
Ich nutze einen vordefinierten Lagenaufbau von multi-cb (Type 4L-01).
https://www.multi-circuit-boards.eu/fileadmin/pdf/leiterplatten_lagenaufbau/Multi-CB_Definierter_Lagenaufbau_Impedanzen_en.pdf
Bei differentiellen Leitungen auf Layer{1,4} mit 100 Ohm wird angegeben:
{width|space|width} = 120µm | 115µm | 120µm
Ich habe aber mein Layout wie folgt geroutet:
{width|space|width} = 150µm | 150µm | 150µm
Mein Berechnungstool mein zum ersteren 108 Ohm und beim zweitem 104 Ohm.
Also so falsch kann es doch eigentlich nicht sein?
Liegt es an den Ungenaugkeiten bei der Fertigung, aufgrund der Tatsache,
dass es keine Impedanzkontrolle stattfand?
Hui, schwer zu sagen von hier aus. 100Ω und 108Ω sind schonmal 8%
Fehler, dann noch Fertigungstoleranzen...
Aber ich habe PCI ehrlich gesagt noch nie gemacht. Sind das auch
LVDS-Signale?
Ansonsten: Könntest du vielleicht auch ein Problem mit
Übersprechen/Crosstalk haben?
>>Aber ich habe PCI ehrlich gesagt noch nie gemacht. Sind das auch>>LVDS-Signale?
Ja zuindest ist das bei TX und RX so., wobei diese AC-mäßig zu
entkoppeln sind. Hierbei werden nah am TX Ausgang 100nF caps 0402
verbaut.
>>Ansonsten: Könntest du vielleicht auch ein Problem mit>>Übersprechen/Crosstalk haben?
Ja nun ich hab mir die Spezi zu PCIe Gen2 angeschaut und habe alles
möglichs eingehalten was da stand. Der Abstand zwischen zwei
differentiellen paaren ist mindestens 600µm (bis an wenigen stellen, wie
z.b. ein am IC selbst).
Ich kann Messtechnisch leider nichts machen. Meine Oscies mit 3dB 200Mhz
kann man bei derart schnellen und kleinen Signalen einfach nur in den
Papierkorb legen :D
5Ghz + ein paar harmonische ...
Im Rechdesign stelle ich fest, dass sogar LDO´s für die 1V(mit 1A) core
Spannung des switches verwendet wurden. Auch hier dachte ich man könnte
Wirkungsgradmäßig noch was besser machen und nahm nen DCDC.. hier kommen
noch 50mV Störimpulse drauf ..
pcb schrieb:> Mein Berechnungstool mein zum ersteren 108 Ohm und beim zweitem 104 Ohm.
Und lass es auch mal 80 Ohm oder 120 Ohm sein, das bringt eine stabile
Verbindung nicht um.
> Also so falsch kann es doch eigentlich nicht sein?
Wie gut ist die Versorgung und die Abblockung der PCIe Phys? Sitzen die
Pufferkondensatoren auf kürzestem Weg zwischen dem jeweiligen
Versorgungs-Pärchen?
pcb schrieb:> hier kommen noch 50mV Störimpulse drauf
... soweit du die messen kannst. Was es der PLL im Phy eben auch nicht
leicher macht.
pcb schrieb:> Mein Schaltplan ist dem vom Referenzdesign 1zu1 nachgebaut
Aber dann doch statt der Linearregler einen Schaltregler verwendet. Dann
bastle doch jetzt einfach zum Test einen Linearregler dazu und disable
den Schaltregler.
Moin,
Wellenwiderstand wuerd' ich ausm Bauch raus als jetzt hier eher nicht
auf dem ersten Platz der Hochverdaechtigen sehen.
Viel eher das hier:
pcb schrieb:> Im Rechdesign stelle ich fest, dass sogar LDO´s für die 1V(mit 1A) core> Spannung des switches verwendet wurden. Auch hier dachte ich man könnte> Wirkungsgradmäßig noch was besser machen und nahm nen DCDC.. hier kommen> noch 50mV Störimpulse drauf ..
Wie siehts denn bei dir mit den Siebmitteln in den Versorgungsspannungen
aus?
Deinen Schaltregler wirste wohl ohne extreme-dremeling stilllegen
koennen und mal testweise extern die entsprechende Spannung einspeisen?
Ist aber natuerlich schon arg im Trueben gefischt...
Gruss
WK
Edit: Ups, zu langsam...
pcb schrieb:> Ja zuindest ist das bei TX und RX so., wobei diese AC-mäßig zu> entkoppeln sind. Hierbei werden nah am TX Ausgang 100nF caps 0402> verbaut.
Wo hast du das her, das diese noch irgendwie entkoppelt werden müssen?
Wenn die Hinweise auf die Spannungsversorgung nichts bringen, lass den
Vcc-Umbau trotzdem erstmal wie er ist und nimm die Kondensatoren aus den
LVDS-Leitungen wieder raus.
pcb schrieb:> Ja nun ich hab mir die Spezi zu PCIe Gen2 angeschaut und habe alles> möglichs eingehalten was da stand. Der Abstand zwischen zwei> differentiellen paaren ist mindestens 600µm (bis an wenigen stellen, wie> z.b. ein am IC selbst).
Naja, das kommt aber auch auf den Abstand zur Referenzlage an. Je
geringer der Abstand zur Referenzlage ist, desto weniger Abstand kann
man sich zwischen den LVDS-Leiterpärchen erlauben.
>> > Also so falsch kann es doch eigentlich nicht sein?>> Wie gut ist die Versorgung und die Abblockung der PCIe Phys? Sitzen die>> Pufferkondensatoren auf kürzestem Weg zwischen dem jeweiligen>> Versorgungs-Pärchen?
Hier dürfe ich auch nen Schnitzer haben, die Caps liegen unterhalb des
Chips und sind aus Platzgründen nicht auf der Layerseite, auf dem der
Chip sitzt. Dafür habe ich unter den Pins alles mit 100nF caps zu
gepflastert. Die beiden Betriebsspannungen wurden jeweils durch einen PI
Filter befiltert (aber dieser wirkt leider nicht gut genug). Es ist hier
wirklich besser einen LDO zu nutzen wie im ref design, denn die vorgaben
nach databla sind {1.0V +-10%,3.3V +-10%} und mit den Störsignalen bin
ich ab und an locker auserhalb der spezi.
(siehe Bilder: switch_unten, switch_oben und filter)
>> > Ja zuindest ist das bei TX und RX so., wobei diese AC-mäßig zu>> > entkoppeln sind. Hierbei werden nah am TX Ausgang 100nF caps 0402>> > verbaut.>>>> Wo hast du das her, das diese noch irgendwie entkoppelt werden müssen?>>>> Wenn die Hinweise auf die Spannungsversorgung nichts bringen, lass den>> Vcc-Umbau trotzdem erstmal wie er ist und nimm die Kondensatoren aus den>> LVDS-Leitungen wieder raus.
Das ist im Ref Design so, steht im Datenblatt und steht auch in der PCIe
Gen 2 spezi. Die CAP´s gehören dort zwischen RX und TX, wobei diese naha
am sender also TX zu platzieren sind.
>> > Ja nun ich hab mir die Spezi zu PCIe Gen2 angeschaut und habe alles>> > möglichs eingehalten was da stand. Der Abstand zwischen zwei>> > differentiellen paaren ist mindestens 600µm (bis an wenigen stellen, wie>> > z.b. ein am IC selbst).>>>>Naja, das kommt aber auch auf den Abstand zur Referenzlage an. Je>>geringer der Abstand zur Referenzlage ist, desto weniger Abstand kann>>man sich zwischen den LVDS-Leiterpärchen erlauben.
Ja damit hst du natürlich recht. Nun habe ich einen definierten
Lageaufbau aber heftigen Fertigungstoleranzen. Bei PCie muss ich bei
meiner nächsten Platine unbedingt die impedanzkontrolle aktivieren, um
innerhalb 100 Ohm +- 10% zu bleiben.
Schaut euch bitte den Layoutausschnitt an (das rote/top). Ich bin mir
nicht sicher ob das es sinnvoll ist die Masse so tight an den
differentiellen Leitungen zu haben.
Noch ein Nachtrag:
>>nach databla sind {1.0V +-10%,3.3V +-10%} und mit den Störsignalen bin>>ich ab und an locker auserhalb der spezi
Die SPannung bricht aufgrund der Belastung von 1,08V auf 995V ein. Und
mit den Störimpulsen bin ich dann ab und an drunter.
Moin,
pcb schrieb:> Ich bin mir> nicht sicher ob das es sinnvoll ist die Masse so tight an den> differentiellen Leitungen zu haben.
Naja, wenn dann die Impedanz von dem Apparat mit der Masse gleich
nebendran stimmt, ist alles in Butter.
Wenn du aber die Impedanz nur fuer ein Leitungspaeaerchen mit einer
GND-Plane drunter berechnet hast, wirst du mit dem real existierenden
PCB ziemlich grob Z maessig daneben liegen.
Gruss
WK
Edit: Wie sieht's denn mit der Massefreistellung der
Durchkontaktierungen bei den kritischen Signalen auf den GND-Layern aus?
pcb schrieb:> Schaut euch bitte den Layoutausschnitt an
Mit den Thermals hast du dir unnötige Pigtails gebaut...
Was schribt denn das Datenblatt des unbekannten Bauteils zum Pad 129?
pcb schrieb:>>> > Ja zuindest ist das bei TX und RX so., wobei diese AC-mäßig zu>>> > entkoppeln sind. Hierbei werden nah am TX Ausgang 100nF caps 0402>>> > verbaut.>>>>>> Wo hast du das her, das diese noch irgendwie entkoppelt werden müssen?>>>>>> Wenn die Hinweise auf die Spannungsversorgung nichts bringen, lass den>>> Vcc-Umbau trotzdem erstmal wie er ist und nimm die Kondensatoren aus den>>> LVDS-Leitungen wieder raus.> Das ist im Ref Design so, steht im Datenblatt und steht auch in der PCIe> Gen 2 spezi. Die CAP´s gehören dort zwischen RX und TX, wobei diese naha> am sender also TX zu platzieren sind.
Steht da auch eine nähere Erklärung, was die bringen sollen?
Ich will mich nicht soweit aus dem Fenster lehnen und die Specs für
blödsinnig halten, allerdings machen die Kondensatoren genau das, was du
z.B. mit dem Sicherheitsabstand von 600µm zu verhindern suchst.
LVDS sind Stromsignale. Sowas ist in vielen Fällen relativ robust, aber
Stromsignale reagieren allgemein allergisch auf kapazitive Kopplungen,
das ist deren Pferdefuß.
pcb schrieb:> Schaut euch bitte den Layoutausschnitt an (das rote/top). Ich bin mir> nicht sicher ob das es sinnvoll ist die Masse so tight an den> differentiellen Leitungen zu haben.
Die Masseflutung hast du doch in deiner Impedanzberechnung mit
einbezogen, oder? Das sind zwei unterschiedliche Fälle: Leiberbahn über
Referenzlage und Leiterbahn über Referenzlage umgeben von
Referenzpotential.
Wühlhase schrieb:> allerdings machen die Kondensatoren genau das, was du z.B.> mit dem Sicherheitsabstand von 600µm zu verhindern suchst.
Sie entfernen Gleichspannungsunterschiede beim Biasing von TX und RX...
>>> > entkoppeln sind. Hierbei werden nah am TX Ausgang 100nF caps 0402>>> > verbaut.
Bei LVDS Sata hab ich mal wenige pF gesehen.
100 nF halte ich wegen parasitaerer Effekte fuer viel zu gross.
Lothar M. schrieb:> Wühlhase schrieb:>> allerdings machen die Kondensatoren genau das, was du z.B.>> mit dem Sicherheitsabstand von 600µm zu verhindern suchst.> Sie entfernen Gleichspannungsunterschiede beim Biasing von TX und RX...
Wären die denn so ein Problem? Immerhin liegt die Signalinformation bei
LVDS ja in der Stromrichtung.
Kann mir auch nicht vorstellen, dass es an der Leiterbahngeometrie
liegt. Auch, wenn man bei verkoppelten Leitungen die formelbasierten
Impedanz-Rechner (vs. Field Solver) mit Vorsicht genießen sollte.
Wenn ich die Werte von Multi-CB in meinen Field Solver hacke, komme ich
auf 100,7 Ohm. Bei deiner Geometrie komme ich auf 98,9 Ohm. So falsch
kann das vermutlich nicht sein. Selbst wenn seitens des
Leiterplattenherstellers keine Impedanzkontrolle erfolgte.
Ohne mit entsprechender Messtechnik wird man da nur im Trüben fischen
können.
- Ist die Versorgung ausreichend gepuffert?
- Ist die Leiterbahngeometrie wirklich uniform? Also keine ungewollte
Änderung der Impedanz durch z. B. Löcher/Schlitze in der Referenzlage,
Vias, Asymmetrien, andere Kupferstrukturen in der Nähe der
Signalleitungen (z. B. Kupferflutungen), ...
- Leitungen richtig abgeschlossen?
> ... Auch hier dachte ich man könnte Wirkungsgradmäßig noch was besser machen und
nahm nen DCDC.. hier kommen noch 50mV Störimpulse drauf ..
Je nachdem wie agressiv der Schaltregler ist, koennen die Stoerspitzen
viel groesser sein. Eine 1ns Nadel hat ueber 1GHz Bandbreite. Auf einen
Datenkanal mag das eher gehen, wie auf einem Clock Kanal. Ohne ein 1GHz,
besser mehr, Scope sieht man zuwenig. Allenfalls mit dem
Spektrumanalyzer nachschauen.
>> Die Masseflutung hast du doch in deiner Impedanzberechnung mit>> einbezogen, oder? Das sind zwei unterschiedliche Fälle: Leiberbahn über>> Referenzlage und Leiterbahn über Referenzlage umgeben von>> Referenzpotential.>> Gruss>> WK>>>> Edit: Wie sieht's denn mit der Massefreistellung der>> Durchkontaktierungen bei den kritischen Signalen auf den GND-Layern aus?
Ja ich nutzen einen Formelbasierenden Solver. Hierbei wird nur die
Impedanz anhand von Er, Tracehöhe, Abständen zwischen Referenzplane zum
diff Signal, Leiterzugsbreite und Leiterzugsabstand gebildet. Sollte ich
benachbarte Masse lieber weglassen oder zumindest den Abstand so
vergrößern, dass dieser mindestens genauso groß ist wie zur Ref-plane?
>> > Schaut euch bitte den Layoutausschnitt an>> Mit den Thermals hast du dir unnötige Pigtails gebaut...>>>>Was schribt denn das Datenblatt des unbekannten Bauteils zum Pad 129?
im Databla steh nur das 129 mit Masse zu verbinden ist. Du meinst da die
Fläche so gro0 ist, erzeuge ich große schlitze und es wäre an dieser
stelle besser, ich würde das Pad 129 ohne thermal-stege mit der Masse
verbinden?
Ich spiele mit dem Gedanken die Masse an den beiden äußeren Lagen
komplett wegzulassen, schlieslich habe ich diese ja bereits in den
inneren Lagen.
>>- Ist die Versorgung ausreichend gepuffert?
Hier habe ich auch bedenken..
Was haltet ihr von folgender Möglichkeit:
5V Systemspannung (wurde erzeugt durch DCDC) -> DCDC auf 2.0V -> LDO auf
1.0V
Der LDO bringt doch einen hohen PSRR von ca 60db mit, da dürften dann
doch die 50mV Störungspulse eher in der Größenordnung von einigen 10µV
.. 100µV liegen.
>>- Ist die Leiterbahngeometrie wirklich uniform? Also keine ungewollte>>Änderung der Impedanz durch z. B. Löcher/Schlitze in der Referenzlage,>>Vias, Asymmetrien, andere Kupferstrukturen in der Nähe der>>Signalleitungen (z. B. Kupferflutungen), ...
Es gibt nach andere flächen in den beiden inneren lagen aber nicht
unterhalb den diff-Leitungen. jede Diffleitungen hat maximal 2 Vias und
einen PCIe connector. Die Vias sind sehr klein (borhdruchmesser 200µm,
500µm Kupfer).
>>- Leitungen richtig abgeschlossen?
Ja das erfolge wie im Referenzdesign, nur die Stromversorgung ist ein
eigenkonstrukt und hier wird es änderungen geben.
Moin,
pcb schrieb:>>> Edit: Wie sieht's denn mit der Massefreistellung der>>> Durchkontaktierungen bei den kritischen Signalen auf den GND-Layern aus?> Ja ich nutzen einen Formelbasierenden Solver. Hierbei wird nur die> Impedanz anhand von Er, Tracehöhe, Abständen zwischen Referenzplane zum> diff Signal, Leiterzugsbreite und Leiterzugsabstand gebildet. Sollte ich> benachbarte Masse lieber weglassen oder zumindest den Abstand so> vergrößern, dass dieser mindestens genauso groß ist wie zur Ref-plane?
Da gings mir eher um: Wenn du die differentiellen Signale ueber
Durchkontaktierungen laufen laesst, dann geht die DK ja durch die
Masseplane durch. Und da sollten die Abstaende der DK zu dieser Plane,
also praktisch die "Loecher" im Kupfer der Masseplane tuechtig gross
sein, sonst ist das zu kapazitiv. Aehnliche Baustelle auch bei deinen
Koppel-Cs: Da sollte Abstand zur Masse nebendrann sein und ggf. auch
eine Aussparung in der Groundplane direkt unter den Cs.
Bei deiner Masse eng neben den Signalen ist mir immernoch nicht ganz
klar, ob du das dann auch richtig gerechnet hast. Es gibt "coupled
Microstrip line" - da sollte keine Masse auf der Signallage in der Naehe
sein und es gibt "Differential Surface Coplanar Waveguide" - da ist
Masse in wohldefinertem Abstand auch auf der selben Lage wie die Signale
(und zusaetzlich noch als Plane drunter).
Das sind 2 verschiedene Geometrien.
Nebenbaustelle: Das mit dem thermal Pad ist halt so ne Sache - wenn das
nicht vollflaechig an den Rest vom Cu angebunden ist, dann wirds wenig
helfen. Da sollten eigentlich noch moeglichst viele DKs rein, damit die
Waerme leicht auf moeglichst viel Kupferflaeche uebertragen werden kann.
Allerdings dabei auch ein Auge drauf haben, dass nicht beim Loeten zu
viel Zinn in den DKs verschwindet und nicht mehr fuer die Verbindung
zwischen Chip und PCB da ist.
Gruss
WK