Ziel dieser Arbeit ist die Realisierung eines SDR (Software Defined Radio). Beim Software Defined Radio wird die Radiofrequenz mit einem Mixer auf eine niedrige Zwischenfrequenz umgesetzt. Diese Zwischenfrequenz wird mit Hilfe des Analog/Digital-Wandlers LTC2208 von Linear mit 16 Bit bei 133 MS/s digitalisiert. Die Demodulation erfolgt durch Software, und zwar mit zwei digitalen Mischern, die nichts anderes als Multiplikatoren sind. Das digitalisierte Signal wird mit den durch DDS erzeugten Sinus/Cosinus-Paaren multipliziert und anschließend mit zwei Bandfiltern gefiltert. Am Ende wird das Signal mit dem 18 Bit- Digital/Analog-Wandler LM4550 bei 48 MS/s wieder umgesetzt, um das Audiosignal an den Lautsprecher weiterzuleiten.
Statt unterschiedlicher Demodulations-Hardware wird ein FPGA eingesetzt, um die Demodulation und weitere Zwischenfrequenz- und Niederfrequenz-Aufgaben wie AGC oder Denoising in Software auszuführen.
II: Inhaltsverzeichnis
I: Danksagung
II: Inhaltsverzeichnis
III: Kurzfassung
Kapitel 1: Einleitung
1.1 Vorstellung der Firma
1.2 Motivation
1.3 Zielsetzung
1.4 Gliederung der Arbeit
Kapitel 2: Grundlagen
2.1 Einführungen in die Programmierbare Logik
2.1.1 Bausteine für den Hardwareentwurf
2.1.2 Architektur von FPGAs
2.1.3 Xilinx FPGA
2.1.4 Hardware Programmiersprachen
2.2 Eingebettete Systeme
2.2.1 Prozessor
2.2.2 System-On-Chip
2.3 Grundlagen der SDR
2.3.1 Funktionsweise Ideal
2.3.2 Hardwarearchitekturen für SDRs
2.3.3 Überlagerungsempfänger nach dem Heterodynprinzip
2.4 Grundlagen der AM-Demodulation
2.4.1 Demodulation durch Gleichrichtung
2.4.2 Synchrone-Demodulation
2.4.3 I/Q-Verarbeitung auf ZF-Ebene
Kapitel 3: Entwicklung und Arbeitsumgebung
3.1 Entwicklungsumgebung
3.1.1 Xilinx webpack ISE 9.1
3.1.2 VHDL-Quellcode
3.1.3 Xilinx ChipScope Pro Analyzer
3.1.4 MATLAB
3.2 IP-Core
3.2.1 DDS-Core
3.2.2 CORDIC-Core
3.2.3 FFT-Core
3.3 Arbeitsumgebung
3.3.1 Virtex 4 FPGA Evaluation Board
Kapitel 4: Entwurf und Implementierung
4.1 Entwurf
4.1.1 D/A-Wandler
4.1.2 A/D-Wandler
4.2 Implementierung
4.2.1 Implementierung des D/A-Wandlers
4.2.2 Implementierung der A/D-Wandler
4.2.3 Implementierung des Datenpfades
4.2.4 Implementierung der Mischer
4.2.5 Implementierung des demodulierten Signals
4.2.6 Test des Bandpassfilters mit dem Rechteck-Signal
Kapitel 5: FFT-Analyse
5.1 FFT Analyse für ein AM-Generator
5.2 FFT-Analyse für ein Rechtecksignal
Kapitel 6: Fazit
IV: Abkürzungsverzeichnis
V: Abbildungsverzeichnis
VI: Literaturverzeichnis
I: Danksagung
Die vorliegende Diplomarbeit entstand im Rahmen meiner Tätigkeit bei der Firma Trenz Electronic GmbH als Diplomand. Mein Dank gilt Herrn Dipl.-Ing. Thorsten Trenz, Geschäftsführer der Firma Trenz GmbH, für sein Vertrauen in meine Fähigkeiten und Herrn Dipl.-Ing. Kolja Sulimma, der dieses Thema für mich erarbeitet hat. Mein besonderer Dank gilt auch Herrn Prof. Dr.-Ing. Michael Silverberg für seine Unterstützung bei der Durchführung meiner Arbeit. Dazu gehört jede einzelne Diskussion, die wir im Laufe der Zeit geführt haben. Für seine Bereitschaft, das Hauptreferat zu übernehmen, danke ich ebenfalls.
Herrn Prof. Dr.-Ing. Heinrich Dederichs danke ich für die Übernahme des Koreferats.
III: Kurzfassung
Ziel dieser Arbeit ist die Realisierung eines SDR(Software Defined Radio). Beim Software Defined Radio wird die Radiofrequenz mit einem Mixer auf eine niedrige Zwischenfrequenz umgesetzt. Diese Zwischenfrequenz wird mit Hilfe des Analog/Digital-Wandlers LTC2208[1] von Linear mit 16 Bit bei 133 MS/s digitalisiert. Die Demodulation erfolgt durch Software, und zwar mit zwei digitalen Mischern, die nichts anderes als Multiplikatoren sind. Das digitalisierte Signal wird mit den durch DDS erzeugten Sinus/Cosinus-Paaren multipliziert und anschließend mit zwei Bandfiltern gefiltert. Am Ende wird das Signal mit dem 18 Bit- Digital/Analog-Wandler LM4550[2] bei 48 MS/s wieder umgesetzt, um das Audiosignal an den Lautsprecher weiterzuleiten.
Statt unterschiedlicher Demodulations-Hardware wird ein FPGA eingesetzt, um die Demodulation und weitere Zwischenfrequenz- und Niederfrequenz-Aufgaben wie AGC[3] oder Denoising in Software auszuführen.
[Abbildung in dieser Leseprobe nicht enthalten]AM-Generator Funktionsgenrator
Abbildung in dieser Leseprobe nicht enthalten
Virtex 4 FPGA Board Oszilloskop
Abbildung 1: Labor Aufbau
Kapitel 1: Einleitung
1.1 Vorstellung der Firma
Diese Diplomarbeit entstand im Auftrag und mit der Unterstützung der Firma Trenz Electronic GmbH. In diesem Abschnitt wird Trenz Electronic GmbH kurz vorgestellt.
Die Firma Trenz Electronic GmbH wurde 1992 als Personengesellschaft ge-gründet und im Jahre 2002 in eine GmbH umgewandelt. Der Geschäftsführer und Gründer der Firma ist Herr Dipl. Ing. Thorsten Trenz. Er wird von fünf weiteren Mitarbeitern bei der täglichen Arbeit unterstützt.
Trenz Electronic GmbH entwickelt, fertigt und vertreibt Embedded-Produkte für den industriellen Einsatz und zwar
- FPGA Boards
- ARM CPU Module
- Embedded Device Server
- Kommunikation
- Digital Ein-/Ausgabe
- Industrielle Flash Speicher
Die Firma Trenz Electronic GmbH bietet umfangreiche Dienstleistungen für die Entwicklung und Realisierung elektronischer Komponenten und Systeme. Das Portfolio besteht aus:
- Hardware Entwicklung
- Software Entwicklung
- HDL Design
- Beratung
1.2 Motivation
Anfang der 90er Jahre beschrieb Joseph Mitola [1] die Idee, die Signal-verarbeitung von Funksignalen statt durch Hardwarekomponenten komplett durch Software oder programmierbare Digitalhardware (DSPs oder FPGAs) zu realisieren. Dabei sollten die empfangenen Funksignale durch A/D-Wandler digitalisiert werden, um danach durch einen universellen Prozessor mit den gewünschten Software-Routinen weiterverarbeitet zu werden. Man erkannte aber schnell, dass so ein ideales Software-Radio Probleme mit sich brachte: Bei hohen Trägerfrequenzen im GHz-Bereich benötigt man sehr schnelle und hoch auflösende A/D- bzw. D/A-Wandler, um das Signal zu empfangen bzw. zu senden. Außerdem würden solche schnellen Wandler enorm viel Energie be-nötigen. Deshalb hat man sich zu dem Kompromiss entschlossen, die Signale analog auf eine niedrigere Zwischenfrequenz oder direkt ins Basisband herunter zumischen, um dann die Signale zu digitalisieren und durch Software-Routinen weiter zu verarbeiten.
Meine Diplomarbeit soll eine Antwort auf die Frage liefern:
Warum möchte man die Signale durch Software verarbeiten?
1.3 Zielsetzung
Durch den Einsatz modernster Mikroelektronik ist es möglich geworden, kleine, kompakte, verlustleistungsarme und störsichere Datenempfänger zu realisieren. Als Anwendungsbeispiel wurde ein SDR gebaut. Für eine konkurrenzfähige Empfängerentwicklung ist es nötig, die neuartigen Übertragungsverfahren mit einer komplex Signalisierung, Codierung und Verschlüsselung auszurüsten. Die FPGA-Technik erlaubt die Realisierung recht anspruchsvoller Algorithmen zur Signalverarbeitung und ermöglicht zumeist eine Online Datenverarbeitung .Ein Mikroprozessor-System ist oft nicht in der Lage, mächtige Algorithmen in der geforderten Zeit in Software abzuarbeiten. Die Vorteile der FPGAs in der Empfängerentwicklung sind weitreichend. Moderne Entwicklungswerkzeuge für FPGA-Bausteine bieten teilweise bereits eine automatische Umsetzung der Schaltungsidee in eine FPGA–Schaltung. Es lassen sich einfache komplexe Grundfunktionen mit Hilfe einer Schaltungssynthese erzeugen. Es fehlt aber eine aussagekräftige datenbankorientierte Entscheidungshilfe für den Entwickler. Es gilt einen vorteilhaften Algorithmus zu finden. Dies ist z.B. bei der Frage der Fall, welche Schaltung zur Frequenzerzeugung in Bezug auf Platzverbrauch und Leistungsverbrauch günstig in einen FPGA-Baustein realisiert werden kann und wie groß die auftretende Frequenz- und Phasenfehler sind. Weiterhin ist festzulegen, ob die FPGA-Gatterkomplexität zwar schon im Bereich von 10. 000 Gatteräquivalenten eines NAND-Gatters mit zwei Eingängen liegt, so dass bei einem günstigen Algorithmus eine konventionelle FPGA-Implementierung noch möglich sein kann. Darauf kann man das Cordic-Core von Xilinx anwenden. Die Realisierung eines SDR umfasst eine Vielzahl von andersartigen Problemstellungen. Diese reichen von klassischen nachrichten-technischen Problemstellungen, wie Modularisierung, Schnittstellenfindung und Schnittstellendefinition bis hin zu informationstechnischen Fragen der Spei-cherung und Komprimierung der über Mittelwelle ausgestrahlten (Wetter) Bilddaten.
Die Erkenntnisse sind nicht nur bei Mittelwellenempfängern, sondern auch bei Empfängertypen anderer Frequenzbereiche anwendbar. Festfrequenzempfänger wie die gebräuchlichen Funkuhrempfänger bestehen im Wesentlichen aus einem Antennenkreis mit Verstärkung, einer schmalbandigen Festfrequenzenfilterung und einem Amplitudendemodulator, der in Form eines Gleichrichters mit nach-geschaltetem Tiefpass-Filter realisiert wird.
1.4 Gliederung der Arbeit
Meine Arbeit beschränkt sich auf vier wesentliche Problemstellungen beim Ent-wurf eines SDR, die in einem FPGA besonders effizient realisiert werden können.
Die erste behandelte Problemstellung befasst sich mit der Erzeugung des Sinus/Cosinus-Paares, das mit der DDS-Core durchgeführt wird (Kapitel 3).
Die zweite Problemstellung lautet: wie kann eine Variation der Bandbreiten nach einer entsprechenden ADC (Analog/Digital-Wandler) vorteilhaft mit digitalen Fil-tern durchgeführt werden. Dabei wird ein Bandpassfilter mit 9 KHz Bandbreite entworfen (Kapitel 4).
Die dritte behandelte Problemstellung befasst sich mit der Aufgabe, ein AM-Signal zu demodulieren (Kapitel 5). Ausführlich wird hierbei das Verfahren der Abtastung der CORDIC-Demodulation beschrieben (Kapitel 4). Die letzte Auf-gabenstellung besteht in der Auswertung der Messergebnisse und der FFT Ana-lyse (Kapitel 5).
Zunächst sollen in Kapitel 2 die Grundlagen des SDR und der AM Demodulation und eine Einführung in die Programmierbare Logik vorgestellt werden.
Kapitel 2: Grundlagen
In diesem Kapitel werden zunächst die Alternativen für die Realisierung eines eingebetteten Systems für die Signalverarbeitung vorgestellt und Merkmale der „Bausteine für den Hardwareentwurf" vergleichend gegenübergestellt. De-taillierter werden die FPGA-Bausteine, sowie die wichtigsten Vertreter der Xilinx FPGA-Familien Virtex behandelt, da diese Hauptbestandteile der im Rahmen dieser Arbeit eingesetzte Plattform sind. Danach werden noch Hardware-Be-schreibungssprachen eingeführt, die im weiteren Verlauf der Arbeit zum Pro-grammieren von FPGA benutzt werden.
Am Ende wird eine Einführung in das Software Defined Radio und in die Grundlagen der AM-Demodulation vorgenommen, die zum Verständnis dieser Arbeit sehr hilfreich sind.
2.1 Einführungen in die Programmierbare Logik
2.1.1 Bausteine für den Hardwareentwurf
Für einen Hardwareentwurf kann der Entwickler entweder einen ASIC[4], Mikro-prozessor, ASIP[5], DSP[6] oder auch einen programmierbaren Logikbaustein verwenden. Diese einzelnen Bausteine werden im Folgenden näher erläutert.
ASIC
Der traditionelle Ansatz einen Algorithmus zu berechnen besteht darin, einen ASIC zu verwenden, d. h. die Operationen in Hardware ausführen zu lassen. Weil diese ASICs speziell für eine gegebene Berechnung entworfen und im-plementiert werden, sind sie unschlagbar schnell und effizient. Der Nachteil liegt darin, dass nach der Fertigung des ASICs keine Änderungen mehr möglich sind. Dies erfordert einen Neuentwurf und eine Neuanfertigung, wenn auch nur kleinste Teile der Schaltung bei geänderten Randbedingungen modifiziert werden müssen [2].
Mikroprozessor
Mikroprozessoren (GPP-General Purpose Processor) sind sehr viel flexibler als anwendungsspezifische Bausteine (ASICs). Das Hauptmerkmal ist ihre Pro-grammierbarkeit. Sie arbeiten eine Befehlsfolge ab, um eine Berechnung durchzuführen. Mit einer Änderung von Befehlen innerhalb der Software kann die Funktionalität des Gesamtsystems beeinflusst werden, ohne die darunterlie-gende Hardware anpassen zu müssen. Der Nachteil dieser Flexibilität liegt in der geringeren Leistungsfähigkeit. Sie liegt weit unter jener, die mit einem ASIC möglich ist [3]. Jeder Befehl wird, vereinfacht ausgedrückt, zunächst aus dem Speicher geladen, dekodiert und erst dann ausgeführt. Dazu kommt, dass der Befehlssatz bereits bei der Herstellung des Prozessors festgelegt wird. Jede Funktion muss danach mit den zur Verfügung stehenden Befehlen realisiert werden. Dies wiederum kann unter Umständen zu einem zusätzlichen Program-mieraufwand führen.
ASIP
ASIPs (Application Specific Instruction Set Processor) stellen eine Spezia-lisierung von Mikroprozessoren dar. Sie sind speziell für eine bzw. für eine Klasse von Anwendungen hinsichtlich der Randbedingungen, Leistungsfähigkeit, Kosten und Leistungsaufnahme optimiert und unterscheiden sich sehr stark voneinander. ASIPs bieten eine Lösung zwischen den beiden Extremen ASIC und GPP. Ein ASIP ist eigentlich ein "`abgespeckter"' GPP, der jedoch aufgrund der (beschränkten) Programmierbarkeit flexibler ist als ein ASIC [4].
DSP
Digitale Signalprozessoren sind Mikroprozessoren, die auf die Aufgaben im Bereich der digitalen Signalverarbeitung zugeschnitten sind. Der Code für DSPs umfasst viele arithmetische Operationen, vor allem Multiplikationen und Addi-tionen. Es kommen wenige Verzweigungen vor, wenn doch, dann mit sehr gut vorhersagbaren Sprungzielen. DSPs weisen eine hohe Parallelisierung auf und verarbeiten dabei sehr große Datenmengen [5]. Die Programmiersprache C ist auch bei DSPs zum Standard geworden, jedoch sind zeitkritische Teilprogramme in Assembler zu programmieren.
Programmierbare Logikbausteine
Die programmierbaren Logikbausteine (PLD) füllen die Lösung zwischen Hard- und Software. Programme oder Programmteile werden aus dem Speicher in das Core geladen, ausgeführt und durch neue Programmteile oder andere Pro-gramme ersetzt. Eine Hardware bot diese Möglichkeit so lange nicht, bis es pro-grammierbare Logikschaltungen gab, die einmal oder beliebig oft pro-grammierbar waren. Diese erreichen eine potentiell höhere Leistungsfähigkeit als Software und bieten zudem eine größere Flexibilität als eine Hardware.
SPLDs
SPLDs sind die kleinsten verfügbaren und damit kostengünstigsten Bausteine programmierbarer Logik. Sie besitzen typischerweise 4 bis 22 Makrozellen und können damit einige TTL-Standardbausteine der 7400-Serie ersetzen [6]. Alle Makrozellen sind untereinander verbunden, so dass es kein Platzierungs- und Verdrahtungsproblem gibt. Ein weiterer Nebeneffekt ist die konstante Ver-zögerung von Eingängen zu Ausgängen, die sich auch nicht mit der Pro-grammierung ändert.
CPLDs
CPLDs besitzen eine höhere Kapazität als SPLDs und stellen eine Weiterentwicklung derselben dar.
Ein typisches CPLD entspricht in etwa 2 bis 64 SPLDs und enthält einige hundert Makrozellen, die in Gruppen von 8 bis 16 Makrozellen pro Logikblock angeordnet sind [7]. Schaltungsmatrizen zwischen den Logikblöcken garantieren eine größere Flexibilität bei der Verdrahtung, aber nicht bei jedem Hersteller und jeder Bausteinfamilie sind alle Logikblöcke miteinander verbunden. Sollte dies der Fall sein, so gibt es unter Umständen bei komplexen Entwürfen ein Verdrah-tungsproblem.
FPGAs
FPGAs sind programmierbare Speicherbausteine, die eine Matrix aus Berechnungselementen besitzen und deren Funktionalität durch Kon-figurationsbits bestimmt wird. Diese Berechnungselemente, auch als Logikblöcke bezeichnet, sind über eine Vielzahl von Verdrahtungskanälen miteinander ver-knüpft. Außerdem sind alle internen Ressourcen von programmierbaren I/O-Blocks umgeben, wie in Abbildung 1 dargestellt. Damit können spezifische Schal-tungen im FPGA implementiert werden, deren logische Funktionen in den Logikblöcken abgebildet sind und deren Ergebnisse miteinander verknüpft die gesamte Schaltung realisieren. Die meisten heute erhältlichen FPGAs sind SRAM-Bausteine. Bei diesen befinden sich an den Konfigurationsknoten Speicherzellen, die das FPGA konfigurieren, wenn sie programmiert werden. Dies erfordert einen externen Konfigurationsspeicher oder zumindest einen Controller oder Host, damit die Entwurfsdaten in das FPGA geladen werden können. Die Leistungsfähigkeit von FPGAs im Hinblick auf Platzverbrauch und Verarbeitungsgeschwindigkeit hängt von der in den Logikblöcken integrierten Logik und von der Effizienz ihrer Verdrahtungsarchitektur ab. Ein wichtiges Kriterium dafür liefert ebenso die zu implementierende Schaltung und deren Platzierung und Verdrahtung und damit letztendlich auch die Qualität der Werkzeuge des FPGA-Herstellers [8].
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2: Aufbau eines FPGA.
Da FPGAs in Bezug auf die Schaltungsdichte wesentlich ineffizienter als ASICs sind, muss für eine effiziente Nutzung die Siliziumfläche des FPGA mit Hilfe einer dynamischen Reprogrammierung mehrfach wiederverwendet werden. Das Verhältnis zwischen einem wahlweise im FPGA oder im ASIC realisierten Entwurf kann nur schwer in Zahlen ausgedrückt werden, da zu viele Parameter zu berücksichtigen sind. Zu den Parametern gehören die verwendete ASIC-Technologie (Vollkundenentwurf, Standardzellen etc.), die FPGA-Architektur-merkmale, die unterschiedlichen Synthesewerkzeuge (u. a. Bibliotheken) und darüber hinaus die Anwendung selbst [9]. Mit dem Erscheinen der XC6200-Familie von Xilinx 1995 gab es über die FastMap genannte Schnittstelle die Möglichkeit, Teile der Schaltung dynamisch zur Laufzeit des Systems auszutauschen, jedoch gab es keine Entwicklungstools, die dies unterstützten. Die Software zur Platzierung und Verdrahtung muss nämlich für diesen Fall speziell angepasst sein, denn die dynamische Umprogrammierung eines Teils der Schaltung darf nicht zu Konflikten innerhalb des Bausteins führen. Die Ab-grenzung von Schaltungsteilen erfolgt deshalb immer an den Grenzen ganzer Logikblock-Einheiten des FPGA. Darüber hinaus ist die zeitliche Abfolge des Ein- und Auslagerns von Schaltungsteilen zur Laufzeit des Systems in die rekonfigurierbare Hardware aufgrund der damit verbundenen Verzögerung essentiell für die Entwicklungswerkzeuge. Ohne angepasste Software kann die hardwareseitig vorhandene dynamische Rekonfigurationsmöglichkeit schluss-folgernd nicht genutzt werden [10]. Während Mikroprozessoren im Wesentlichen ein Computing-In-Time, also eine sequentielle Abarbeitung eines Algorithmus durchführen, basieren strukturierbare Logikschaltungen im Sinne eines klas-sischen ASIC auf einem Computing-in-Space. Rekonfigurierbare Logikschal-tungen erlauben die konsequente Verbindung beider Paradigmen und stellen einen Paradigmenwechsel beim Entwurf mikroelektronischer Systeme dar.
2.1.2 Architektur von FPGAs
Logikblöcke
Ein FPGA besteht aus sehr vielen kleinen logischen Einheiten, den sogenannten Logic Blocks. In diesen kleinen logischen Einheiten befinden sich einfache, logische Schaltungen, die meist konfiguriert werden können. Diese kleinen Logikeinheiten werden bei der Implementierung von logischen Funktionen mit-einander verknüpft.
Look-Up-Tables (LUT)
LUTs werden in FPGAs mit SRAM-Technik verwendet, z.B. von der Firma Xilinx, Serie XC3000, XC4000 usw. Mit ihnen lassen sich beliebige kombinatorische Verbindungen realisieren. Look-Up-Tables sind 1-Bit-breite Speicher. Dabei stellen die Logikblock-Eingangsignale im Grunde genommen die Adressleitungen des Speichers dar. Der Inhalt der so adressierten Speicherzelle bildet das Ausgangssignal. Die gespeicherten Daten sind der gewünschten Logikfunktion entsprechend festgelegt.
Abbildung 2 zeigt wie ein gewöhnlicher Speicher Eingänge und 2n-Speicher-zellen für die angelegte Eingangskombination in der entsprechenden Speicher-zelle abspeichert.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 3: Beispiel LUT:XOR-Funktion.
2.1.3 Xilinx FPGA
Die 1984 gegründete Firma Xilinx gilt mit der Logic Cell Array (LCA) als Erfinderin der FPGAs. Xilinx besitzt keine Eigenfertigung, d.h. alle Xilinx FPGAs werden von Drittfirmen gefertigt. Der aktuelle Marktanteil von Xilinx FPGAs liegt bei 60% [11].
Die CLB (Configurable Logic Block-CLB) der Virtex Architektur besteht aus zwei identischen Blöcken, die als Slices bezeichnet werden. Jedes Slice wird noch mal in zwei logische Blöcke unterteilt (Logic Cells-LC) so dass jeder Virtex-CLB aus vier logischen Zellen besteht.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 4: Interne Architektur eines Slice.
Mit einem Slice kann man eine beliebige Funktion realisieren oder ihn als Speicher konfigurieren. Jeder Slice besitzt eine eigene Carry Logic, welche miteinander verknüpft über die Carry Chains als 1-Bit Volladdierer oder über spezielle And-Gatter beispielsweise als Multiplizierer implementiert werden können [12]. Eine Erweiterung der bisher bekannten Logikblöcke bilden große, sogenannte Block Select RAMs, in Gruppen zusammengefasstem RAM. Jeder Virtex-Baustein beinhaltet zwei dieser Gruppen, welche in Spalten neben den CLBs angebracht sind. Insgesamt besitzt jeder Baustein 12 bis 556 Blöcke. Dank der SelectLink Technologie kann man zwischen 2 Bausteinen eine Verbindung mit 80 Gbit/s herstellen [13].
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 5 : Architectur von Virtex 4 FPGA.
Die Verdrahtung besteht aus Verbindungsleitungen mit 5 unterschiedlichen Längen. Die kürzesten Leitungen (Single-Lenght-Lines) führen jeweils von einer Switch Matrix zur nächsten, während die längeren Leitungen längere Chips-abschnitte überspannen.
Die Double-Length-Lines sind doppelt so lang wie die Single-Lenght-Lines und verlaufen an 2 CLBs vorbei, bevor sie in die Switch Matrix eingehen. Jeder CLB besitzt 8 Double-Length-Lines, sowie 4 Quadlines und 4 Longlines mit denen sich größere Verbindungen überbrücken lassen. Darüber hinaus existieren globale Verbindungen zur Verteilung von Taktsignalen.
2.1.4 Hardware Programmiersprachen
Eine Hardwarebeschreibungssprache (engl. Hardware Description Language, HDL) bezeichnet eine Sprache innerhalb einer allgemeinen Klasse von Computersprachen in der Elektronik. Mit ihr können Operationen von Schal-tungen und ihr Design beschrieben, sowie in Simulationen getestet werden.
Ein weiterer Grund, HDLs einzusetzen, ist die Möglichkeit der automatischen Erzeugung von Netzlisten für integrierte Schaltungen durch ein Synthesetool.
Es ist möglich, Hardware semantisch in einer verbreiteten Sprache wie C++ (in Verbindung mit umfangreichen Klassenbibliotheken) zu beschreiben. Diesen Ansatz verfolgt SystemC, welches aber derzeit nicht synthesefähig ist. Normales C++ enthält hingegen keine Möglichkeiten um einen Zeitverlauf zu beschreiben und ist deshalb wenig geeignet [14].
2.2 Eingebettete Systeme
Bevor der Begriff „Eingebettetes System “ erläutert werden kann, ist zunächst der Begriff System im technisch orientierten Sinne zu definieren: Unter einem System wird die Zusammenführung von Elementen oder auch Untersystemen verstanden, das der Erfüllung von Aufgaben dient und über definierte Schnittstellen mit der Außenwelt verbunden ist. Ein Eingebettetes System ist ein aus Hardware und Software bestehendes Rechnersystem, das Bestandteil eines übergeordneten größeren Systems ist und meist im Verborgenen einen bestimmten technischen Zweck erfüllt (in einen technischen Kontext eingebettet ist), jedoch für die Funktions- und Leistungsfähigkeit des Gesamtsystems entscheidend ist [15]. Es kann als System-on-Chip oder als Board-Level-System implementiert sein. Eine Realisierung als SoC ist immer dort attraktiv, wo die geplanten Stückzahlen ausreichend hoch sind.
Einige Gebiete in denen Eingebettete Systeme Anwendung finden sind unter anderem: Raumfahrt, Flugzeuge, verteilte Systeme in der Automobil-(ABS), Züge, industrielle Automation, Robotik, elektronische Spiele, Geräte der Unterhaltungselektronik (CD/MP3-Player), Telekommunikation (Mobiltelefonie), den Audio- und Videobereich bis hinzu biomedizinischen Implantaten. Komplexere Eingebettete Systeme sind zumeist heterogen aufgebaut und enthalten Mikrocontroller, DSPs, Co-Prozessoren, analoge und digitale Appli-kation und kundenspezifische Schaltungen und-/oder Speicherbausteine.
Die Funktionalität eines Eingebetteten Systems hängt nicht mehr nur von der Hardware, sondern in besonderem Maße auch von der im System imple-mentierten Software ab. Die Vorteile sind die zusätzliche Funktionalität und die Flexibilität in der Entwicklung und im praktischen Einsatz. Allerdings wird durch die Einbeziehung der Software-Entwicklung in den Entwurfsfluss der Lösungs-prozess der Aufgabenstellung komplizierter. Es besteht der Bedarf, Hard- und Software zusammen in einer gemeinsamen Simulationsumgebung zu veri-fizieren, eine Aufgabe, die heute noch nicht befriedigend gelöst ist.
2.2.1 Prozessor
Es gibt zwei Arten von Prozessoren in eingebettete Systeme: Hardcore und Softcore.
Ein Softcore Prozessor ist ein IP-Core, welcher anhand der primären Logik von FPGA implementiert ist. Die Vorteile beim Einsatz eines Soft Prozessors sind unter anderen: Ein gutes Preis/Leistungs-Verhältnis schneller „time to market“ und einfache Integration in der FPGA Rekonfigurierbarkeit. Der Nachteil ist die niedrigere Performanz im Vergleich zu Hardcore-Prozessoren [14].
2.2.2 System-On-Chip
Unter System on Chip (SoC) versteht man die Integration aller oder eines großen Teils der Systemfunktionen auf einem Stück Silizium, auch monolithische Inte-gration genannt. Eingesetzt werden SoCs üblicherweise in eingebetteten Systemen [14].
Während Systeme ursprünglich aus einem Mikroprozessor- oder Mikrocontroller-IC und vielen anderen ICs bestanden, die auf einer Platine aufgelötet waren, geht heute der Trend dazu, alle Funktionen auf einem IC zu realisieren. Dabei werden digitale, analoge und mixed-signal Funktionseinheiten integriert. Vorteile sind vor allem Kosteneinsparung und Miniaturisierung. So ist heute beispielsweise bei Mobiltelefonen die digitale Funktion mit Ausnahme des Speichers auf einem IC realisiert. Die Schnittstelle beispielsweise zur Tastatur, zur SIM-Karte oder zum Display ist bereits auf diesem IC enthalten [16].
[...]
[1] http://www.linear.com.
[2] http://www.national.com/opf/LM/LM4550.html.
[3] Automatic Gain Control.
[4] Application Specific Integrated Circuit.
[5] Application Specific Instruction Set Processor.
[6] Digital Signal Processor/Processing.
- Arbeit zitieren
- Dipl. Ing. Auguste Feukam-Chindji (Autor:in), 2008, Implementierung eines Software Defined Radio auf einem Field Programmable Gate Array (FPGA), München, GRIN Verlag, https://www.grin.com/document/116080
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen.