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

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

26<br />

In Abbildung 1 ist der gesamte Equalizer<br />

mit zwei Halbband-Filterstufen dargestellt.<br />

Jedes der drei Bänder wird mit einem<br />

Koeffizienten (K_Low, K_Mid und K_High)<br />

multipliziert. Das Ausgangssignal y[.] ergibt<br />

sich aus der Summe der drei gewichteten<br />

Teilbänder. Stehen alle drei Koeffizienten auf<br />

eins, so wird das Ausgangssignal y[.] gleich<br />

dem Eingang x[.]. Ist ein Koeffizient größer<br />

als eins, so wird das betreffende Band verstärkt.<br />

Ist er kleiner, so wird das Band gedämpft.<br />

Werkzeugkette<br />

Der Equalizer wurde mit Hilfe von MAT-<br />

LAB entwickelt, simuliert und verifiziert.<br />

Dabei werden Audio Files (zum Beispiel im<br />

WAV-Format) in die Simulationsumgebung<br />

eingelesen, durch den Algorithmus geschickt<br />

und anschließend abgespielt. Dies geschieht<br />

nicht in Echtzeit aber doch schnell genug,<br />

damit auf diese Weise die Parameter des Algorithmus<br />

bequem optimiert werden können.<br />

Als nächstes - und dies ist zugleich der eigentliche<br />

Start des FPGA-Designs - ist zu verifizieren,<br />

ob der Algorithmus auch bei bitgenauer<br />

Rechnung die Anforderungen erfüllt.<br />

Xilinx bietet für diesen Zweck ein<br />

Blockset für Simulink an. Die betreffenden<br />

Blöcke sind bezüglich Zahlendarstellung,<br />

Wortbreite, Überlauf- und Rundungsverhalten<br />

etc. konfigurierbar und rechnen entsprechend<br />

bitgenau.<br />

Man beachte, dass bei der Addition von<br />

zwei Fixkomma-Zahlen ein zusätzliches Bit<br />

entstehen kann. Bei der Multiplikation kann<br />

gar ein Resultat mit nahezu der doppelten<br />

Länge entstehen. Das heißt, dass im Verlauf<br />

des Algorithmus die Wortbreite tendenziell<br />

immer größer wird. Da am Ende der Berechnungen<br />

das Resultat wieder mit beispielsweise<br />

16 Bit vorliegen soll, müssen die Zahlen<br />

unterwegs in sinnvoller Weise begrenzt<br />

oder gerundet werden. Dies erfordert etwas<br />

Fingerspitzengefühl, respektive ingenieurtechnische<br />

Intuition. Aufgrund seiner Flexibilität<br />

eignet sich das Xilinx Blockset hervorragend<br />

für diese Aufgabe.<br />

Anwendungen<br />

Abb. 1: Digitaler Equalizer mit drei Bändern<br />

Es muss erwähnt werden, dass sich im<br />

Prinzip Simulink mit dem Xilinx Blocksets<br />

bereits für die Algorithmen-Entwicklung anbieten<br />

würde. In der Praxis zeigt sich aber,<br />

dass infolge der bitgenauen Rechnung die Simulation<br />

mit Xilinx-Blöcken länger dauert<br />

als mit MATLAB.<br />

Am Ende liegt der digitale Equalizer als<br />

Simulink-Modell vor. Dank der bit-genauen<br />

Beschreibung verhält er sich genau so, wie er<br />

später auf dem FPGA laufen soll.<br />

Generierung von VHDL-Code<br />

Nun kommt die zweite wichtige Eigenschaft<br />

der Xilinx-Blöcke ins Spiel: Sie lassen<br />

sich nämlich direkt nach VHDL übersetzen.<br />

Diese Aufgabe übernimmt der sogenannte<br />

System Generator von Xilinx. Dabei übersetzt<br />

er nicht bloß die einzelnen Blöcke, sondern<br />

das gesamte Simulink-Modell und erzeugt<br />

daraus einen FPGA Projekt-Ordner.<br />

Dieser wiederum kann mit Hilfe der FPGA-<br />

Entwicklungssoftware geöffnet und weiter<br />

verarbeitet werden. Die gesamte Toolchain<br />

ist in Abbildung 2 dargestellt.<br />

Abb 2: Werkzeugkette der FPGA-Entwicklung<br />

Zu beachten ist, dass der System Generator<br />

ausschliesslich Blöcke aus dem Xilinx<br />

Blockset übersetzen kann.<br />

Abbildung 3 zeigt einen der Halbband<br />

Filter, realisiert mit den Xilinx Blöcken. Man<br />

erkennt die für einen IIR Filter typischen<br />

Verzögerungsketten (ganz links und rechts)<br />

sowie fünf Multiplizierer und vier Addierer.<br />

Der System Generator wird später die Multiplizierer<br />

erkennen und sie den auf dem gewählten<br />

Chip vorhandenen Hardware-Multiplizierern<br />

zuordnen. Durch Anklicken eines<br />

Blocks erhält man das Konfigurationsmenu.<br />

MATLAB<br />

select 2/03

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!