Hallo zusammen,
vermutlich haben die wenigsten hier schonmal was mit PCIe gemacht, aber
vielleicht hab ich ja Glück und es findet sich doch jemand.
Was ich vorhab ist ein bischen verrückt, Ziel des ganzen ist aber
herauszufinden, ob man mit Hobbybudget ein PCIe-Layout auf 6 Lagen
hinbekommt. (Mir ist klar, dass ich Längenabgleich und Impedanzkontrolle
brauche, ob ich das gut genug hinbekomme ist genau die interessante
Frage.)
Das ganze soll ein kleines "mainboard" mit 3x PCIe x1 Steckplätzen für
ein i.MX6 Wandboard (gibts sogar bei Pollin) werden. Der i.MX6 hat eine
PCIe lane die ich per switch (z.B. PI7C9X20404SLCFDE) auf die 3 Sockel
verteilen will. (Ist mir klar, dass sich dann die Bandbreite auch
aufteilt, das ist meine geringste Sorge ;))
Wo ich derzeit aber nicht ganz durchblicke ist das clocking [1]. Der
i.MX6 gibt einen Referenztakt aus, den würd ich in einen fanout-IC (ich
dachte da an den PI6C20400A) füttern und die Ausgänge davon auf switch
und die 3 Sockel verteilen.
Kann das so funktionieren? Der Takt für switch und die Sockel sind durch
Leitungslängen und den fanout-IC ja etwas verzögert verglichen mit dem
root-complex-Takt (=Referenztakt). In [1] findet sich bzgl. Common
Refclk folgender Satz:
1 | A disadvantage is that the same clock source must be distributed to every
|
2 | PCIe device while keeping the clock-to-clock skew to less than 12 ns between devices.
|
Allerdings finde ich im Datenblatt vom fanout-IC nur auf der ersten
Seite den Hinweis "Low skew < 50ps", aber keine näheren Angaben in den
Tabellen.
Bedeutet das nun, dass er 50ps in->out skew hat? Funktioniert das
clocking-Schema dann so prinzipiell?
[1]
http://www.silabs.com/Support%20Documents/TechnicalDocs/PCIe-Clock-Source-Selection.pdf