Spartan-6: 625 MHz Eingangstakt

OP Persönliche Seite #2539286
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
#2539330
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.
#2539449
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.
Gast #2539734
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.
Gast #2541807
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).
OP Persönliche Seite #2541838
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

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