Hallo @ all Ich möchte ein Signal mit dem E2V (ehemals Atmel) 500MHz 12Bit ADC digitalisieren. Das digitalisierte Signal soll in einen externen Puffer z.B. SDRAM geschrieben werden bevor es dann über einen noch nicht festgelegte Schnittstelle an den PC gesendet wird. 1. Welchen FPGA muss ich dafür benutzen? (Bis jetzt habe ich einige Jahre mit einem Spartan 2 gearbeitet.) Der ADC bekommt seinen Clock nicht vom FPGA sondern von einer externen Quelle. Der Clock ist nicht konstant, sondern ändert sich von 10MHz bis hin zu einigen 100MHz. Daher zu meiner Frage wie kommt der ADC und der FPGA mit einer sich verändernen Clock-Frequenz klar. Ist es überhaupt möglich dies umzusetzen?
> 500MHz 12Bit ADC digitalisieren. Schon schön sportlich. > Der Clock ist nicht konstant, sondern ändert sich von 10MHz bis > hin zu einigen 100MHz. Diese Latte liegt recht hoch... Wie schnell verändert sich der Takt? Ist der zu irgendwas synchron? Woher kommt der?
> Daher zu meiner Frage wie kommt der ADC und der FPGA mit einer sich > verändernen Clock-Frequenz klar. Das FPGA sollte mit einer fixen Taktfrequenz laufen. Die Eingangsdaten kommen mit der variablen Frequenz in ein FIFO, dieses wird von FPGA mit einer fixen Frequenz ausgelesen. Dann muß nur garantiert sein, dass alles mit der maximalen Eingangsfrequenz klappt.
Kann, muss aber nicht. Wenn man den Teil, den frontseitig den asynchronen FiFo beschreibt funktionsfähig bekommt, geht das auch mit dem gesamten FPGA :-) Aber um es einfach zu halten, sollte man in der Tat den Wandler zusammen mit dem annehmenden Register direkt takten, wobei man bei 100MHz mit einem schnellen FPGA auch konventionell eintakten könnte. Das ist etwas sicherer im Fall eines unsauberen clocks / problematischen Flanken.
Wenn ich auf dem FPGA einen konstanten Takt verwende, dann muss ich sicherstellen, das ich nicht langsame Frequenzen mehrfach auslese. Wenn ich z.B. einen FPGA-Takt von 500MHz habe, und der ADC gerade mit einer Frequenz von 100MHz angesteuert wird, dann lese ich die gleichen Daten 5 mal aus. Der ADC hat nur einen CLK Eingang, CLK Ausgang und die Datenleitungen. Daher bietet es sich an die CLK-Ausgang des Wandlers an den Clock-Eingang des FPGAs anzuschließen. Nur weiß ich halt nicht ob der FPGA mit einem dynamischen Clock sauber läuft. Ich würde mit dem dynamischen Clock die Daten in einen Dual-Block-Ram schreiben. Mit einem konstanten Clock von ca 400 oder 500MHz die Daten auslesen und in einen externen SRAM schreiben. Bekommt man dies mit einem Virtex 2, Virtex 4 oder Virtex 5 hin?
>Wenn ich z.B. einen FPGA-Takt von 500MHz habe, und der ADC gerade mit >einer Frequenz von 100MHz angesteuert wird, dann lese ich die gleichen >Daten 5 mal aus. Ja, aber Du liest ja den Clock, mit dem beide Chips in dem Fall kommen, ein und reagierst bitte nur einmal je steigender Flanke. :-) Du musst natürlich die Beziehung zwisschen den Daten und dem Takt seitens des Chips beachten und gfs skew nutzen, damit nach erfasster Flanke die Daten korrekt erfasst sind, falls da viel Latenz sein sollte. Of ist es aber so, dass die Daten mit der fallenden gültig sind, dann wird es wieder einfach. Wie gesagt, normalerweise könnte man den Takt, der ADC und FPGA trieben soll direkt für das Eingangsregister nehmen, aber wenn ich so seltsame Sachen höre, dass dieser Takt stark variiert. Warum eigentich?
Xilinx bietet zu diesem Thema eine Application Note an. Da du aber offensichtlich schon zu faul bist um ordentlich zu recherchieren wird das aber eh nix ...
Die Karte habe ich bereits gesehn. Sie ist aber noch nicht verfügbar. @ Zefix Ich will mich erst mal über die Machbarkeit informieren, bevor ich mich in Tonnen von Dokumenten begrabe. Wenn Du die Application Note schon gefunden hast hättest Du ja auch so freunlich sein können und diesen Link hier posten können.
http://www.xilinx.com/publications/xcellonline/xcell_56/xc_pdf/p005-009_56-national.pdf lesen kannste aber alleine nehm ich an ...
Ich sage Bescheid wenn die Karte verfügbar ist, wird nicht mehr lange dauern.....
Bei variabler Taktfrequenz mit AD-Wandlern solltest Du noch folgendes beachten: Normalerweise verwendet man ein Anti-aliasingfilter (Tiefpass) vor dem Eingang des ADC um Spektralanteile mit Frequnzen jenseits der Nyquistfrequenz herauszufiltern. Streng genommen müsstest Du je nach Abtastfrequenz deinen Tiefpass anpassen, da sich mit Änderung der Abtastfrequenz jeweils eine neue Nyquistfrequenz einstellt. Wenn Du es ganz sauber machen möchtest, dann taste konstant mit 500MSPS ab, und rechne eine decimation filter (Abtastratenkonversion) im FPGA. Damit macht dein Wandler immer die volle Performance, der analoge Tiefpass stimmt, und du hast immer die richtige Ausgangsbandbreite. Ist wohl ein bischen Arbeit....
> Streng genommen müsstest Du je nach Abtastfrequenz deinen Tiefpass > anpassen, da sich mit Änderung der Abtastfrequenz jeweils eine neue > Nyquistfrequenz einstellt. Ich glaube es ist einfacher, er sampelt maximal und dezimert dann später,,,
Außer es muss merklich auf Strom geachtet werden. Dann wäre es vielleicht ratsam schon so langsam wie möglich abzutasten.
wer achtet schon auf den Stron? Druch das Glühlampenverbot ist soviel Strom übrig, der verbraten werden muss, da braucht es noch viele FPGAs. Aber passt mal auf: Demnächst kommt ein FPGA Verbot. Dann würfen nur noch stronpsarende Typen verkauft werden. Jede LED braucht dann einen Shutdown.
Full Ack! Die eigentlichen Probleme liegen in der Nachhaltigkeit des Projekts. Vergiss es!
>Außer es muss merklich auf Strom geachtet werden. Dann wäre es >vielleicht ratsam schon so langsam wie möglich abzutasten. Nicht die ganze wahrheit, FF brauchen nur beim Umladen Leistungen, also ist es Leistungsmäßig kein so großer Untershied ob du eine Konstantspannung mit 50 oder 500 Mhz abtastet im vergleich zum Abtasten einer 50 MHz Spannung (bei Vollaussteuerung).
Hallo zusammen !! Ich suche eine Lösung für ein Problem und zwar wie kann ich eine Datenmenge von 23Mbyte/s die aus einem ADC der 14 bit auflösung hat , mit einem MC bearbeiten?? sprich der MC soll die Daten speichern und auswerten..hat jemand von euch einen Vorschlag??? Ich habe schon ein NEC V850 E2/Me3 ( 200 MHz) ausgesucht aber ich weiss es nicht ob er fähig ist um die Daten zu speichern und auch auswerten!!!????? Gruss hanane
Du fragst in einem FPGA Forum, also wird die logische Antwort hier sein: Nimm einen FPGA Ein Spartan 3 Reicht da völlig
Das mit dem PDF hört sich schon mal ganz gut an. Ich werde es mir über Weihnachten mal durch den Kopf gehen lassen. Dann habe ich sicherlich einige Fragen dazu. Vielleicht weiß dann auch einer eine Antwort darauf ^^. Schon mal Danke für die Informationen.
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.