DSP's von AD

Naja....

Leichter wird es dennoch nicht - das .Net geraffel spricht halt eine größere Zielgruppe an (Die mit .Net arbeitet), mehr nicht.... :eek:
 
und ob es an die geschw./parallelität von vhdl rankommt!? kann mir schwer vorstellen wie das funktionieren soll... :kopfkratz:
vielleicht kann Michael (Soundscape) ja nochmal paar Worte dazu sagen?
 
Parallelität - das hat mit der Programmiersprach weniger zu tun....

Ein DSP hat in der Regel einen schnellen internen speicher und mehrere Hardwaremultiplizierer, welche parallel arbeiten...

Ein FPGA kann nahezu beliebige Operationen parallel ausführen, kommt halt darauf an, wie man ihn programmiert.

Moderne FPGAs haben auch internen Speicher und Hardwaremultiplizierer, die man bei bedarf nutzen kann...

Pauschalisieren lässt sich da schlecht, was besser ist, kommt auf die Anwendung an. Meist ist es so, dass die DSPs schnellere Multiplizierer haben, als die FPGAs, bzw. intern einen schnelleren Takt haben mit dem sie arbeiten können, ein FPGA hat jedoch meist (vergleichbar) mehr Hardwaremultiplizierer, vor allem sind diese aufteilbar: Aus einem 36*36 kann man vier 18*18 oder gar sechzehn 9*9 Hardwaremultiplizierer machen und diese parallel arbeiten lassen...

Noch ein Wesentlicher Unterschied: DSP => Float (meistens), FPGA => Integer!
 
naja...irgendwie hats schon was mit der Programmiersprache zutun...in vhdl gehen parallele abarbeitungen doch um einiges einfacher zu programmieren als in c (wobei ich da pauschal nichma wüsste wie ich mehr als 2 sachen parallel abarbeiten kann).
das ein dsp hardwaretechnisch einige unterschiede zum fpga aufweist ist mir auch klar...wenn ich deine aussagen jetzt richtig verstanden habe willst du darauf hinaus, dass der dsp einfach mit .net (als beispiel) programmiert wird und dann intern trotzdem parallel rechnet?
 
äpfel mit birnen vergleichen... ;)

bei einem dsp/microcontroller hat man eine feste architektur, bei einem fpga bestimmt man alles durch die programmierung.

der core eines controllers rechnet nie parallel. da wird alles stück für stück nacheinander abgearbeitet. selbst wenn man mehrere threads hat.
für parallele abläufe brauch man mehrere cores.

dsps haben halt den vorteil, dass sie auf "x = a*b + c" optimiert sind. normale microcontroller müssen das in mehreren schritten machen, dsps sind daher für solche aufgaben, wie sie nunmal bei der signalverarbeitung vorkommen, viel schneller.
...mal von den sonstigen funktionsmodulen abgesehn...
 
bimbel schrieb:
naja...irgendwie hats schon was mit der Programmiersprache zutun...in vhdl gehen parallele abarbeitungen doch um einiges einfacher zu programmieren als in c (wobei ich da pauschal nichma wüsste wie ich mehr als 2 sachen parallel abarbeiten kann).
das ein dsp hardwaretechnisch einige unterschiede zum fpga aufweist ist mir auch klar...wenn ich deine aussagen jetzt richtig verstanden habe willst du darauf hinaus, dass der dsp einfach mit .net (als beispiel) programmiert wird und dann intern trotzdem parallel rechnet?

Mit DSP hab ich selbst noch nichts gemacht - Parallele Ausführung wird wie hier beschrieben programmiert (Gibt wohl befehle für parallel Operationen, welche über eines Entsprechende Library zur Verfügung gestellt werden):

http://www.mikrocontroller.net/articles ... g#Hardware

Bei einem FPGA ist es so, dass wann man folgendes programmiert:

Multiply: process (CLOCK,RESET)
begin
if(RESET = '1') then
blablabla....;

elsif(RISING_EDGE(CLOCK) and RESET = '0') then
a1 = b1 * c1;
a2 = b2 * c1;

end if:
end process;

Dann Erhält man zwei parallele Multiplikationen! Was für jeden C-Programmierer wie eine Sequentielle Abarbeitung aussieht, führt hier zu einer parallelen Verarbeitung.

(Wie schaltet man eigentlich das automatische Whitespace-Löschen ab - das sieht ja furchtbar aus, ohne Tab)
 
Onkel Alex schrieb:
dsps haben halt den vorteil, dass sie auf "x = a*b + c" optimiert sind.
Solche DSP-Blöcke sind mitlerweile auch in FPGAs vorhanden Altera bewirbt seine Stratix-IV High-End FPGA mit bis zu sage und schreibe 1380 18*18 Multiplizierern.

Onkel Alex schrieb:
normale microcontroller müssen das in mehreren schritten machen, dsps sind daher für solche aufgaben, wie sie nunmal bei der signalverarbeitung vorkommen, viel schneller.
Irgendwo mal aufgeschnappt, dass ein alter 68000 für eine 16*16 Multiplikation 70 Zyklen (= 4 Takte) braucht - die meisten CPUs/MCUs brauchen mehrere Zyklen für eine Multiplikation, DSPs reisen und FPGAs reisen das in einem Takt durch => Bei einem 600 MHz-DSP bedeutet das für Audio-CD-Qualität mehr als genug Rechenleistung, um den verrücktesten Equlizer zu realisieren... :alki:

Onkel Alex schrieb:
...mal von den sonstigen funktionsmodulen abgesehn...
Ja, DSPs sind ähnliche wie MCUs mit Hardwareschnittstellen und AD bzw. DA-Wandlern ausgestattet - FPGAs haben (fast) nichts dergleichen!
 
Zurück
Oben Unten