Download PDF (2 MB) - MathWorks Deutschland
Download PDF (2 MB) - MathWorks Deutschland
Download PDF (2 MB) - MathWorks Deutschland
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