19.09.2012 Aufrufe

Download PDF (2 MB) - MathWorks Deutschland

Download PDF (2 MB) - MathWorks Deutschland

Download PDF (2 MB) - MathWorks Deutschland

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Moderne FPGAs<br />

FPGAs bestehen heute aus bis zu 10 Mio.<br />

logischen Gattern. Diese Zahl klingt eindrücklich,<br />

sagt aber nicht sehr viel aus. Denn<br />

diese Gatter stecken in verschiedenen Funktionseinheiten.<br />

So stehen dem Anwender<br />

nicht einzelne Gatter sondern Logikzellen<br />

zur Verfügung. Eine derartige Zelle beinhaltet<br />

in der Regel mindestens ein Flip-Flop<br />

plus konfigurierbare logische Einheiten. Daneben<br />

können FPGAs mit RAM-Blöcken,<br />

Multiplizierern oder ganzen Prozessor-Cores<br />

ausgestattet sein.<br />

Als Beispiel der Oberklasse sei der Virtex<br />

II Pro XC2VP125 von Xilinx zu erwähnt, der<br />

u.a. vier integrierte PowerPC-Cores und 556<br />

einzelne 18x18 bit Multiplizierer aufweist.<br />

Andere Chips bieten über 1000 konfigurierbare<br />

IO-Pins. Selbstverständlich hat diese<br />

Spitzentechnologie auch ihren Preis.<br />

Dem durchschnittlichen Anwender steht<br />

indessen eine umfangreiche Palette von kleinen<br />

und mittleren Komponenten zur Verfügung.<br />

Die Wahl fällt entsprechend schwer.<br />

Oft ist zu Beginn eines Projekts noch gar<br />

nicht klar, was von einem FPGA gefordert<br />

wird. Das ist jedoch weiter kein Problem.<br />

Das Design kann weitgehend hardware-unabhängig<br />

realisiert werden. Erst im Endstadium<br />

werden die chip-spezifischen Daten<br />

ergänzt. Daraufhin ergibt sich die Auslastung<br />

der betreffenden Komponente. Bei Bedarf<br />

lässt sich der FPGA leicht auswechseln.<br />

MATLAB<br />

select 2/03<br />

Anwendungen<br />

DSP-Funktionen auf FPGAs<br />

Moderne FPGAs (Field Programmable<br />

Gate Arrays) haben in Bezug<br />

auf Größe und Verarbeitungsgeschwindigkeit<br />

einen Stand erreicht,<br />

der es nicht nur erlaubt,<br />

einzelne mathematische Operationen<br />

auszuführen, sondern auch<br />

ganze DSP-Algorithmen aufzunehmen.<br />

Parallel dazu haben namhafte<br />

Hersteller Tools auf den Markt<br />

gebracht, welche speziell die Entwicklung<br />

von digitalen Algorithmen<br />

für FPGAs unterstützen. Damit<br />

etabliert sich in der Welt der<br />

digitalen Signalverarbeitung eine<br />

neue, interessante Plattform.<br />

FPGAs in der Signalverarbeitung<br />

Aufgrund ihrer Größe und Ausrüstung<br />

bieten FPGAs heute interessante und vielseitige<br />

Möglichkeiten in der digitalen Signalverarbeitung.<br />

Der Unterschied zwischen der<br />

klassischen Lösung – dem Einsatz eines Digitalen<br />

Signalprozessors (DSP) - und der Realisierung<br />

auf einem FPGA besteht darin,<br />

dass der DSP in Assembler oder C programmiert<br />

wird, während man für den FPGA den<br />

Algorithmus letztlich in VHDL beschreibt.<br />

Während der DSP sein Programm mehr<br />

oder weniger sequenziell überarbeitet, bildet<br />

der FPGA den gesamten Algorithmus in<br />

Hardware nach.<br />

Da man im FPGA - verglichen mit einem<br />

DSP - nur anwendungsspezifische und entsprechend<br />

optimierte Recheneinheiten realisiert,<br />

sind die Lösungen besonders kostengünstig<br />

und effizient. Im high-end Bereich<br />

erzielt man durch die Integration vieler paralleler<br />

DSP-Einheiten auf demselben FPGA<br />

größte Rechenleistung auf kleinster Fläche.<br />

Anwendungsbeispiel<br />

Anhand eines kurzen Beispiels wird im<br />

Folgenden der FPGA-basierte DSP-Designzyklus<br />

erläutert. Im Rahmen eines Demonstrationsprojekts<br />

wurde auf einem FPGA ein<br />

Audio-Equalizer mit drei Bändern implementiert.<br />

Das Audiosignal wird via Codec einem<br />

FPGA zugeführt, wo es den digitalen<br />

Equalizer durchläuft. Anschließend wird das<br />

Signal auf den Codec zurück geführt und<br />

wieder in die analoge Welt übersetzt.<br />

Aus Gründen der Übersichtlichkeit verwenden<br />

wir im Algorithmus des Equalizers<br />

Halbband-Filter. Dabei teilen jeweils ein digitaler<br />

Hochpass (HP) und ein digitaler Tiefpass<br />

(TP) das zeitdiskrete Eingangssignal in<br />

zwei Teilbänder. Die Summe der beiden<br />

Teilbänder ergibt wieder das Eingangssignal.<br />

In MATLAB kann man derartige Filter<br />

mit wenigen Befehlen berechnen:<br />

> % Buttworth Tiefpassfilter mit Grenzfrequenz w1:<br />

> [G_LP_num, G_LP_den] = butter(2, w1);<br />

><br />

> % Komplement-res Hochpassfilter:<br />

> G_HP_num = G_LP_den - G_LP_num;<br />

> G_HP_den = G_LP_den;<br />

25

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!