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
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.
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.
Das macht doch die PLL für dich. Oder gibst du den 625MHz Takt noch anderweitig an den DAC?
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.
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.
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.
Hallo Sebastian, ...möglicherweise wirst Du es mit den SFP Transceivern realisieren können :) Stichwort : Channel-Bondig. Gruss Wackelkontackt
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).
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.