Hat jemand der geneigten Experten hier Kenntnis über die Existenz von
Chips / Asix, die in der Lage sind, FFTs zu berechnen? Ich habe da eine
etwas grössere Applikation im design und will nicht massenhat FPGAs
verschwenden. Für die DDSen z.B. habe ich schon chips gefunden.
Dies ist eine so oft benötigte Funktion, die zudem auch meistens noch
direkt nach den Wandlern / den Eingangssignalen eines Moduls benötitg
wird, dass man sie noch sehr gut handlen könnte, auch wenn sie in einem
externe Chip sässe - bzw wäre das für bestimmte Anwendungen sogar
besser.
Weiss da jemand etwas?
Wie machen das z.B. Firmen wie Rohde & Scharz in ihren Analyzern? Sind
das alles FPGAs?
Luis Costa schrieb:> Wie machen das z.B. Firmen wie Rohde & Scharz in ihren Analyzern? Sind> das alles FPGAs?
Und wenns keine sind, haben R&S sicherlich genug Knete, um eigene ASIC
anfertigen zu lassen...
Was spricht denn gegen ein FPGA, sofern es schnell genug ist?
Luis Costa schrieb:> Wie machen das z.B. Firmen wie Rohde & Scharz in ihren Analyzern? Sind>> das alles FPGAs?
Sind alles kundenspezifische Bausteine entweder aus eigener Entwicklung
und Fertigung, oder eines Bausteinherstellers.
Nur bei den Lowcost Modellen könnte es sein, das ein Microcontroller die
Aufgabe mit übernimmt.
Ralph Berres
Wird es nicht geben; es ist nun mal zu einfach, um die ALUs, den
Speicher und die Bit-Reverse-Adressierung noch eine Programmlogik
herumzubasteln und das ganze dann DSP zu nennen. "Dumme" Koprozessoren
die nur eine einzige Sache beherrschen sind ja nicht ohne Grund
praktisch ausgestorben.
In DSOs befinden sich dafür in aller Regel DSPs von der Stange.
Mikrocontroller sind mir hier bisher noch nicht begegnet. Es wäre aber
durchaus denkbar, dass sich das mit Bausteinen auf Basis des Cortex M4
zukünftig ändern könnte (bspw. STM32F3 oder STM32F4).
Wenn du deine FFT also auslagern möchtest, dann wären diese sicherlich
eine gute Wahl.
Auslagern möchte ich es nur dann, wenn es billig(er als FPGA) ist. Für
eine 8 Kanal FFT mit jeweils 8192 Punkten bei 8 fach Überlappung, setze
ich mir (m)einen Virtex schon zu 60% zu! Ich finde die anteiligen Kosten
von fast 300 Euro einfach zuviel.
Mit einer ASIC Massenwaren müsste das doch locker zu unterbieten sein.
Für eine FFT-pipeline braucht man ja nur einen Eingangsport und einen
Pufferegister. In meinem Fall einfach 8192x8. Die 16k sollten nicht viel
kosten. Ansonsten ist FFt ja nur ADD/MUL und Akkumulation.
>DSPs
scheiden natürlich aus, weil ich es schnell brauche. Praktisch kommen
wenigstens 200MHz samples. Ein DSP könnte maximal 1 Kanal mit einer
Überlappung rechnen.
Da wir alle Krösus heißen und uns die Sonne aus dem A*** scheint können
wir selbstverständlich auch hellsehen. Daher war auch jedem hier deine
Anforderung klar:
> 8 Kanal FFT mit jeweils 8192 Punkten bei 8 fach Überlappung> 200MHz samples
Bevor das blinde raten weiter geht solltest du vielleicht deine
Anforderungen klar definieren, ansonsten kommen im Verlauf solcher
Diskussionen immer neue Überraschungen und gewissen Lösungen würden
wegen deines Anforderungsprofils gar nicht erst genannt werden.
Luis Costa schrieb:> 8 Kanal FFT mit jeweils 8192 Punkten bei 8 fach ÜberlappungLuis Costa schrieb:> wenigstens 200MHz samples
Frage mal bei Rohde&Schwarz an, ob die dir das Asic aus dem neuen RTO
anbieten.
Der könnte sowas eventuell packen ( oder doch nicht?? ).
Ralph Berres
Die verkaufen nichts , im Gegenteil, die kaufen ein:
Ich hatte letztes Jahr mit einer Firma zu tun, die Time to Digital
Converter baut. Die haben einen Spezial-ASCI mit AD-Wandler mit 10 Gsps.
Für den hat sich dann mal ein Herr von der R&S interessiert. Den könnten
sie angeblich gut gebrauchen.
Andreas Schwarz schrieb:> Fixed oder Floating Point? Welche Genauigkeit?
Ist mir egal, fixed point ist ok, mache ich im FPGA auch nicht anders.
Georg A. schrieb:>> setze ich mir (m)einen Virtex schon zu 60% zu!> Soll auch Spartans geben...
Du meinst, die Spartane sind leistungsfähiger und grösser, ja ;-)
branadic schrieb:> Da wir alle Krösus heißen und uns die Sonne aus dem A*** scheint können> wir selbstverständlich auch hellsehen.
ja, ok, hier sind die Anforderungen. Es ging ja auch nur darum, zu
schauen, was es überhaupt gibt und nicht euch drauf anzusetzen, es
anhand einer SPEC zu suchen. Ich bin flexibel, wenn der Chip was taugt.
Von mir aus darf der ruhig etwas Latenz haben, und langsamer getaktet
werden, dann nehme ich halt mehrere parallel.
Auch eine floating point ASIC wäre ok, könnte ich ansteuern.
Weils mich mal interessiert hat, hab ich grad mal kurz gesucht:
http://www.eonic.com/index.asp?item=32
Aber sieht nicht gerade billig aus da Militär/Aerospace.
> Du meinst, die Spartane sind leistungsfähiger und grösser, ja ;-)
Nein, aber deutlich billiger. Und wenn du schon
> Von mir aus darf der ruhig etwas Latenz haben, und langsamer getaktet> werden, dann nehme ich halt mehrere parallel.
schreibst, wäre das eine Alternative.
Georg A. schrieb:> Nein, aber deutlich billiger
Wenn er mit seiner APP schon einen mittleren Virtex verbrät, braucht er
im Spartan noch mal mehr Silizim. Das dürfte kaum billiger werden. Und
selbst die billigen Spartan gehen noch mit einigen 100,-.
So einen FFT-ASIC könnte ich auch gebrauchen! Mit aktuellen Technologien
sind bis an die 5GHz machbar. Für Multipliziereinheiten, wie man sie in
FPGAs kennt, werden Raten um die 1.2GHz angegeben. Das reicht schon für
eine Teilsequenzialisierung, wenn der Chip nur 200MHz können muss.
Allerdings kann man es sich ja beim ASIC nicht aussuchen sondern muss
kaufen, was es gibt und der oben gelinkte Chip ist nicht so dolle, zumal
man nicht weiss, was er kostet!
8192x8 200Megasamples
Wenn du das lückenlos machen willst, dann hast du 40us um 8 FFTs mit
jeweis 8192 Punkten zu machen. Also ohne Unmengen paralleler
Multiplizierer und Accus geht das nicht. Da wird wohl dein Virtex FPGA
glühen.
Der TO will '8 fach Überlappung', dh er hat für die 8 FFTs 5us Zeit,
also 8*8192*13*2 MACs in der Zeit, macht schlappe 340 GigaMACs. Der
fetteste Spartan 6 hat 180 Mutiplizierer die mit 390MHz laufen, soweit
ich das verstehe, imer noch Faktor 5 zu langsam.
So einfach kann man mit den 4 Grundrechenarten Phantasien an der
Realität zerschellen lassen.
Cheers
Detlef
Wie kommst du auf diese Zahl? 8*200e6/8192=195e3 FFT/s -> um die 40
GMAC/s. Das sollte auch einer der High End C6000 noch schaffen. Und bei
so stark überlappenden FFTs kann man auch noch optimieren weil man
sowieso vieles mehrfach berechnet.
Aber solange die Anforderungen so vage sind (nicht mal die Genauigkeit
ist bekannt) macht es keinen Sinn über Alternativen zu diskutieren.
Zu Deiner Rechnung ist nochmal Faktor 8 drin: Er will 8 Kanäle und 8fach
überlappend.
eine FFT: 8192*13*2~213k
acht Stück: 1M7
das 24414Mal die Sekunde: 42Gig
achtfach überlappend: 332Gig
Cheers
Detlef
Ich glaube kaum, dass es sich für eine irgendwie geartete
durchschnittliche Anwendung lohnt, eine FFT extra in einen ASIC zu
giessen. Wenn es sowas gäbe, könnte man sich dranhängen.
Der genannte Chip ist schon ziemlich mächtig, besonders, da er schon
seit 2002 im Markt zu sein scheint. Dass ist ja halbleitertechnisch
gesprochen ein Lichtjahr!
Ich denke aber nicht, dass der einem FFT Core vergleichbar ist. Im FPGA
bekomme ich die Daten aus einer pipeline raus und kann mich direkt mit
weiteren Operationen latenzarm dranhängen. Bei dem Chip ist das nicht
notwendigerweise so, dass die Daten mit derselben geringen Latenz
rauskommen. Will man das direkt darstellen oder im Frequenzbereich
fenstern, braucht man native Reihenfolge - in vielen anderen Fällen
nicht.
Beim FPGA kann ich mir das aussuchen und bekomme auch bei natural order
einen akzeptable Latzenz weil der Core daraufhin anders gebaut wird.
Beim ASIC bekomme ich das, was ich habe - warscheinlich eine
Reihenfolge, die für das platzsparende Verarbeiten gut ist. Damit muss
ich manuell umsortieren und das kann bei langen FFTs dauern!