Forum: FPGA, VHDL & Co. Spartan 6 - SelectIO und 10-bit Deserializer


von joe (Gast)


Lesenswert?

Hallo,

Gibt es einen Lösungsansatz für einen 1:10-Bit Deserializer
auf einem Spartan 6? Oder muss ich mit 2 x 5-Bit Deserializern arbeiten 
und dann diese MUXen?

von S. (Gast)


Lesenswert?

Soweit mir bekannt geht das nur bis maximal 2x4 mit Master Slave. Keine 
Ahnung, ob man noch einen weiteren Slave addieren kann. Ich vermute mal, 
es geht nicht.

Für welchen speed brauchst Du das ? Bis 300 MHz geht es im S6 auch ganz 
gut ohne ISERDES.

Ansonsten DDR-Funktion mit halbem Takt.

Etwas problematischer, aber technisch einfacher wäre eine 10/8 - 
Konstellation mit manuellem Bit-Slip oder sagen wir "reordering".

Du taktest immer 8 von 10 bits ein und erhälts so etwas:

11111111
11222222
22223333
33333344
44444444

also 4 Datenworte a 10 bit in 5 deserialisieren Worten. die klopfst du 
in einen aysymmetrischen FiFo, der 80 Bits breit ist.

2 x 5 x 8 Bits -> 2 x 5 Schreibzugriffe linksseitig,
in derselben Zeit 5 Schreibzugriffe rechtsseitig mit 16 bit breite.

von Vanilla (Gast)


Lesenswert?

joe schrieb:
> Gibt es einen Lösungsansatz für einen 1:10-Bit Deserializer

Die ISERDES des Spartan6 können gechained werden.

Das genaue Vorgehen ist im Datenblatt und in einigen Application Notes 
beschrieben.
Schau z.B. mal in die APP1064

Gruß

Vanilla

von Duke Scarring (Gast)


Lesenswert?

Vanilla schrieb:
> Die ISERDES des Spartan6 können gechained werden.
Ja. Aber nur bei differentiellen Leitungen (weil da jeder 2. nicht 
genutzt wird) und auch nur - wie oben schon geschrieben - mit 1:8 Bits
>
> Das genaue Vorgehen ist im Datenblatt und in einigen Application Notes
> beschrieben.
> Schau z.B. mal in die APP1064
1
Each Spartan-6 FPGA input/output block (IOB) contains a 4-bit input SerDes and a 4-bit output
2
SerDes. The SerDes from two adjacent blocks (master and slave) can be cascaded to make an
3
8-bit block. This gives the possibility of SerDes ratios from 2:1 to 8:1 on both output and input
4
for both single and double data rate I/O clocks.

Duke

von S. (Gast)


Lesenswert?

Ach so, mit "DDR-Funktion" meinte ich das Einlesen eines Datenstroms 
über 2 Inputs! (Der SERDES "weiss" nicht, dass er zu langsam liest und 
ein anderer mitarbeitet) Der Takt muss dafür aber bei 25% und der andere 
bei 75% des Time Rasters stehen, als skew haben. Die Bits werden ja 
nicht "länger".

von Christian R. (supachris)


Lesenswert?

Auf Seite 3 der XAPP1064 steht doch, wie man 10:1 auch deserialisieren 
kann.

von Duke Scarring (Gast)


Lesenswert?

Ups. Soweit hatte ich nicht gelesen. Mir hat letztens 4:1 ausgereicht...

von S. (Gast)


Lesenswert?

Das entspricht meinem Bauvorschlag und erklärt den allgemeinen Fall wo 
man nicht mit "DDR" also 2 Taktphasen (p/n) je Eingangstakt - sondern 
beliebig vielen arbeitet. Dann eben mit noch einer PLL.

Theoretisch geht das auch mit 17 Takten pro Haupttakt aber die 
nachgeschaltete fabric logic muss da mitspielen und die hat ja Grenzen.

Wie schnell soll das eigentlich laufne?

von joe (Gast)


Lesenswert?

S. schrieb:
> Das entspricht meinem Bauvorschlag und erklärt den allgemeinen Fall wo
> man nicht mit "DDR" also 2 Taktphasen (p/n) je Eingangstakt - sondern
> beliebig vielen arbeitet. Dann eben mit noch einer PLL.
>
> Theoretisch geht das auch mit 17 Takten pro Haupttakt aber die
> nachgeschaltete fabric logic muss da mitspielen und die hat ja Grenzen.
>
> Wie schnell soll das eigentlich laufne?

Mit 300 MHz - Es sollten 8 LVDS Signale deserialisiert werden.

von Christian R. (supachris)


Lesenswert?

Also 300 MBit/s? Das geht ja noch ganz ohne ISERDES dann, einfach in ein 
SR einsortieren.

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.