8b/10b Kodierung mit XILINX CPLD

Gast #201477
Lesenswert?

Um einen Ethernet Transceiver anzusprechen muss ich eine 8b/10b
Kodierung durchführen. Das würde ich gerne mit einem CPLD von XILINX
erledigen. In der XAPP336 bzw. 391 wird ein entsprechender
Encoder/Decoder vorgestellt, den VHDL-Code gibt es auch dazu.

Das Problem: Laut der Simulation mit ModelSim braucht der Encoder 6
clock cycles um einen 8Bit Wert in den entspr. 10Bit Wert umzuwandeln.
D.h. dass mein CPLD mind. 6 Mal schneller getaktet sein muss als mein
8Bit-Bus. Sehe ich das richtig?

Was mache ich nun wenn mein Bus 40MHz hat? Das CPLD läuft leider nicht
mit 240 MHz ggg
Gast #201478
Lesenswert?

Hi

8b/10b ist doch, wenn ich nicht irre, GigaBit-Ethernet auf Glasfaser?

AFAIK ist doch die Kodierung 8b/10b nur eine statische Geschichte die
sich mit einer Look-Up-Table erschlagen lassen sollte. Kannst du den
VHDL-Code mal posten?

Matthias
Gast #201479
Lesenswert?

>>8b/10b ist doch, wenn ich nicht irre, GigaBit-Ethernet auf Glasfaser?

Ja, das ist korrekt.


Im Anhang ist der VHDL Code für das Encoding. Das ganze läuft über 3
oder 4 Statemachines. Die eigentliche Kodierung wurde kombinatorisch
gelöst. Hat natürlich den Vorteil, dass das selbst in einen XC9536
passen würde. Aber eben mit einer Latency von 6 Cycles. Leider auch
nicht pipelined, d.h. ich kann den nächsten Wert erst nach 6 Takten
einlesen.

Evtl. lassen sich mehrere Encoder parallel betreiben?


Ich denke dass eine entsprechende Look Up Table nicht in ein CPLD
passt. Das wäre wohl eher was für ein FPGA?
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren