Hi Folks! Hab mal ne frage zu FPGA`s und DSP`s. Ich möchte mich in nächster Zeit ein wenig mit digitaler Signalverarbeitung beschäftigen (speziell Audio). Nun hab ich überlegt was wohl sinnvoller ist: Die Einarbeitung mit einem DSP (evtl. Board) oder mit einem FPGA (evtl. auch Board). Hatte bisher nur mit dem Spartan 3E von Xilinx und Beschreibung in VHDL (Grundlagen) Kontakt. Ein FPGA scheint vielseitiger zu sein, aber mit einem DSP kommt man wohl schneller zu Ergebnissen. Sehe ich das richtig? Außerdem sind DSP-Boards teurer als FPGA-Boards (zumindest nach Suchen im Netz). Kann mir jemand ein paar Pros und Kons aufzählen? Wäre echt KLasse.
Da hast Du schon selber alles aufgezählt was dafür und was dagegen spricht. Ich würde FPGA nehmen, aber nur, weil ich mich damit besser auskenne. Soweit ich weis (ich lasse mich gerne korrigieren), gibt es keine freien Tools für DSP (Entwicklungsumgebung und Co). Wenn man also ein DSP Board hat, ist man an dieses gebunden, und sollten die 60 Tage (oder wie auch immer) auslaufen, hat man ein Problem. Bei DSPs ist es so, dass man für jede Anwendung andere nehmen sollte (Sharks, BlackFin...). Da verliere ich ständig den Überblick ;-) Gtüße, Kest
Vielleicht sollte man noch hinzufügen, daß DSPs in C programmiert werden können, wobei man sich auf die Implementierung konzentrieren kann, während es bei der Realisation in FPGAs um Optimierungen und effizientes Umsetzen geht, was eine ganz andere Aufgabe ist. Wer Ergebnisse haben will, der greift zu DSPs.
@weltbester FPGA-Pongo > Wer Ergebnisse haben will, der greift zu DSPs. Aha, dann machen also all die Entwickler die Signalverarbeitung mit FPGAs machen einen Fehler? Du solltest vielleicht auch mal darüber Nachdenken warum die ganzen Multiplier, Blockrams und ggf. spezielle DSP-Blöcke (-> DSP48) in FPGAs zu finden sind. Die sind ganz sicher nicht dort weil sie niemand braucht. @Dr. Nick DSPs haben den Vorteil das schon einiges an spezieller Peripherie drauf ist (Audio-DACs, I2S-Schnittstellen usw.). Das müsstest du mit dem FPGA erst selber entwickeln. FPGAs sind wieder im Vorteil wenn Dinge massiv parallel erledigt werden müssen.
Hallo, Am besten ist natuerlich beides zusammen, wenn man richtig Rechenpower will. FPGAs sind i.A. gut fuer "dumme", aber schnelle Operationen ohne komplexe bedingte Verarbeitungsspruenge. Also vor allem fuer Vorverarbeitung von Daten, die anschliessend in ein "intelligentes" System gehen. Man kann natuerlich richtig klotzen und gleich einen DSP-Core implementieren, aber der Aufwand der Entwicklung und Testen ist erheblich. Fuer Audio/Video DSP (wo kein floating point noetig ist) wuerde ich den Blackfin empfehlen, da er sowas wie die eierlegende Wollmilchsau unter den DSPs ist. Man kann ihn sowohl im DSP-Modus als auch als komplexes uClinux-System mit DSP-Option betreiben. Das macht die Ansteuerung von Peripherie sehr einfach, man hat mit einem Evalboard am ersten Tag schon Erfolgserlebnisse. Spaeter kann man dann immer noch optimieren. Billig sind die offiziellen Tools allerdings nicht, aber inzwischen ist der Gnu C-Compiler sowieso der bessere Compiler... Von FPGAs wuerde ich von der Komplexitaet her erst mal fuer Audio die Finger lassen, wenn die Performance nicht unbedingt noetig ist. Ganz einfache Kostenfrage, Entwicklungszeit ist massiv viel hoeher (dafuer natuerlich ein grosser Lerneffekt da). Fuers Endgeraet sollte man auch Programmierungsweise und Chipkosten in Betracht ziehen. Gruss, - Strubi
Wollte noch anfuegen, falls es nicht klar geworden ist: Die Toolchain beim Blackin ist komplett kostenlos - wie alle Gnu compiler. Gibt's uebrigens auch fuer den SHARC.
Ok, danke mal für die Infos. Also wird es eher ein DSP-Board werden. Hab auch schon 2 im Visier: Einmal ein Blackfin: http://de.farnell.com/jsp/search/productdetail.jsp?sku=8546185&N=401 oder eventuell ein AVR32: http://elmicro.com/de/atngw100.html Der AVR32 soll ja irgendwie ein Hybrid zwischen µC und DSP sein. Hat jemand Erfahrung damit? Aber wir wahrscheinlich nicht die Leistung des Blackfin haben. Gruß, Dr. Nick
Es kommt immer darauf an, was man machen will. Filter und andere Dinge lassen sich super parallisieren, da kann der FPGA seine Stärken ausspielen. Es dauert allerdings länger bis man einen Code entsprechend auf die nötige Taktfrequenz optimiert hat. Ein DSP ist nicht so universell, da die Hardware vorgegeben ist. Aufgrund der Programmierung in C ist das Schreiben von Code aber deutlich einfacher. Zum Vergleich: Mein Stratix IIGX90 Board hat 384 9x9 HardwareMACs, die eine Multiplikation je Taktzyklus schaffen. Bei 200 MHz ergibt das 76,8 Milliarden Multiplikationen je Sekunde. Und dann hat man noch viel Platz für Filter, FFTs und tonnenweise anderes Zeug. Ein 81 Tap fixed point FIR-Filter z.B. braucht nur etwa 1-2% der Chipfläche. Im DSP gibt es zwar einige MACs und eine deutlich höhere Taktfrequenz (über 1 GHz). Den Durchsatz eines FPGA erreicht man jedoch nicht, falls der Algorithmus gut parallelisierbar ist.
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.