Das funktioniert soweit tipp-topp, solange mein PLL-Input-Clock zusammen
mit den Daten kommt. Nun habe ich ein anderes LVDS-Interface (ein
einzelnes Signal-Paar), welches ohne Clock daher kommt, dessen Quelle
aber von meinem FPGA geclockt wird. Das System läuft also synchron (wenn
alle PLL eingeschwungen sind) aber mit unbekannter Phase.
Zum Thema DPA (dynamic phase alignment) heisst es im Xilinx PG188 April
2016 lapidar: Unsupported feature (p.6).
Wie geht Ihr das an?
Gruss
P. K. schrieb:> Zum Thema DPA (dynamic phase alignment) heisst es im Xilinx PG188 April> 2016 lapidar: Unsupported feature (p.6).
Klingt für mich, als wenn da was in der Hardware kaputt ist.
Evtl. kannst Du ja die Phase an der PLL verschieben.
Hilfreich ist es da, wenn man auf dei Leitung ein Trainigspattern geben
kann, um auf der anderen Seite die richtige Phase zu finden...
Duke
Da bräuchte man noch ein bischen mehr Code. Wie berechnest Du den offset
zwischen der ausgehenden und der eingehenden Phase? Gibst Du den
ausdrücklich an?
Weltbester FPGA-Pongo schrieb im Beitrag #4817426:
> Da bräuchte man noch ein bischen mehr Code.
Mehr ist da nicht. Es handelt sich beim Beispiel um dasjenige, welche
ein I/F bedient, welches den clock mit dabei hat und ich so die PLL
damit speisen kann. Das funktioniert soweit ganz gut.
Weltbester FPGA-Pongo schrieb im Beitrag #4817426:
> Wie berechnest Du den offset> zwischen der ausgehenden und der eingehenden Phase?
Gar nicht, der ist nach jedem Restart anders. Deswegen hätte ich ja
gerne DPA eingesetzt und bin über den zitierten Kommentar im PG188
gestolpert.
Duke Scarring schrieb:> Evtl. kannst Du ja die Phase an der PLL verschieben.
Ja, das wäre dann das letzte Mittel, wenn sonst gar nichts mehr hilft.
Möchte natürlich vermeiden, das händisch zu tun...
Weltbester FPGA-Pongo schrieb im Beitrag #4818627:
> Das wirst Du aber müssen, wenn Du mit einem nicht gekoppelten Takt> arbeitest.
Tja, mittlerweile sehe ich das auch so. Aussage meines FAE: Die normalen
IOs haben leider keinen Clock-Recovery Schaltkreis. Diesen
Clock-Recovery gibt es nur in den Gigabit-Transceivern (GTx).
Das hätte ich jetzt auch gesagt. Du musst den SERDES-Takt aus dem
eingehenden Takt gewinnen und im Fall der unbekannten Phase, diese
ermitteln. Also Takt sampeln und Rauschen bestimmen, dann die Phase der
SERDES-Clock mittig einstellen.
Ohne einen Takt, wie gehabt, anhand der Qualität der Daten.
Das Vorgeben per Clock-PLL-Offset ginge nur für ausreichend langsame
Takte. Eine statische Beziehung zwischen den Takten erschlägt z.B. nicht
den Temperaturdrift.
Ich hatte das Thema mal beim Cameralink. Beim Virtex ging es
konventionell, beim Spartan musst man nachsynchronisieren.