Forum: FPGA, VHDL & Co. FPGA und DSP


von F. K. (crack)


Lesenswert?

Hallo,

ich will auch den Vergleich DSP u. FPGA machen.

Folgendes habe ich bis jetzt selbst rausgefunden:
"Ein DSP kann nur digitale Signale, d.h. zeit- und wertdiskrete, 
verarbeiten."

Für was gibt es dann DSPs noch? Man kann doch mit FPGAs alles machen?

Ich kann ja nicht überall schreiben, dass FPGAs teuerer sind und aus.

Kann mir da wer bitte weiterhelfen?

mfg

FK

: Bearbeitet durch User
von vilex (Gast)


Lesenswert?

ich glaube du hast da ein komplettes verständnis problem ....

ein FPGA (field programmable gate array) hat wie im namen schon steckt 
vereinfacht gesagt mehrere Logikgatter welche miteinader verknüpft 
werden und durch verschiedene Clocks getaktet und synchronisiert werden. 
für diese teile verwendest du eine Hardware beschreibungssprache wie 
vhdl verilog etc.. das heißt du kannst jede beliebige hardware logik 
digital schaltung entwerfen und in den FPGA "laden"...

ein DSP (Digitaler Signal prozessor) ist ein fertiger Prozessor mit 
einer eigenen Recheneinheit um gewisse Rechnungen schneller lösen zu 
können als ein normaler Prozessor .. hier gibt es register die du setzen 
kannst und kannst assembler etc. verwenden.

beim FPGA kannst du auch rechenalgorithmen bauen allerdings sind die 
dann hardcoded und nicht mit software wie im prozessor veränderbar...

dir fehlt da einiges an wissen...

von F. K. (crack)


Lesenswert?

Was fehlt mir da? Ich verstehe nicht ganz, was ich da falsches gesagt 
habe.

Man kann doch einen DSP mit FPGA's realisieren. Soll man DSP mit FPGA 
nicht vergleichen? Ich muss es aber für das Referat, dass ca. 10 Minuten 
lange dauern sollte.(Redezeit wird kurz sein, da es eher ein 
Prüfungsreferat ist. Lehrer stellt fragen dazu).

von fpgaler (Gast)


Lesenswert?

Üblicherweise realisiert man in einem FPGA dann keinen 
general-purpose-DSP als Softcore, sondern man hat ein ziemlich konkretes 
Signalverarbeitungsproblem das es zu lösen gilt. Und dafür baut man sich 
dann im FPGA eben eine Verarbeitungskette wofür man aus 
Platz+Performancegründen DSP-slices nutzen kann. Die sind aber für sich 
genommen nicht turing-vollständig, sondern sind in erster Linie 
Hardware-MAC-Einheiten.
Klassischer Anwendungsfall für sowas sind Software Defines Radios. Da 
kann man dann die Filter, Kanal-splitting und Demodulation schön 
pipelinisiert hintereinander realisieren und bekommt auch wirklich pro 
Takt ein Sample rein+raus.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

F. K. schrieb:
> Man kann doch einen DSP mit FPGA's realisieren. Soll man DSP mit FPGA
> nicht vergleichen?
Man kann aus Mehl Brot machen. Soll man dann nicht Mehl mit Brot 
vergleichen?

Gut, das war jetzt ein wenig plakativ gesagt, aber aus Mehl kannn man 
eben noch ganz was anderes als nur Brot und Brötchen machen.

Und jetzt ersetzt du Mehl mit FPGA, Brot mit DSP, und Brötchen mit uC. 
Dann siehst du, dass du Kuchen, Torten, Crepes, Pizza, diverse 
Nudelsorten und sonst noch Einiges nicht beachtet hast...

F. K. schrieb:
> Ich muss es aber für das Referat, dass ca. 10 Minuten lange dauern
> sollte.(Redezeit wird kurz sein, da es eher ein Prüfungsreferat ist.
> Lehrer stellt fragen dazu).
Man kann ganz problemlos sogar sehr viel länger als 10 Minuten über 
FPGAs reden, ohne uC und DSP mit einem einzigen Wort zu erwähnen. Und 
wenn ich ein Referat über FPGAs zu halten hätte, dann würde ich das tun. 
Eine Erwähnung von uC/DSP wäre mir gerade mal einen kleinen Nebensatz 
wert...

: Bearbeitet durch Moderator
von Strubi (Gast)


Lesenswert?

Moin,

zäum das Pferd doch von unten auf:
- Bilder von konkretem Silizium-Die suchen: Warum sieht ein FPGA ganz 
anders aus als ein DSP?
- Was bedeuten die Strukturen (4er-LUT elemente versus harte DSP 
pipeline)
- Das ganze nochmal in einem Schema (Flipflops, LUTs, versus MAC-Units)
- Wo kreuzen sich die beiden Domänen (DSP-Units und dediziertes Block 
RAM auf FPGA)
- Anwendungsfall: parallelisierte Beschreibungssprache versus linear 
strukturierte Programmiersprache
- Simulation versus Debugger/In Circuit Emulation

(die Fachwörter musst Du entsprechend durchs Wikipedia kloppen)

Wenn ich meinen Wissensstand um 20 Jahre dekrementieren würde, fände ich 
genau das interessant, aber nicht in 10 Minuten reingedrückt. Aber sei's 
drum...

Grüsse,

- Strubi

von ./. (Gast)


Lesenswert?

Literatur huelft:

Uwe Meyer-Baese
Digital Signal Processing with Field Programmable Gate Arrays
Fourth Edition

Springerverlag

von F. K. (crack)


Lesenswert?

Danke Leute.

Aber ich MUSS in dem Referat DSP's mit FPGA's vergleichen. Und es darf 
nicht länger wie 10min. dauern(das Referat).

Also kann ich ja wohl kaum den ganzen DSP erklären. Kann man das nicht 
massiv einschränken?

Also z.B. den einfachen Aufbau von einem DSP mit FPGA vergleichen, oder 
vor- und nachteile von dsp gegenüber FPGA?

Kann mir da in der hinsicht wer weiterhelfen bitte, also was sind denn 
vor- und nachteile von einem dsp. Was kann der DSP mehr, was der FPGA 
nicht kann?

von Dussel (Gast)


Lesenswert?

F. K. schrieb:
> Man kann doch einen DSP mit FPGA's realisieren. Soll man DSP mit FPGA
> nicht vergleichen?
Meiner Meinung nach kann man das vergleichen mit Steckbrett und IC. Das 
FPGA ist in dem Beispiel das Steckbrett mit einer Kiste Bauteile und der 
IC ist der DSP. Als IC nehme ich mal einen Operationsverstärker.
Auf dem Steckbrett kannst du jetzt einen Operationsverstärker nachbauen, 
wenn du willst, sogar mehrere, aber im Alltag wird kaum jemand hingehen 
und Operationsverstärker auf dem Steckbrett aufbauen. Deshalb wird man, 
wenn möglich, eher den IC bzw. DSP nehmen, weil er kleiner billiger und 
einfacher ist. Aber der IC hat eben nur eine bestimmte Funktion, das 
Steckbrett ist da flexibler, damit kann man alles machen, was von Platz 
draufpasst.
Das Beispiel hinkt daran, dass man den IC auf das Steckbrett stecken 
kann. Das geht natürlich mit DSP und FPGA nicht.

von Guest (Gast)


Lesenswert?

Hat den mal jemand auf den Trichter gebracht, dass es sehr viele FPGAs 
mit DSP Slices gibt? Nur um die Verwirrung maximal zu machen?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Ein Vergleich von FPGA mit DSP ist nur dann sinnvoll, wenn Sie beide die 
selbe Aufgabe zu erledigen haben. Und dann kann man nicht die 
Architektur vergleichen, sondern nur die Leistungsfähigkeit der 
jeweiligen Systeme. Aber schon da ist ja die Frage, welcher DSP mit 
welchem FPGA verglichen werden soll. Und welche Aufgaben die zu lösen 
haben.

Starker Tobak für 10 Minuten und viel, viel Platz für Fragen 
hinterher...

von Dussel (Gast)


Lesenswert?

Lothar Miller schrieb:
> Starker Tobak für 10 Minuten und viel, viel Platz für Fragen
> hinterher...
Das schon, aber in zehn Minuten kann man schon was schaffen. Erstmal 
eine Erklärung, was das beides ist, am Besten mit Bildern, dann die 
Einsatzgebiete und zum Schluss noch, warum beides eingesetzt wird und 
nicht nur eins davon.

von F. K. (crack)


Lesenswert?

Danke, Leute.

Das Referat soll aber nicht aus Vergleichen zwischen DSP und FPGA 
bestehen. Ich habe jetzt etwas über die Funktion der FPGAs, VHDL, uC und 
asic vs fpga und jetzt fehlt mir halt noch dsp vs fpga.

Kann ich das nicht extrem verallgemeinern? Also z.B. was ist teurer fpga 
oder dsp? Wann setzte ich den FPGA ein und wann den DSP? Also für 
welchen Aufgaben haben DSP's einen Vorteil gegenüber FPGA. Ich muss 
nicht tief in die Materia reingehen, denke ich.

Oder: Was ist schneller FPGA oder DSP? Solche Fragen kann ich doch 
einbringen denke ich.

Aber kann mir jemand da ein bisschen mit dem oben genannten Fragen 
weiterhelfen bitte?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

F. K. schrieb:
> Also z.B. was ist teurer fpga oder dsp?
Etwas kann viel kosten und trotzdem billig sein, wenn die Aufgabe anders 
nicht lösbar ist.
Ansonsten: die Preise für teurere High-End FPGAs können sich schon mal 
im 20kEuro Bereich abspielen. Nur ist das eben die Ausnahme...

> Wann setzte ich den FPGA ein und
> wann den DSP?
Das ist er doch, der Knackpunkt.

> Also für welchen Aufgaben haben DSP's einen Vorteil
> gegenüber FPGA
> Oder: Was ist schneller FPGA oder DSP?
Wir drehen uns im Kreis: für welche Aufgabe?
> Was ist schneller FPGA oder DSP?
Was ist flexibler?
Darauf kommt es z.B. den Telekommunisten an, die heute diese und morgen 
jene Kompressionsalgorithmen implementieren möchten.

> Solche Fragen kann ich doch
> einbringen denke ich
Wenn dein Referat aus Fragen bestehen darf...

von F. K. (crack)


Lesenswert?

Lothar Miller schrieb:
> Wenn dein Referat aus Fragen bestehen darf...

Natürlich soll es die Antworten auf die Fragen enthalten^^.

Lothar Miller schrieb:
> Wir drehen uns im Kreis: für welche Aufgabe?

Ich habe keine Ahnung welche Aufgabe. Ich suche ja hier um Rat, wie ich 
den Vergleich von DSP und FPGA ein bisschen einbringen kann.

Lothar Miller schrieb:
> Das ist er doch, der Knackpunkt.

Weiß man zu heutzutage nicht, wann man was einsetzt? Kann man wirklich 
den DSP nicht mit dem FPGA kurz vergleichen?

von Christian R. (supachris)


Lesenswert?

Natürlich kann man die vergleichen. Aber das ergibt wenig Sinn, weil es 
ziemlich verschiedene Architekturen sind. Der DSP ist ein ASIC, der auf 
Signalverarbeitung spezielisiert ist. Meist mit Floating Point 
Rechenwerken. Außerdem hat der meistens noch Interfaces für alles 
mögliche. Das meiste davon ließe sich auf einem FPGA wohl auch 
realisieren, aber schon bei Floating Point wirds haarig. Ein DSP Block 
auf einem FPGA ist übrigens nichts weiter als ein Multiplizierer mit 
Addierer und bissl Zeugs drum herum. Und der kann kein Floating Point. 
Eine Realisierung eines kompletten DSP Prozessors auf dem FPGA wäre zwar 
möglich, aber auch ziemlich langsam, da der einfach nicht so speziell 
dafür gemacht ist wie der DSP. So ein aktueller DSP rennt ja mit 500MHz 
aufwärts. Dafür könnte man mit einem FPGA viele Datenströme parallel von 
irgendwo nach irgendwo schaufeln, und Rechenoperationen auf die Anwenden 
und das on the fly. Das geht wiederum mit dem DSP schlecht, weil der 
meist nur eine CPU hat. Ein FPGA kommt eigentlich immer dann zum 
Einsatz, wenn massiv parallele Datenmengen ohne viel Intelligenz bewegt 
und verarbeitet werden müssen.

von Grendel (Gast)


Lesenswert?

F. K. schrieb:
> DSP nicht mit dem FPGA kurz vergleichen?

Das "kurz" ist hier wohl das Problem.

Es gibt hunderte von Varianten von DSPs und FPGAs und es gibt dutzende 
von Eigenschaften und vieles davon ist nicht direkt vergleichbar.



Christian R. schrieb:
> Ein DSP Block
> auf einem FPGA ist übrigens nichts weiter als ein Multiplizierer mit
> Addierer und bissl Zeugs drum herum. Und der kann kein Floating Point.

Lässt sich aber mit etwas Logik drumherum dennoch damit realisieren.

Die schnellsten DSPs schaffen um die 200 GFLOP/s (soweit ich weiss).
Das schaffen größere FPGAs auch, gibt auch welche im TFLOP/s Bereich, 
die sind aber extrem teuer.

von F. K. (crack)


Lesenswert?

Christian R. schrieb:
> Ein DSP Block
> auf einem FPGA ist übrigens nichts weiter als ein Multiplizierer mit
> Addierer und bissl Zeugs drum herum. Und der kann kein Floating Point.
> Eine Realisierung eines kompletten DSP Prozessors auf dem FPGA wäre zwar
> möglich, aber auch ziemlich langsam, da der einfach nicht so speziell
> dafür gemacht ist wie der DSP. So ein aktueller DSP rennt ja mit 500MHz
> aufwärts.

Was meinst du genau mit Floating Point? Also das ist doch 
Gleitkommdarstellung, aber für was braucht man das. Kannst du da ein 
einfaches Bsp nennen bitte?

von Christian R. (supachris)


Lesenswert?

Ja, Gleitkommarechnung halt, um bei hohem Dynamikbereich noch eine hohe 
Genauigkeit zu haben, z.B. bei digitalen Filtern oder Reglern.

von Forscher (Gast)


Lesenswert?

>Christian R. schrieb:
>Und der kann kein Floating Point.
>Eine Realisierung eines kompletten DSP Prozessors auf dem FPGA wäre zwar
>möglich, aber auch ziemlich langsam, da der einfach nicht so speziell
>dafür gemacht ist wie der DSP.


Schmarrn,  wie integer kann ein FPGA auch floating Point realisieren,
Floating Point ist schließlich nix anderes als integer-Operationen für 
Mantisse und Exponent nach Normalisierung. Altera verspricht 1.5 TFlop:

http://www.altera.com/literature/wp/wp-01187-bdti-altera-fp-dsp-design-flow.pdf

von Christian R. (supachris)


Lesenswert?

Natürlich kann man das alles implementieren. Aber nur mit dem DSP Slice 
alleine ist es eben dann nicht getan. Man kann auch 20 Z80 
Prozessorkerne auf einem FPGA implementieren und noch eine 6502 CPU 
dazu. Aber ob das sinnvoll ist, ist eine ganz andere Frage. Er soll ja 
in dem Vortrag vergleichen was wann sinnvoll einzusetzen ist.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Einer der Führungskräfte von Texas Instruments hat schon vor einiger 
Zeit DSPs quasi für tot erklärt. Und TI ist einer der größten 
DSP-Hersteller.

Es kommt einfach auf die Aufgabe an, zur Audioverarbeitung sind DSPs 
immer noch gut, aber ab Video-Datenraten geht das eher in Richtung FPGA.

von Forscher (Gast)


Lesenswert?

Ja es ist sinnvoll DSP-Blöcke (FIR,IIR,DFT)im FPGA zu implementieren, 
einen ganzen DSP im FPGA zu implementieren macht weniger Sinn, weil das 
ganze ursprüngliche DSP-Konzept (CPU+Architekturoptimierungen für 
digitale stream-verarbeitung) eh eine Krücke der 80iger ist in der es 
noch schwierig war einen Einschritt Multiplizierer oder gar mehrere 
davon in Silizium zu gießen.

von Alexander F. (alexf91)


Lesenswert?

Grendel schrieb:
> Das schaffen größere FPGAs auch, gibt auch welche im TFLOP/s Bereich,
> die sind aber extrem teuer.

Ich habe gerade von Altera ein Paper erhalten (WP-01222: Understanding 
Peak Floating-Point Performance Claims), wo es um dieses Thema geht.

Für ein Altera Arria 10 (genauer: 10AX066) werden in diesem Paper 1520 
GFLOPs angegeben. Zur Berechnung werden nur Floating-Point Units mit den 
DSP Blöcken verwendet.
Für die Stratix 10 FPGAs werden mehr als 10 TFLOPs angegeben.

Hier der Link:
http://www.altera.com/b/wp-fp-performance-claims.html
Zum Download muss die Mail Adresse angegeben werden.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Forscher schrieb:
> Altera verspricht 1.5 TFlop
Und die Renten sind sicher...

Alexander F. schrieb:
> Zur Berechnung werden nur Floating-Point Units mit den DSP Blöcken
> verwendet.
Also nichts mit "Algorithmus in Hardware" sondern "Hardware für 
Algorithmus"...

von Forscher (Gast)


Lesenswert?

>> Altera verspricht 1.5 TFlop
> Und die Renten sind sicher...

Ja, Norberts Axiom stammt von 1997 und gilt seitdem.
Wills du damit sagen das die 1.5 TFlop auch in 17 Jahren noch gilt ?!

MfG,

von Lattice User (Gast)


Lesenswert?

Lothar Miller schrieb:
> Forscher schrieb:
>> Altera verspricht 1.5 TFlop
> Und die Renten sind sicher...
>

Aria 10, der grösste hat 1516 DSP Slices mit single precision 
Floatingpoint, jeweils Multipler und Adder pro Slice.

Hat aber seinen Preis:

http://www.digikey.de/product-search/de?x=0&y=0&lang=de&site=de&KeyWords=10AT115


Der Stratix 10 soll dann 10 TFlops können. (wenn denn Intel mal den 14 
nm Prozess auf die Reihe bekommt)

von Forscher (Gast)


Lesenswert?

Wenns wenn nicht ganz so flott sein muß, Xilinx schafft mit dem Virtex-6 
200 - 500 GFlop (S. 11). Mit nen Bastler-FPGA wie den Spartan-6 sollte 
da auch einige GFLOPS möglich sein.

Jetzt brauchts nur noch eine Heimanwendung die GFLOPS braucht ;-)

MfG,

von Forscher (Gast)


Lesenswert?


von Forscher (Gast)


Lesenswert?

>Ja, Gleitkommarechnung halt, um bei hohem Dynamikbereich noch eine hohe
>Genauigkeit zu haben, z.B. bei digitalen Filtern oder Reglern.

Auch das gehört in der Praxis hinterfragt. Sensoren in der 
Automatisierungstechnik liefern typischerweise 10 Bit digitalisiert, 
bessere 12, ganz selten 16 bit. Ein spartan6 DSP slice unterstützt 
Multiplikationen mit 18 bit breiten Faktoren bei vollen 36 bit für das 
Produkt und die adder sind auf 48 bit ausgelegt. Da ist bei 10 bit 
Digitalisierung genug Luft für Genauigkeit.

Heutzutage kann man auch in der Simulation /simulink) im voraus böse 
digitalisierungsartefakte erkennen und die 
koeffizenten/Verarbeitungskette
entsprechend anpassen. deshalb wundert es mich nicht, das mir in meinen 
knapp 2 Jahrzehnten Praxis Floating Point DSP nur im Lehrbuch/Katatlog 
begegnet sind.

Gruß,

von Markus H. (haniham) Benutzerseite


Lesenswert?

So, dann gebe ich auch mal meinen Senf dazu:
Es ist doch eigentlich so:

Mikroprozessor: einelne Anweisungen & serielle Befehlsfolge - hohe 
Taktraten

DSP: parlelle Anweisungen & serielle Befehlsfolge - hohe Taktraten

FPGA: paralelle Verarbetung - je nach Preis nicht ganz so hohe Taktraten

Der DSP hatte also beide Vorteile aus den Welten uC (günstig und hoher 
Takt) und FPGA(parallele Verarbeitung) vereint. Er bekommt jeduch durch 
günstiger werdende FPGAs und uC mit DSP Funktionalitäten Konkurrenz.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Markus H. schrieb:
> FPGA: paralelle Verarbetung - je nach Preis nicht ganz so hohe Taktraten
Du hast hier das m.E. wichtigste Argument vernachlässigt: die freie 
Skalierbarkeit. In ein FPGA kann ich heute irgendwelche Rechenwerke 
implementieren und morgen ganz andere. Das ist es, was die Dinger für 
die Telekom Unternehmen und Netzwerker so interessant macht...

von Klaus F. (kfalser)


Lesenswert?

Markus H. schrieb:
> Mikroprozessor: einelne Anweisungen & serielle Befehlsfolge - hohe
> Taktraten
>
> DSP: parlelle Anweisungen & serielle Befehlsfolge - hohe Taktraten

Die Welt ist ein bischen bunter.
Die heutigen Microprozessoren haben ebenfalls mehrere Rechenwerke und 
arbeiten Anweisungen parallel ab.
Der DSP ist einfach ein spezialisierter Microprozessor, der über über 
spezielle Befehle und Register verfügt, wie sie zum Abarbeiten von 
Algorithmen aus der digitalen Signalverarbeitung häufig benötigt werden.
Ein Beispiel ist der MultiplyAdd Befehl, der eine Multiplikation und 
eine Addition in einem Befehl vereint. In C wäre das :

sum += *c++ * *b++;

Das lässt sich mit einem DSP in einem Asm Befehl hinschreiben.
Wird zum Berechnen eines FIR Filters verwendet.

: Bearbeitet durch User
von Grendel (Gast)


Lesenswert?

Wobei das heutzutage auch so 0815 Controller wie ein Cortex-M4 können.
Sogar Floatingpoint.

PC Prozessoren können sowas mindestens seit es MMX gibt... also seit 
1997.

;-)

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.