Forum: FPGA, VHDL & Co. Spartan-6: 625 MHz Eingangstakt


von Sebastian B. (sfreak) Benutzerseite


Lesenswert?

Hallo allerseits,

ich möchte einen AD9739A DAC ansteuern. Der hat 2.5GSample/s, aufgeteilt 
auf zwei 14-Bit LVDS Datenströme. Macht 625 MHz Takt je 14 Bit Kanal 
(LVDS) bei DDR.

Über die OSERDES des Spartan-6 sollte das ja auch zu machen sein, z.B. 
mit 8:1 Serialisierung, dann bleiben für die Datenerzeugung komfortable 
156 MHz.

Nun muss ich die Daten aber synchron zu einem ext. 625 MHz Clock 
ausgeben. Den könnte ich theoretisch auch gleich zum Betrieb der OSERDES 
benutzen -- aber gibt es überhaupt eine Möglichkeit einen so schnellen 
Takt vom Eingang zu den OSERDES zu routen? (außerdem muss auch der 
serdesstrobe noch irgendwoher kommen...)

BUFGMUX fallen aus, 400 MHz max.
BUFIO fallen aus, 540 MHz max.
Bleibt nur BUFPLL mir 1080 MHz max. Den kann ich aber soweit ich weiß 
nur von einer PLL aus benutzen, die als Eingangstakt wiederum nur einen 
langsamen BUFG akzeptiert.

Soweit ich das sehe, ist mit den 625 MHz also nichts anzufangen und ich 
müsste einen niedrigeren Referenztakt erzeugen und den intern mit einer 
PLL wieder hochmultiplizieren.

Ist das so korrekt? Fällt jemandem ein einfacherer Weg ein?
Alternative wäre natürlich einfach einen schnelleren FPGA zu nehmen, 
Virtex-5 kann bis zu 700 MHz auf den BUFGs. Aber ein viel billiger 
Spartan-6 wär natürlich deutlich attraktiver.

Sebastian

von Christian R. (supachris)


Lesenswert?

Schau dir mal die XAPP1064 an, ich glaube, die geben den Takt auch mit 
dem OSERDES aus. Da erzeugst du aus dem Parallel-Takt den Ausgangstakt 
mit der PLL, betreibst damit den OSERDES und gibst im DDR Modus eine 
konstante Bitfolge 01010101 aus, die dann dein Ausgangstakt ist. Damit 
sollte das eigentlich klappen und synchron sein.

von Sebastian B. (sfreak) Benutzerseite


Lesenswert?

Die Taktausgabe über OSERDES macht natürlich Sinn. Mein Problem ist aber 
die Synchronität von Datan+Takt im FPGA zu dem Referenztakt von außen.

von Christian R. (supachris)


Lesenswert?

Das macht doch die PLL für dich. Oder gibst du den 625MHz Takt noch 
anderweitig an den DAC?

von Sebastian B. (sfreak) Benutzerseite


Lesenswert?

Wie bekomme ich die 625 MHz überhaupt in den FPGA rein und an die 
OSERDES dran? Der Takt ist für so ziemlich alle Clocknetze im FPGA zu 
schnell.

von Christian R. (supachris)


Lesenswert?

Ich schau mir das Datenblatt vom DAC eben mal an. Also volle 2.5GS/s 
wird mit dem Spartan eh nix, denn dazu bräuchtest du 1,25Gb/s auf den 
OSERDES. Das kann nicht mal der -3 SpeedGrade. Da sind max. 1080MBit/s 
möglich. Also kommst du im besten Fall auf 2,08GS/s. Dazu musst du aber 
intern dann einen riesigen Datenbus haben, um die OSERDES zu füttern. 
Die 540MHz kannst du ja intern nicht verwenden, BlockRAM usw laufen nur 
mit etwas mehr als 250MHZ am S6. Die 540MHz kannst du nur intern 
erzeugen, da geht nix mit rein geben in den FPGA.

von F. (Gast)


Lesenswert?

Ich hätte dafür eine Lösung, die ich kürzlich im Bereich CameraLink 
gemacht habe. Sie funktioniert im Spartan6 (getestet) , im Virtex4 
(getestet), im Virtex5 (im Produkt realisiert) und ist im Virtex 6 laut 
Simulation auch lauffähig. Bei Interesse bitte melden. Als Core einmalig 
1000,- zzgl 75,- p.h. fürs Einbauen in dein design.

von Wackelkontakt (Gast)


Lesenswert?

Hallo Sebastian,

...möglicherweise wirst Du es mit den SFP Transceivern realisieren 
können :)

Stichwort : Channel-Bondig.

Gruss
Wackelkontackt

von Johann (Gast)


Lesenswert?

Mach es doch wie folgt.

Du kannst auch externe serializer von Natioal Semiconductor nehmen. Da 
gibt z.B. so 7 auf 1 Serializer. Das gleich kann man dann auch für den 
Takt machne und alles ist super. Die Bauteile benötigen natürlich 
externen Platz und kosten unter 10€ aber es würde gehen.

http://www.national.com/en/interface/serdes.html

Da geht man mit CMOS 3,3 oder 2,5V rein und LVDS Pegel mit der 7 fachen 
Frequenz kommen raus (als Beispiel).

von Sebastian B. (sfreak) Benutzerseite


Lesenswert?

Für den DAC braucht man ohne ext. Serializer schon 28 diff. Pärchen. Die 
SerDes Chips sind da keine Option.

Ich hab inzwischen eingesehen, das es nicht geht. Im Spartan-6 FPGA data 
sheet (ds162) hab ich jetzt die Angabe gefunden, dass auch im 
DDR-Betrieb der maximale Durchsatz 1080 MB/s je I/O beträgt. DDR bringt 
also nicht die Verdopplung der maximalen Datenrate, auf die ich gehofft 
hatte.

Da bleibt wohl nur, einen Virtex-5 zu verwenden.

Sebastian

von Christian R. (supachris)


Lesenswert?

Wenn 3,3V I/Os nicht unbedingt brauchst, nimm lieber den Virtex 6. Da 
bekommst du mehr fürs Geld als beim Virtex 5 und außerdem schneller und 
sparsamer.

von Sebastian B. (sfreak) Benutzerseite


Lesenswert?

Der kleinste Virtex-6 ist mit 450 EUR (Digikey, Einzelstück) aber auch 
doppelt so teuer als der kleinste Virtex-5, der fuer meine Zwecke dicke 
ausreichen sollte.
Wenn der 6er nicht irgendwelche extremen Vorteile beim Platinendesign 
hat (Versorgungsspannungen), ist mir der kleinere 5er allemal lieber.

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.