Forum: FPGA, VHDL & Co. RocketIO im Virtex2Pro


von Christian Förstner (Gast)


Lesenswert?

Hallo,
ich bin derzeit dabei das UserGuide der RocketIO zu studieren. Ich 
möchte mit diesen eine 32Bit Übertragung realisieren (zunächst zwischen 
zwei RocketIOs eines FPGAs). Nun meine Frage:
Wie bekomme ich den Transceiver dazu, dass eine Unterscheidung zwischen 
gültigen Daten (00000000h-FFFFFFFFh) und einem "NOP" möglich wird. Ich 
würde dabei gerne auf die 8B/10B Codierung verzichten. Gibt es da eine 
Möglichkeit? Hoffe jemand versteht das Problem und kann mir in diesem 
Zusammenhang weiter helfen.
Bin über jeden Tip dankbar,
Gruss Christian

von Falk (Gast)


Lesenswert?

@ Christian Förstner (Gast)

>ich bin derzeit dabei das UserGuide der RocketIO zu studieren. Ich
>möchte mit diesen eine 32Bit Übertragung realisieren (zunächst zwischen
>zwei RocketIOs eines FPGAs). Nun meine Frage:

Sollte eigentlich keine grosse Problem sein?

>Wie bekomme ich den Transceiver dazu, dass eine Unterscheidung zwischen
>gültigen Daten (00000000h-FFFFFFFFh) und einem "NOP" möglich wird. Ich
>würde dabei gerne auf die 8B/10B Codierung verzichten. Gibt es da eine

Warum? Wegen der Bandbreite? Dann musst du deine eigenen Encoder/Decoder 
stricken. Entweder 64/66B oder sowas wie 32-Bit UART (Start/Stop Bit 
alles 32 Bit).

MFG
Falk

von Christian Förstner (Gast)


Lesenswert?

Ich möchte eigentlich nur möglichst hohe Datenraten erzielen. Da ich 
einen internen 32Bit Bus verwende, der die Daten an der Transceiver 
sendet, möchte ich die Daten nach Möglichkeit relativ transparent 
übertragen. so eine Art 32Bit+Valid (entweder 1 oder 4Bit).
Darf ich fragen wie du dir die Generierung dieses Sart/Stop-Bits 
vorstellst? es geht mir eigentlich eher um das Interface zum parallelen 
Bus. Auf das serielle Interface habe ich als Anwender doch eigentlich 
kaum Einfluss (mit Ausnahme des Verwendeten Modes) oder verstehe ich das 
falsch?

von Christian Förstner (Gast)


Lesenswert?

Hallo
Also habe gerade nochmal alles überblättert:
Wenn ich den 8B/10B bypassed Mode wähle, habe ich doch die direkte 
Möglichkeit 10Bit zu übertragen oder sehe ich das falsch? Wären dann 
8Bit Daten + Valid + 0. Damit könnte ich leben. In Abb. 2-13 des 
UserGuide wird dies gezeigt. Müsste doch eigentlich so funktionieren 
oder?
gruss Christian

von Falk (Gast)


Lesenswert?

@ Christian Förstner (Gast)

>sendet, möchte ich die Daten nach Möglichkeit relativ transparent
>übertragen. so eine Art 32Bit+Valid (entweder 1 oder 4Bit).

Wozu? Das kannst du dir alles sparen, wenn du mit 8B/10B arbeitest.

>Darf ich fragen wie du dir die Generierung dieses Sart/Stop-Bits
>vorstellst? es geht mir eigentlich eher um das Interface zum parallelen
>Bus. Auf das serielle Interface habe ich als Anwender doch eigentlich
>kaum Einfluss (mit Ausnahme des Verwendeten Modes) oder verstehe ich das
>falsch?

Naja, du kanns die Rocket-IOs als "einfache Schieberegister" 
missbrauchen, dann gehen deine Parallelen Daten einfach seriell übers 
Kabel. Oder eben mit Encoder, dann werden sie beim Empfänger auch wieder 
ordentlich sortiert und ausgerichtet (32 Bit Grenze).

>Wenn ich den 8B/10B bypassed Mode wähle, habe ich doch die direkte
>Möglichkeit 10Bit zu übertragen oder sehe ich das falsch? Wären dann

Das ist korrekt.

>8Bit Daten + Valid + 0. Damit könnte ich leben. In Abb. 2-13 des

Dann musst du aber selber die Grenzen deiner bzw. 32 Bit Datenwörter 
finden.

>UserGuide wird dies gezeigt. Müsste doch eigentlich so funktionieren
>oder?

Prinzipiell schon, die Frage ist, ob sich der Aufwand lohnt. Die 
Rocket-IO/s machen 3.125 Gbit/s brutto, macht bei 8B/10B immer noch 2.5 
Gbit/s netto. Nicht schlecht. Und wennd das nicht reicht nimm zwei 
Kanäle und Channel bonding. Keine Notwenidgkeit das Rad neu zu erfinden.

MfG
Falk

von Christian Förstner (Gast)


Lesenswert?

Okey....
danke Dir für die Hilfe :)
ich werd mich gleich mal dran versuchen. Aber vorsicht: wenn weitere 
Fragen auftreten melde ich mich sicher wieder ;)
Schönes Wochenende wünsche ich dir Falk,
Gruss Christian

von Artur Funk (Gast)


Lesenswert?

Du musst aufpassen, die RocketIO's vertragen nur eine begrenzte Anzahl 
der Null- oder Einsfolgen (glaub was um die 64). Deshalb geht es gar 
nicht ohne Kodierung, außer du bist dir 99.999% sicher, dass der Fall 
nie eintritt.

von Denis (Gast)


Lesenswert?

@Falk

Wie ich sehe kennst du dich mit den Rocket I/Os aus?Ich beschäfftige 
seit kurzem mit den Rocket I/Os und hab noch keine Ahnung wie ich einen 
einfachen Loopback Mode erzeuge? Kannst du mir da weiterhelfen bezüglich 
nem Tutorial bzw Lab?Die Theorie ist nicht das Problem nur weiß ich noch 
nicht wie ich das in Code umsetze.

Für Hilfe wäre ich sehr dankbar
Gruß Denis

von Falk B. (falk)


Lesenswert?

@ Denis (Gast)

>seit kurzem mit den Rocket I/Os und hab noch keine Ahnung wie ich einen
>einfachen Loopback Mode erzeuge? Kannst du mir da weiterhelfen bezüglich
>nem Tutorial bzw Lab?

Leider nein. Hab keinen Code oder Tip parat.

MFG
Falk

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.