Forum: FPGA, VHDL & Co. DSP oder FPGA für digitale Signalverarbeitung?


von Dr. N. (dr-nick)


Lesenswert?

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.

von Kest (Gast)


Lesenswert?

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

von weltbester FPGA-Pongo (Gast)


Lesenswert?

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.

von Mike (Gast)


Lesenswert?

@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.

von strubi (Gast)


Lesenswert?

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

von strubi (Gast)


Lesenswert?

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.

von Dr. N. (dr-nick)


Lesenswert?

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

von Sym (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.