Forum: FPGA, VHDL & Co. Spartan 6 GTP: Byte Alignment klappt nicht


von Christian R. (supachris)


Lesenswert?

Hallo zusammen,

kennt sich jemand mit den GTP Transceivern am Spartan 6 LXT aus?
Ich kriege in der Simulation das Byte Alignment mit dem Comma nicht hin. 
Ich habe einen 16 Bit Datenpfad mit 8B/10B eingestellt, als Comma wird 
in den Pausen K28.1 geschickt. Im Alignment ist eingestellt, dass er das 
K28.1 dekodieren soll und an den geraden Bytes ausrichten soll.
Aber das will der einfach nicht machen. Er setzt das 
TILE0_RXBYTEISALIGNED1_OUT auf 1 und bringt das Comma im High Byte, 
TILE0_RXCHARISK1_OUT ist demzufolge auch "10". Auch ein Manuelles 
RX_SLIDE hilft nicht, da kommt kurz das TILE0_RXBYTEREALIGN_OUT und dann 
richtet er wieder am High-Byte aus.

Was soll denn das? Ich hatte das auf dem SP605 schon mal laufen, da ging 
das korrekt, ohne funktionierende Simulation kann ich aber nicht weiter 
arbeiten.
Die Hardware steht im Moment nicht zur Verfügung. In der Simulation ist 
wie dann in der Hardware ein ML605 (GTX) mit dem SP605 (GTP) verbunden. 
In der Gegenrichtung klappt es, der Virtex 6 richtet den Datenstrom am 
LowByte korrekt aus.

In den Xilinx Answer Records und im Forum hab ich nichts dazu gefunden.
Ich nutze ISE 14.3, der GTP Wizzard hat die Version 1.11 im Moment. Der 
Fehler ist mit ModelSIM und ISim gleich.

Hat jemand da einen Tipp?

von Duke Scarring (Gast)


Lesenswert?

Hilft es, wenn Du dem GTP zwei Kommasymbole gibts?
Du hast ja auch einen 16 Bit Datenpfad.

Duke

von Christian R. (supachris)


Angehängte Dateien:

Lesenswert?

Für das Alignment kann man nur ein Comma Symbol angeben. ich denke ja, 
dass es ein Simulationsproblem ist, da es in der Hardware (Da mit 
Loopback) schon mal geklappt hatte. Und er soll ja auch gerade nur ein 
Comma haben, damit er den 16 Bit Datenpfad richtig herum zusammen bauen 
kann. Wenn ich zwei Commas hätte, wäre ja nicht eindeutig gekennzeichnet 
auf welchem Byte das jetzt liegen soll.

von BiBi (Gast)


Lesenswert?

Welchen Simulator verwendest Du?
Aus einem Vorprojekt weiss ich, dass ISIM sowohl bei den SERDES, als 
auch den GTP Probleme hat und die Funktion scheinbar nicht i.O. ist, 
d.h. er einfach nicht korrekt simuliert.

von Christian R. (supachris)


Lesenswert?

Wie ich oben schrieb: Ich verwende normalerweise ModelSim PE 10.1b, hab 
die Libs über Compxlib kompiliert. Aber zum Testen hab ich das Projekt 
auch mal in den ISim reingezogen, Ergebnis: Genau der gleiche Fehler. 
Ich vermute, dass die Lib an sich fehlerhaft ist, ist sicher in beiden 
Fällen die gleiche Source. Aber man kann ja nicht reingucken, SecureIP 
lässt grüßen.
Wenn wenigstens nur Highbyte/Lowbyte verdreht wäre. Aber es ist 
verschoben. Sonst würde ich halt für die Simulation einen Swap einbauen. 
Aber nee...

von Christian R. (supachris)


Lesenswert?

heureka! Während des Schreiben vorhin kam mir die Idee, den RX Elastic 
Buffer nachdem alles komplett initialisiert ist, nochmal zu reseten. Und 
Tatsache, dann läufts plötzlich. Sehr seltsam, in der Hardware gehts 
ohne und die Doku verliert darüber kein Wort. Tolle Sache, ist dann wohl 
doch ein Simulationsmodell-Problem.

von H. G. (Gast)


Lesenswert?

Christian R. schrieb:
> Tolle Sache, ist dann wohl
>
> doch ein Simulationsmodell-Problem.

In einer Sumulation hat man eben keine Anfangsbedingungen, wie real, wo 
sich immer irgend ein Zustand einstellt.

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.