Ich brauche zwei Kanäle, auf denen ich jeweils mit 160MSPS auf einen 8-bit DAC Daten ausgeben will. Die daten können vorher in den FPGA geladen werden und sind 100us lang. Das heißt ich brauche einen Speicher von (16000*8*2)/8 = 32kbit. Also der FPGA bekommt ein Triggersignal und ließt den Speicher aus und gibt es direkt an die zwei DACs weiter. Die Daten können vorher langsam eingelesen werden. Ich will ein PCB dafür designen, da ich mehrere Module brauche. Für mich stellt sich nun die Frage welchen FPGA ich dafür nehmen sollte.
Hallo, ich hatte 2020 ein Board mit FPGA XC7S50, DAC AD9747 und ADC AD9650 gebastelt. Zusätzlich drauf war ein FT2232H für JTAG und FIFO Interface und auch etwas RAM in Form von einem HyperRAM Baustein. Hat funktioniert, liegt jetzt im Schrank (-: Schaltplan (recht unordentlich) und Layout gibt es in diesem Thread. Da ist auch ein Bild der Platine (Layout).
M. M. schrieb: > Das heißt ich brauche einen Speicher > von (16000*8*2)/8 = 32kbit. Du meinst 32 kB, oder? 160e6 sps · 100e-6 s · 8 bits/sample · 2 = 256 kbits (sps · t · Bits/sample · Kanäle) Wie werden die Daten zu dem oder den DAC übertragen? Wenn parallel sollte das kein großes Problem sein. Wenn seriell, musst du mit deutlich mehr als 1 GB/s übertragen. Dann braucht das FPGA entsprechend schnelle Pins bzw. Transceiver. PS: Es wäre schön, wenn die Vorschau mal den Text so anzeigen würde, wie er auch im Beitrag dargestellt wird.
:
Bearbeitet durch User
Florian schrieb: > Du meinst 32 kB, oder? Ja, klar, 32kByte. Nicht bit. Da ist es vermutlich sinnvoll den internen Block RAM zu benutzen. Aber 160MHz Systemfrequenz sind schon eine Nummer oder? Wie siehts da mit Lattice ECP-5 aus? Das Interface ist parallel. Sowas wie den AD9704 hätte ich angedacht. Gustl B. schrieb: Ah, cool. Ich werds mir anschauen!
:
Bearbeitet durch User
M. M. schrieb: > 160MHz Systemfrequenz sind schon eine Nummer oder? Nicht wirklich. Außerdem geht es auch mit 80 MHz DDR am Eingang und Wertbreitenverdopplung zum BRAM. Die können 2x8 zu 16 Bit parallel. Das sind dann 80MHz SYSFREQ und ging schon mit FPGAs vor 20 Jahren. M. M. schrieb: > mit Lattice ECP-5 Der ist da schon etwas unterfordert. Die Lattice sind in dem Bereich generell meist günstiger. Ich verbaue die selber aber so gut wie nie, weil mir die toolchain nicht gefällt.
M. M. schrieb: > Also der FPGA bekommt ein Triggersignal und ließt den Speicher aus und > gibt es direkt an die zwei DACs weiter. Die Daten können vorher langsam > eingelesen werden. BTDT. Aber mit etwas höherer Samplerate, Bitbreite und Speichertiefe. M. M. schrieb: > Da ist es vermutlich sinnvoll den internen Block RAM zu benutzen. Prinzipiell ja, aber ich würde trotzdem empfehlen schon mal externen RAM vorzusehen. Am Ende kommt der Chef/Kunde und will eine höhere Samplerate oder einen breiteren DAC oder umschaltbare Waveforms und dann fängt man mit der Hardware von vorne an. > Aber 160MHz Systemfrequenz sind schon eine Nummer oder? Das kommt auf die Strukturbreite im FPGA an (und natürlich auf die Länge der Logikpfade). Ein (eher unzureichender) Hinweis für die mögliche Geschwindigkeit ist es zu schauen, wie schnell die IOs schalten können. Intern geht dann meist etwas mehr. Außerdem kann man prüfen, wie schnell und breit diverse High-Speed-Transceiver am internen Interface arbeiten. Hier mal ein paar Zahlen aus meiner Praxis: - Kintex 7 -> 250 MHz - Stratix IV -> 133 MHz - Mach XO2 -> 80 MHz
Rick D. schrieb: > Hier mal ein paar Zahlen aus meiner Praxis: > - Kintex 7 -> 250 MHz > - Stratix IV -> 133 MHz Das ist aber noch ein gutes Stück wech vom Machbaren. :-) Ein Kintex läuft bei unserem Data-Logger mit intern 400 MHz, die IO-Pins mit dem Doppelten, die Serializer in den IOs sogar mit dem Dreifachen. Das geht so auch zum DaVinci-Prozessor. Der zuckelt mit 1,2GHz. Ich weiß es, weil ich die Schnittstellen-Spec und die Software dafür geschrieben habe. Wir setzen ein fertiges Modul ein, das fast unverändert läuft. Bei den langsameren Baugruppen und FPGAs hat der einfach mehr wait states und arbeitet mit 3x300 = 900MHz. Vor 10 Jahren haben wir das mal in einem ARINC-Test-Gerät verbaut, war ein "Flugzeugbus" mit 600MHz, damals 300x2. Heute macht der mit 400x2. Transceiver laufen mit 8x1Gbps. 8 Kanäle mit b8b10 zu 800MHz. Die ADCs ohne wire code mit 200 Msps half channel in 10 Bits. Zuletzt verbaut in einer Marineanwendung zur Funkkommunikation. Mag wer kaufen? Sind super preiswert. Steuersystem komplett Linux, frei programmierbar mit Verbindung zu TI/EMIF, wishbone oder einem Zynq/400 MHz AXI.
Rick D. schrieb: > es zu schauen, wie schnell die IOs schalten können. Intern geht dann > meist etwas mehr. Die Frage ist, WAS vom Internen noch schneller läuft. Die IOs der nachfolgend genannten Kintex und Stratix schalten im Bereich unter 100ps, was etliche Gigahertz bedeuten würde. Schneller (nutzbar) sind intern nur die LUTs. Da habe ich mit Laufzeit in die Nachbarleitung Werte von 30ps beim Stratix im Kopf, die ich mal zur Phasenregelung genutzt hatte. Alles andere ist intern im Bereich 400-600MHz anzusetzen und das auf nur kurze Distanzen und im wesentlichen Schalten und Takten - also z.B. schon mal keine breiten MUX mehr. > Hier mal ein paar Zahlen aus meiner Praxis: > - Kintex 7 -> 250 MHz Ich nehme an, das war der interne Takt ? Die IOs vom Kintex schalten mit > 1.5GHz, die vom Artix 7 mit bis zu 1.2GHz in den jeweils schnellsten Versionen. Ein langsamer Artix 7 arbeitet am Rand der zulässigen Betriebstemperatur an den IOs mit formell 400MHz DDR, also 800 Mbps und könnte intern mit z.B. 200MHz dual channel laufen. Hatte ich kürzlich in einem Projekt. Privat getestet und genutzt sind knapp 200MHz single über 8 Leitungen parallel, gemached, allerdings zwischen handverlöteten FPGA-Modulen und und bis 15cm Zwischenraum. Am Laufen hatte ich diesbezüglich z.B. mal einen Eye-Pattern-Tester mit einem Cyclone IV auf dem DE115-board von 2011: Das hat 4 x 250MHz DACs. Laufen auf 125MHz x 2. http://www.96khz.org/htm/signalanalyser.htm
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.