Sie sind auf Seite 1von 156

Ingenieur-Wissenschaftliches Zentrum

der FH-Kln

Fakultt fr

Informations-, Medien- und Elektrotechnik

Skript zur Vorlesung

Digitale Signalverarbeitung mit Fpga

von

Prof. Dr.-Ing. Jens Onno Krah

04. Februar 2014

DSF 1 Krah WS 13/14


Inhaltsverzeichnis
1 Einleitung 5
1.1 Theoretische Grundlagen der digitalen Signalverarbeitung 5
1.2 Begriffe 6
2 Programmierbare Logikbausteine 8
2.1 Transistor-Transistor-Logik (TTL) 8
2.2 Programmable Array Logic (PAL) 9
2.3 Complex Programmable Logic Devices (CPLD) 10
2.4 Field Programmable Gate Array (FPGA) 12
2.5 Low Cost FPGA Reihe Cyclone von Altera 15
2.5.1 Input / Output (IO) 17
2.5.2 Logik Elemente (LE) 20
2.5.3 Embedded Multiplier (DSP) 21
2.5.4 Phase Look Loop (PLL) 22
2.5.5 Embedded Memory 23
3 Nutzung von Evaluation Boards 24
3.1 Das Drei-Schichten-Modell 25
4 FPGA Tool Chain Vom Algorithmus zur Netzliste 31
4.1 Quartus II (Altera) 31
4.2 ModelSim 35
4.3 SignalTap II 38
4.4 System Console 39
4.5 MATLAB Simulink 40
4.6 DSP Builder Advanced Blockset 41
5 VHDL 42
5.1 VHDL Entity 46
5.2 VHDL Architecture 46
5.3 VHDL Process 46
5.4 Basis Blcke in VHDL 51
5.4.1 P-Element 51
5.4.2 I-Element 52

DSF 2 Krah WS 13/14


5.4.3 PI-Element 54
5.4.4 Tiefpass erster Ordnung 55
5.4.5 Beobachter zweiter Ordnung 55
6 System on programmable Chip 57
6.1 Geistiges Eigentum (IP) 59
6.2 OpenCore Plus 60
6.3 Megacore IP Library 61
6.4 Soft Core CPU Nios II 62
6.4.1 Custom Instruction ein Mittelweg zwischen Hardware und Software 66
6.5 FPGA integrierte Hard-Core Prozessoren 69
7 Digital-Analog-Umsetzer - Digital-to-Analog Converter (DAC) 70
7.1 Schnelle Digital-Analog-Umsetzer 70
7.2 Abzhlende Digital-Analog-Umsetzer 72
7.3 Sigma-Delta Digital-Analog-Umsetzer 73
8 Analog-Digital-Umsetzer 77
8.1 Kenngren von Umsetzern 79
8.2 Kompensationsverfahren (Wgeverfahren) 80
8.3 Dual-Slope (Zhlverfahren) 80
8.4 Spannungs-Frequenz-Umsetzungsverfahren 81
8.5 Flash-Analog-Digital-Umsetzer (Parallelverfahren) 81
8.6 (Sigma-Delta) Analog-Digital-Umsetzer 82
9 Der Abtastvorgang 89
9.1 Realisierung eines Abtastgliedes 89
9.2 Mathematische Beschreibung des Abtast-Halte-Gliedes 90
9.3 Das Abtasttheorem von Shannon 97
9.4 Anti-Aliasing-Filter 100
9.5 Rekonstruktions-Filter 101
10 Reale Abtastsysteme 103
10.1 Zeitverhalten eines Abtastsystems 105
10.2 Aufbau eines Prozessorbasierten Systems: C, DSP und IPC 106
10.3 Aufbau eines FPGA basierten Signalverarbeitungssystems 110

DSF 3 Krah WS 13/14


11 Digitale Filter 111
11.1 Nichtrekursive Digitalfilter (FIR) 111
11.2 Realisierung nicht rekursiver Filter 114
11.3 Rekursive Digitalfilter (IIR) 116
11.3.1 Rekursives Digitalfilter erster Ordnung 118
11.3.2 Rekursives Digitalfilter zweiter Ordnung 123
11.4 Digitale Filter hherer Ordnung 129
11.5 Realisierung digitaler Filter in Festkomma-Arithmetik 129
11.6 Multiraten-Signalverarbeitung 130
11.7 Dezimierungsfilter (SincK-Filter) fr -Analog Digital Wandler 132
12 z Transformation 135
12.1 Definition der z-Transformation 135
12.2 Rechenregeln der z-Transformation 136
12.3 Diskrete Grundsignale 140
12.4 Rcktransformation 141
12.5 Zusammenschalten von bertragungsgliedern 144
13 Stabilittskriterien 146
13.1 Definition der Stabilitt 146
13.2 Grundlegende Stabilittskriterien 146
13.3 Algebraische Stabilittskriterien 147
14 Literaturverzeichnis 152
15 Abkrzungen / Formelzeichen 153
16 Index 155

DSF 4 Krah WS 13/14


1 Einleitung
Eine analoge Schaltung zur Signalverarbeitung ist immer um ein Vielfaches schneller
als eine prozessorbasierte Implementierung, z.B. mit einem Controller (C) oder
einem Digitalen Signal Prozessor (DSP). Whrend sich Softwarelsungen durch eine
hohe Flexibilitt und eine universelle Verwendung auszeichnen, sind Hardwarel-
sungen meist auf ein spezielles Problem zugeschnitten und knnen eine Aufgabe
dadurch meist deutlich schneller lsen.
Field Programmable Gate Arrays (FPGA) vereinen die Vorteile der Anstze. Einer-
seits handelt es sich bei FPGAs um Hardware, die digitale Signale mit Basisblcken
(Gatter, Logikelemente etc.) parallel verarbeitet, zum anderen ist die Konfiguration
der Hardwarekomponenten per Software (z.B. VHDL) programmierbar. Darber hin-
aus knnen durch den Einsatz eines Soft-Core-Prozessors auch weniger zeitkritische
Teile eines Algorithmus effizient gelst werden.

1.1 Theoretische Grundlagen der digitalen Signalverarbeitung


Im Folgenden werden grundlegende Kenntnisse der klassischen (analogen) Signal-
verarbeitung (ASS) und ihrer Methoden (Laplace etc.) vorausgesetzt. In einer kurzen
Wiederholung wird auf die zur Beschreibung digitaler Systeme (DSS) mit notwendi-
gen theoretischen Grundlagen und mathematischen Methoden (z-Transformation)
eingegangen. Diese unterscheiden sich teilweise von denen der analogen Signalver-
arbeitung, weil es sich bei einer digitalen Verarbeitung um ein Abtastsystem handelt.
Hierbei werden kontinuierlich ablaufende Vorgnge zeitdiskret, das heit nur zu be-
stimmten Zeitpunkten, betrachtet. Zeitdiskrete Vorgnge werden nicht mehr durch
Funktionen f(t) , sondern durch Folgen {xk} beschrieben. Anstelle der vielfach ver-
wendeten Laplace-Transformation wird zur Beschreibung von Abtastsystemen die z-
Transformation als Spezialfall der Laplace-Transformation eingesetzt. Jedoch erfolgt
immer wieder der Bezug zur analogen Signalverarbeitung, um auf Zusammenhnge
zwischen den jeweiligen mathematischen Verfahren hinzuweisen. Denn obwohl die
digitale Signalverarbeitung vllig neue Mglichkeiten bietet, baut sie auf dem Erfah-
rungsschatz der wesentlich lteren zeitkontinuierlichen Technik auf.
Nach der Einfhrung erfolgt eine kurze Beschreibung des Aufbaus und der Funkti-
onsweise eines digitalen Systems. Anschlieend wird die prinzipielle Struktur von
Abtastsystemen betrachtet und mittels Diskretisierung hergeleitet, um dann den Ab-
tastvorgang mathematisch zu beschreiben.
Abschlieend werden grundlegende Implementierungen fr zeitdiskrete Systeme be-
handelt. Auf dieser Grundlage werden Entwrfe von Abtastsystemen im Frequenzbe-
reich vorgenommen.

DSF 5 Krah WS 13/14


1.2 Begriffe
Vorab sollen noch einige wichtige Begriffe, die in der Technik hufig Verwendung
finden, genauer erlutert werden.
System
Im Sinne von DIN 66201 stellt ein System eine abgegrenzte Anordnung von aufei-
nander einwirkenden Gebilden dar, die sich durch eine Hllflche von der Umgebung
abgrenzen lassen. Durch zweckmiges Zusammenfgen bzw. Unterteilen eines Ge-
samtsystems entstehen mehrere Teilsysteme. Bei der Betrachtung dieser Teilsysteme
entstehen an den Hllflchen Schnittstellen zwischen der Umgebung der Teilsysteme
und dem System selbst. ber diese Schnittstellen kann ein Materie-, Energie- oder
Informationstransport stattfinden.
Signale
Der Informationsaustausch in technischen Prozessen erfolgt ber Signale. Dabei wir-
ken die physikalischen Gren als Signaltrger. Mit Signalparameter oder Informa-
tionsparameter bezeichnet man diejenigen Kenngren des Signals, deren Werte o-
der Werteverlauf die Information darstellen.
Signale lassen sich durch ihr Amplituden-Zeit-Verhalten klassifizieren, Bild 1.1. Da-
bei unterscheidet man zwischen kontinuierlichem und diskretem Verhalten. Den
bergang von zeitkontinuierlichen Signalen auf zeitdiskrete Signale nennt man Dis-
kretisierung. Der bergang von amplitudenkontinuierlichen Signalen auf amplitu-
dendiskrete Signale wird als Quantisierung bezeichnet.
Die Signalformen lassen sich wie folgt unterscheiden:
- Signale, deren Werte sich zeit- und amplitudenkontinuierlich ndern und inner-
halb eines bestimmten Bereiches beliebige Werte annehmen knnen, nennt man
kontinuierliche, analoge Signale.
- Signale, deren Werte zeitdiskret und amplitudenkontinuierlich sind, entstehen
meistens durch Abtastung (S&H) analoger Signale.
- Signale, deren Werte zeitkontinuierlich und amplitudendiskret (wertdiskret) sind,
entstehen durch Quantisierung der Amplitude eines analogen Signals.
- Signale, deren Werte zeitdiskret und amplitudendiskret verlaufen, nennt man dis-
krete Signale. Zur Verarbeitung diskreter Signale in Digitalrechnern mssen die
diskreten Werte kodiert werden. Die so entstandenen Signale bezeichnet man als
digitale Signale.

DSF 6 Krah WS 13/14


f(t) f(t) abgetastet
analog

t t

zeitkontinuierlich zeitdiskret
amplitudenkontinuierlich amplitudenkontinuierlich

f(t) quantisiert f(t) digital

t t

zeitkontinuierlich zeitdiskret und


amplitudendiskret (wertdiskret) amplitudendiskret (wertdiskret)

Bild 1.1: Amplituden-Zeit-Verhalten von Signalen

Prozessrechner
Entsprechend DIN 66201 wird damit ein Rechner bezeichnet, der mittels Prozesspe-
ripherie direkt an einen Prozess zur Erfassung, Verarbeitung und Ausgabe von Daten
gekoppelt ist. Da moderne Prozessrechner heute fast ausschlielich aus mikroelektro-
nischen Schaltkreisen bestehen, kann man eine grobe Einteilung nach ihrer Gre
und Leistungsfhigkeit vornehmen. So lassen sich
- Mikrocontroller (C) Einzelsysteme,
- Industrie-PCs mit multi-core Prozessoren (IPC) fr komplexe Systeme,
- Digitale Signalprozessoren und spezielle Mikrocontroller (DSP, C) und
- FPGAs fr extrem schnelle Systeme einsetzen.

DSF 7 Krah WS 13/14


2 Programmierbare Logikbausteine

2.1 Transistor-Transistor-Logik (TTL)


Die Transistor-Transistor-Logik (TTL) ist eine Schaltungstechnik (Logikfamilie)
fr logische Schaltungen (Gatter), bei der als aktives Bauelement der Schaltung
planare npn-Bipolar-Transistoren verwendet werden. Hierbei wird meist ein Multi-
Emitter-Transistor eingesetzt, so dass fr mehrere Eingnge nur ein Transistor erfor-
derlich ist.

Bild 2.1: 4-fach Nand 7400


TTL-Schaltkreise werden blicherweise mit einer Versorgungsspannung von 3,3 oder
5 Volt betrieben. Kurzzeitig knnen allerdings bis zu 7 Volt Betriebsspannung anlie-
gen. Die untere Grenze ist bei 2,7 Volt. Eine hohe Spannung ist als High-Pegel (eine
logische 1) definiert, eine niedrige Spannung wird als Low-Pegel bezeichnet (eine
logische 0). Die Schaltkreise sind so dimensioniert, dass Eingangsspannungen UE <
0,8 V als Low-Pegel, und UE > 2,0 V als High-Pegel erkannt werden. Die Aus-
gangsspannung UA betrgt typisch < 0,4 V fr den Low-Pegel und > 2,4 V fr den
High-Pegel. Der statische Strabstand betrgt somit sowohl fr High- als auch fr
Low-Pegel mindestens 0,4 V.
Logische Bausteine in TTL-Technik haben den Vorteil, dass sie unempfindlicher ge-
genber elektrostatischen Entladungen sind als CMOS-Bausteine. Dennoch sollen
unbenutzte Eingnge der TTL-Schaltkreise auf ein festes Potential gelegt werden,
damit der Schaltkreis korrekt arbeitet.
Man erkennt den Standard TTL-Schaltkreis an einer Bezeichnung der Form 74ccxx,
wobei "74" auf die Logikfamilie, cc auf die verwendete Technologie (z.B. cc = LS
entspricht Low-power Schottky) und xx auf den Gatter-Typ (z.B. xx = "00" ent-
spricht NAND) verweist.
Bild 2.1 zeigt den Aufbau eines TTL-NAND-Gatters. V1 ist der Multi-Emitter-
Transistor, U1 und U2 sind die Eingangsspannungen. Eine Besonderheit der TTL-

DSF 8 Krah WS 13/14


Reihe besteht darin, dass unbeschaltete Eingnge wirken, als lgen sie auf einem
High-Pegel (Pull-up default = 1).

2.2 Programmable Array Logic (PAL)

Bild 2.2: Grundprinzip eines PAL

Eine programmierbare logische Anordnung, hufig in deutschsprachiger Fachlitera-


tur als Programmable Array Logic oder kurz PAL bezeichnet, ist ein Halbleiter-
schaltkreis, der aus zwei hintereinander geschalteten AND- und OR-Matrizen besteht.
Ein PAL wird zur Herstellung von Schaltnetzen und -werken fr logische Funktionen
in disjunktiver Form verwendet. Die AND-Matrix reprsentiert dabei die Konjunkti-
onsterme. Die Auswahl der Konjunktionsterme erfolgt im Rahmen der Programmie-
rung (meist mittels eines speziellen Gertes) durch das Entfernen von Schaltgliedern
aus der AND-Matrix. Die disjunktive Verknpfung der Konjunktionsterme erfolgt
mittels der ODER-Matrix. Die technische Realisierung beider Matrizen erfolgt aller-
dings hufig mittels NAND-Gliedern. 1978 kamen die ersten vollstndig konfigurier-
baren Logikbausteine namens PAL mitsamt der Programmiersoftware PALASM
(=PAL Assembler) auf den Markt.
Heutzutage werden PALs nur noch selten eingesetzt und sind fast vollstndig durch
CPLDs abgelst worden. CPLDs besitzen so wie PALs keine Einschrnkungen be-
treffend der Verwendbarkeit der UND-/ODER-Matrizen im Eingangsbereich, sind
elektrisch programmierbar und auch wieder lschbar. CPLDs sind wie FPGAs in ein-
heitlichen Hardwareprogrammiersprachen wie beispielsweise VHDL zu program-
mieren und umfassen darber hinaus eine bestimmte Anzahl an Registern.
Realisierung
Ursprnglich wurde eine Matrix aus Sicherungen (engl. fuse) verwendet, wobei beim
Programmieren entsprechend dem zu programmierenden Bitmuster, einzelne Sicher-
ungen mit einem hohen Strom durchgebrannt wurden. Eines der Probleme dieser
Technologie war, dass sich mit der Zeit - durch Kristallisations-Prozesse - einzelne
Sicherungen wieder reparieren konnten.
Bei der neueren Antifuse-Technologie besteht das PAL aus einer Diodenmatrix, in
welcher jede Diode ein Bit reprsentiert. Im Gegensatz zur Fuse-Technologie, wo
DSF 9 Krah WS 13/14
eine leitende Verbindung unterbrochen wird, sind hier die Dioden so verschaltet, dass
sie normalerweise den Strom sperren. Beim Programmiervorgang werden nun gezielt
bestimmte Dioden mit einem sehr hohen Strom belastet. Diese Dioden werden
dadurch zerstrt und bilden dadurch eine leitende Verbindung.
Nach dem Brennvorgang des PAL werden die geschriebenen Daten durch ein Bit-
muster defekter und funktionierender Dioden reprsentiert. Diese Daten lassen sich
nun beliebig oft auslesen (wobei der Lesestrom selbstverstndlich unterhalb dessen
liegt, welcher zur Programmierung verwendet wird). PALs gehren in die Gruppe der
OTP-Bauelemente (one time programmable).
Die Anzahl der Ein- und Ausgnge muss dabei nicht identisch sein. Ein einmal pro-
grammierter Baustein kann nicht mehr gendert werden, was bei der endgltigen Se-
rienfertigung nicht weiter strend ist.
Als Weiterentwicklung der PALs kamen zuerst durch die Firma Lattice Semiconduc-
tor die wiederbeschreibbaren Generic Array Logic (kurz GAL genannt) Bausteine
auf den Markt. Whrend der Entwicklungsphase elektronischer Schaltungen wurden
gerne GALs eingesetzt, da sie sich mehrfach lschen und neu programmieren lassen.

2.3 Complex Programmable Logic Devices (CPLD)


Heutzutage werden PALs und GALs kaum noch eingesetzt und sind fast vollstndig
durch CPLDs abgelst worden. CPLD steht fr Complex Programmable Logic De-
vice. CPLDs besitzen keine Einschrnkungen betreffend der Verwendbarkeit der
UND-/ODER-Matrizen im Eingangsbereich, sind elektrisch programmier- und lsch-
bar, sind wie FPGAs in einheitlichen Hardwareprogrammiersprachen wie beispiels-
weise VHDL programmierbar und umfassen darber hinaus eine bestimmte Anzahl
an Registern.

Bild 2.3: Complex Programmable Logic Device (CPLD) von Altera

DSF 10 Krah WS 13/14


CPLDs bestehen im Wesentlichen aus folgenden Elementen:
programmierbare AND/OR-Matrix
programmierbare Rckkopplung (z.B. fr Zhler)
Eingabeblock
Ausgabeblock
Ein-/Ausgabeblcke knnen schnelle Speicher, wie Latches, D-Flipflops oder Regis-
ter, sein. Viele moderne CPLDs stellen programmierbare Ausgnge bereit, denen
man definierte Zustnde (active low, active high, tri-state) zuweisen kann. Der
AND/OR-Matrix als Kern kann jede beliebige kombinatorische Verknpfung zuge-
wiesen werden.
Ein CPLD setzt sich aus vielen Makrozellen zusammen. Die einzelnen Makrozellen
werden wiederum ber Busse miteinander verbunden. Der homogene Aufbau ermg-
licht eine exakte Bestimmung der Durchlaufzeiten, was den wesentlichen Unter-
schied zu den FPGAs ausmacht. Ein weiterer, allerdings nicht grundlegend notwen-
diger Unterschied ist die Konfiguration: Durch Fertigung in EECMOS electronically
erasable complementary metal oxide semiconductor bleibt nach der Konfiguration
das Programm im CPLD und muss nicht bei jedem Start neu geladen werden. Dieses
Kriterium der Konfiguration ist kein wesentliches Unterscheidungsmerkmal zwischen
CPLDs und FPGAs: So gibt es auch FPGA-Bausteine am Markt welche ebenfalls wie
CPLDs EEPROM-Zellen zur Speicherung ihrer Konfiguration beinhalten und keinen
externen Speicher bentigen (z.B. Actel).
Durch die hohe Anzahl von Eingngen pro Logikblock bieten sich CPLDs vor allem
fr die Lsung komplexer, paralleler kombinatorischer AND/OR-Logik an wo viele
Ein- bzw. Ausgnge vorhanden sind. Gleichzeitig sollte die Anzahl der notwendigen
Speicher (Flipflops) bei der Anwendung von CPLDs eher gering sein, da pro Ein-
bzw. Ausgabepins meist nur ein einziges Flipflop als Register zur Verfgung steht.
Digitale Schaltungen welche viele Register erfordern, wie beispielsweise Schiebere-
gister oder digitale Zhler, lassen sich daher nur bis zu einem gewissen Grad in
CPLDs effizient realisieren.
Bei steigender Zahl der Zellen werden die Makrozellen mit lokalen Leitungen zu
bergeordneten Strukturen wie Logic Array Blocks, LABs zusammengefasst. Diese
Bezeichnungen variieren allerdings je nach Hersteller.
Hersteller sind beispielsweise: Xilinx, Altera, Lattice, Actel, Lucent, Cypress, Atmel
oder Quicklogic.

DSF 11 Krah WS 13/14


2.4 Field Programmable Gate Array (FPGA)
Ein FPGA (Field Programmable Gate Array) ist ein programmierbarer Halbleiterbau-
stein bzw. IC. Er beinhaltet programmierbare logische Komponenten (LE: Logic
Element), meist mit einer Pfadbreite von 1 Bit, weshalb FPGAs als feinkrnig rekon-
figurierbar gelten und programmierbare Verbindungen zwischen diesen Komponen-
ten. Das Ganze ist als Feld (field) bzw. Matrix gefertigt. Die Komponenten knnen
zu grundlegenden logischen Bausteinen wie AND, OR, NOR, NOT und NAND, pro-
grammiert werden. Sie knnen aber auch zu komplexerer Logik wie Decoder, Enco-
der oder mathematischen Funktionen programmiert und verknpft werden. Das
FPGA wird nach der Herstellung vom Anwender programmiert. Er kann meist auch
im System, also in einer voll bestckten Platine, programmiert werden, um Firmwa-
re-Updates einzuspielen. Da die Funktion des FPGAs ausschlielich durch die Konfi-
guration festgelegt wird, kann der gleiche Baustein fr viele verschiedene Schaltun-
gen verwendet werden. Er kann deshalb in groen Stckzahlen produziert werden,
was ihn bei Prototypen bis hin zu mittleren Stckzahlen kostengnstig im Vergleich
zu einer anwendungsspezifischen integrierten Schaltung (ASIC) macht. FPGAs sind
im Allgemeinen langsamer als ASICs und sie sind nicht beliebig tief bzw. kompli-
ziert programmierbar. Vielmehr ist die Tiefe der programmierbaren Logik von der
Vorbereitung des Herstellers abhngig. Gemessen wird dies an der Anzahl der logi-
schen Komponenten, der I/O Ports, der Flipflops, der Gates usw.

Bild 2.4: Ein FPGA der Firma Altera

Aufbau und Struktur

Bild 2.5: Logik-Element eines FPGAs, mit Look-Up-Table (LUT) und Flipflop

Die zentralen Elemente eines FPGAs sind programmierbare Logikelemente. In die-


sen knnen logische Operationen wie AND, OR, NOT, XOR realisiert werden. Au-
erdem ist ihnen ein Speicherelement nachgeschaltet, das als Flipflop oder Latch
verwendet werden kann bzw. berbrckt wird, wenn eine rein kombinatorische Funk-
tion bentigt wird. Die kombinatorische Logik wird meist durch sog. LUTs (Look-
Up-Table) gebildet, das heit in einem kleinen Speicher wird fr jeden Zustand der

DSF 12 Krah WS 13/14


Eingnge der Wert abgelegt, den der Ausgang annehmen soll. Der LUT-Speicher
kann auch als Teil von Rechenfunktionen eingesetzt werden.
An die Logikelemente sind Schaltmatrizen angeschlossen, mit denen ber Leitungen
die Verbindung zu anderen Elementen des FPGAs hergestellt wird.
#Eingangs-/Ausgangs-Blcke dienen der Kommunikation mit der Auenwelt, ber
sie werden die Pins des FPGAs mit der Schaltmatrix verbunden. Auch diese Blcke
knnen an die jeweilige Anwendung angepasst werden, z.B. kann die Ausgangsspan-
nung an den jeweiligen I/O-Standard angepasst werden (TTL/CMOS usw.).
Anwendungsgebiete
Reprogrammierbare FPGA haben einen speziellen Bereich der Computertechnik erst
in nutzbarem Umfang realisierbar gemacht: Selbst konfigurierende Systeme. Diese
konfigurieren sich zur Laufzeit entsprechend der geforderten Eigenschaften (z. B.
spezielle mathematische Algorithmen) um und erreichen damit bisher unerreichte
Verarbeitungsgeschwindigkeiten und Parallelitt. Als besondere Herausforderung
kann man hierbei die Compiler-Entwicklung sehen. Ziel ist es, objektorientiert Lo-
gik-Kapazitten bei Bedarf zur Benutzung zu konfigurieren und nach der Benutzung
freizugeben.
FPGAs werden gerne zur Echtzeit-Verarbeitung einfacher Algorithmen genutzt, spe-
ziell zur Signalverarbeitung (z. B. FFT, FIR), Protokoll-Abarbeitung (Ethernet MAC-
Layer, GPRS etc.), Kodierung, Fehlerkorrektur usw., das heit immer dann, wenn die
Bearbeitung eines Datenstroms nicht mehr von einer CPU bewltigt werden kann
(Ausgangsdatenstrom gleich gro wie Eingangsdatenstrom, in der Regel mit einer
gewissen Latenz). Besonders in Bereichen, in denen Algorithmen bzw. Protokolle
einer schnellen Weiterentwicklung unterliegen, ist die Verwendung rekonfigurierba-
rer FPGAs statt ASICs angebracht (schnelle Marktreife, nachfolgende Fehlerbehe-
bungen, Anpassung an neue Entwicklungen), weil dann nur noch die Firmware aktua-
lisiert werden muss, anstatt der Neuanfertigung bzw. dem Austausch eines ICs.
Die inzwischen erreichte Anzahl von Logikblcken erlaubt die Integration mehrerer
eingebetteter Computersysteme in einen einzigen FPGA-Baustein inklusive CPU(s),
Bussystem(en), RAM, ROM, RAM-Controller, Peripherie-Controller etc. FPGAs
werden auch als Entwicklungsplattform fr den digital-Teil von ASICs und fr Pro-
zessoren verwendet.
Unterschiede zu Prozessoren
FPGAs bieten die Mglichkeit Informationen massiv parallel zu verarbeiten.
Dadurch bentigen FPGAs nicht so hohe Taktfrequenzen wie Prozessoren, welche
einen Programmfluss sequentiell verarbeiten. In einem FPGA knnen hunderte Addi-
tionen und Multiplikationen zur gleichen Zeit ausgefhrt werden, whrend selbst mo-
derne Prozessoren mit SIMD-Befehlen nur einige wenige Operanden parallel verar-
beiten knnen.

DSF 13 Krah WS 13/14


Die Unterschiede zu CPLDs sind im Wesentlichen:
durch Blockarchitektur und frei programmierbaren Signalfluss ist bei FPGAs
keine Abschtzung der Gatterlaufzeiten mglich
bei FPGAs, die auf SRAM-Technologie basieren, erfolgt eine Konfiguration
bei jedem Start (heutzutage meist via JTAG oder vom Prozessor her aus dem
Flash), bei CPLDs die auf Flash- oder Antifuse-Technologie basieren entfllt
logischerweise die Konfiguration.
Vorteile gegenber ASICs
deutlich geringere Entwicklungskosten
(im Gegensatz zu ASICs keine Masken mit sehr hohen Fixkosten bentigt)
sehr kurze Implementierungs- und Updatezeiten
einfach korrigier- und erweiterbar (rekonfigurierbar)
geprftes Silizium
geringeres Designrisiko, da es nicht mehrere Monate vor der Hardwareauslie-
ferung fertiggestellt sein muss
Nachteile gegenber ASICs
ab hheren Stckzahlen hherer Stckpreis
geringere Taktraten (aktuell verfgbar bis ca. 600 MHz)
geringere Logikdichte (ca. 10-facher Flchenbedarf gegenber einem ASIC
gleicher Technologie)
hherer Energiebedarf (Stromverbrauch)
weniger Flexibilitt was Ausstattung z.B. mit eingebettetem Speicher oder ana-
logen Elementen angeht, aber auch bei IO-Buffern.
der krzere Designzyklus und die Mglichkeit sehr spt noch Fehler korrigie-
ren zu knnen, verleitet dazu, im Vorfeld weniger funktionale Tests durchzu-
fhren.
SRAM-basierte FPGAs (das sind z.B. die von den Marktfhrern Xilinx und
Altera angebotenen) mssen nach jedem Systemstart geladen werden. Es sind
also zustzliche externe Komponenten notwendig, z.B. ein herstellerspezifi-
scher Konfigurationsbaustein (EEPROM) oder ein Mikrocontroller mit zustz-
lichem Flash-Speicher, der den Initialisierungsvorgang durchfhrt. Das bedeu-
tet auch, dass die Funktionalitt eines FPGAs nicht direkt nach dem Einschal-
ten zur Verfgung steht, sondern erst nach dem Laden, was je nach eingesetz-
ter Technik einige Zeit dauern kann. Dieser Nachteil gilt nur fr einige FPGAs.

DSF 14 Krah WS 13/14


2.5 Low Cost FPGA Reihe Cyclone von Altera

CPLDs Low-Cost High-Density, High-Performance, Structured


FPGAs Med-Performance High-Density FPGAs ASICs
FPGAs With With High-Speed
Transceivers Transceiver Options

Intellectual Embedded Development


Property (IP) Design Soft Kits
Software Processors

Bild 2.6: Altera offers a complete programmable logic portfolio [Altera]

Integrated transceivers
Up to 30% lower power
Only 2 power supplies
Integrated PCIe Hard IP
50% lower power 6K 150K LEs
5K 120K LEs 6.5 Mbits of embedded RAM
4 Mbits embedded RAM Up to 360 multipliers
5K 70K LEs 288 18 x 18 multipliers for DSP Nios II embedded processor
1.1 Mbits embedded RAM Higher performance DDR2 support
150 18 x 18 multipliers for DSP Nios II embedded processor
DDR2 support Complete security solution
2K 20K logic elements (LEs) Nios II embedded processor
295 Kbits embedded RAM
DDR support
Nios embedded processor

2002 2004 2007 2009

Bild 2.7: Features to Meet the Needs of High-Volume Applications


(Quelle: Altera)

DSF 15 Krah WS 13/14


FPGA Value Proposition
Flexibility
Update your product immediately to add new features or increase per-
formance by re-programming the FPGA
Cost reduction
Integrate your digital logic into one device
Support many products for one base hardware design
Easy maintenance/upgrade of products in the field
Protection from obsolescence
FPGA devices have long lifetimes
IP design can easily be re-targeted to new FPGA family

Up to 400-Mbps
external memory
interfaces
Up to 150K LEs
Up to 360 embedded
Up to 8 transceivers, multipliers
up to 3.125 Gbps

PCIe hard IP block

Up to 6.5-Mbits Up to 475 flexible


embedded memory user I/O pins

Up to 4 MPLLs
Up to 4 PLLs

MPLL multi-purpose phase-locked loop for transceivers

Bild 2.8: Cyclone IV GX: key architectural features [Altera]

DSF 16 Krah WS 13/14


2.5.1 Input / Output (IO)
Cyclone IV GX &
Cyclone IV E (1.0V)
Single-ended I/O standards Cyclone IV E (1.2V) Usage
max clock rate
max. clock rate

2.5-V SSTL Class I and II 167 MHz 167 MHz DDR SDRAM
1.8-V SSTL Class I and II 200 MHz 167 MHz DDR/DDR2 SDRAM
1.8-V/1.5-V/1.2-V HSTL I and II 167 MHz 167 MHz QDR I/II SRAM
3.3-V PCI compatible 66 MHz 66 MHz Embedded
3.3-V PCI-X 1.0 compatible 100 MHz 100 MHz Embedded
3.3-V LVTTL, LVCMOS 100 MHz 100 MHz System interface
3.0-V/2.5-V/1.8-V LVTTL 167 MHz 167 MHz System interface
3.0-V/2.5-V/1.8-V/1.5-V/1.2-V LVCMOS 167 MHz 167 MHz System interface

Cyclone IV GX &
Cyclone IV E (1.0V)
Differential I/O standards Cyclone IV E (1.2V) Comment
max data rate
max data rate

LVDS Rx 875 Mbps 640 Mbps High-speed serial


LVDS Tx 840 Mbps 640 Mbps High-speed serial
RSDS/Mini-LVDS transmission 440 Mbps 311 Mbps High-speed serial
LVPECL 500 MHz 500 MHz High-speed clocks

* IP cores available, requires external PHY devices


** all data rates are subject to change pending characterization.

Bild 2.9: Supported I/O Standards

QN148 F169 F324 F484 F672 F896

0.5 mm 1.0 mm 1.0 mm 1.0 mm 1.0 mm 1.0 mm


11 x 11 14 x 14 19 x 19 23 x 23 27 x 27 31 x 31

XCV XVC XCV XCV XCV XCV


Device I/Os I/Os I/Os I/Os I/Os I/Os
Rs Rs Rs Rs Rs Rs

EP4CGX15 72 2 72 2

EP4CGX22 72 2 150 4

EP4CGX30 72 2 150 4 290 4

EP4CGX50 290 4 310 8

EP4CGX75 290 4 310 8

EP4CGX110 270 4 393 8 475 8

EP4CGX150 270 4 393 8 475 8

Bild 2.10: Cyclone IV GX Package Plan

DSF 17 Krah WS 13/14


Variety of I/O Standards
HSTL, SSTL Class I and II
LVDS, RSDS, Mini-LVDS, PPDS
LVCMOS
LVTTL
LVPECL
PCI, PCI-X
- 3.3-V compatible
- On-chip termination (On-chip Abschlusswiderstand)
- Adjustable slew rates (Einstellbare Anstiegszeiten)
- Eight banks of every device in the family
Each can implement any supported I/O standard
- Dedicated memory interfaces
QDR II, DDR, and DDR2

Bank 3 Bank 4
Bank 5
Bank 2

Bank 6
Bank 1

Bank 8 Bank 7

Bild 2.11: I/O Pin Features


Complete flexibility to implement a wide variety of I/O standards

In der Regel kann bei jeder der meist 8 Bnke ein I/O Standard genutzt werden. Das
muss beim Layout bercksichtigt werden, da einige Pins der Bnke die entsprechende
Spannungsversorgung bentigen.

DSF 18 Krah WS 13/14


Output Enable
REG

Data Out Reg


REG
Pin
Data Out Comb

Output Clock

Data In Comb

Data In Reg
REG

Clock

Bild 2.12: Blockschaltbild eines I/O Elementes

Im Randbereich der FPGAs (Bild 2.8) befinden sich die sogenannten Ein-
/Ausgangsblcke. Diese sind auf dem Silizium-Chip jeweils mit einem Pad verbun-
den. Die Pads wiederum sind ber Bonddrhte mit den Pins des IC-Gehuses verbun-
den, Bild 2.12.
Die Input/Output-Blcke (IOB) stellen die Verbindung zwischen den internen Signa-
len des FPGAs und den externen elektrischen Eingangs- und Ausgangssignalen dar.
Es handelt sich in der Regel um bidirektionale I/O Blcke. Ein Ausgangssignal (Out-
put) kann aktiv-high, aktiv-low oder tri-state (hochohmig) sein. Im Falle von tri-state
kann ein Eingangssignal von auen eingelesen werden (Input). In der Regel verfgen
IOBs ber Latch-Flipflops, die optional berbrckt werden knnen.

Bild 2.13: Darstellung der Timing-Constrains fr die I/Os

DSF 19 Krah WS 13/14


Wenn ein Eingangssignal z.B. ber ein D-Flipflop mit dem FPGA-Takt synchroni-
siert werden soll, knnen mit einem Flipflop im IOB sehr kurze set-up- und hold-
Zeiten (tsu, th) erreicht werden (z.B. weniger als 5 ns).
Wird ein Ausgangssignal mit synchroner Logik generiert, so kann mit einem Flip-
flop im IOB eine sehr kurze clock-to-output Zeit (tco) erreicht werden (z.B. weniger
als 5ns).
Wird nur kombinatorische Logik (ganz ohne Takt!) verwendet, so werden die Flip-
flops im IOB berbrckt und es ergibt sich eine meist langsamere (z.B. 15 ns) pro-
pagation-delay-Zeit (tpd).
Bei LVDS-Signalen ist darauf zu achten, dass diese immer paarweise verwendet
werden mssen. Einige Signale, wie zum Beispiel Clock oder die Konfiguration be-
treffende nutzen spezielle festgelegte Pins.
Bei der Programmierung (VHDL bzw. BDF) wird festgelegt, ob es sich um einen
Eingang (input OE = 0), Ausgang (output OE =1 ) oder um einen Bidirektio-
nalen I/O (bidir , OE = ?) handelt. ber Pin Assignment (Pin-Planner) wird der ge-
wnschte physikalische Pin zugeordnet.

2.5.2 Logik Elemente (LE)

LUT Carry Carry Register


Chain In0 In1 Chain

Local
Routing

In1
In2 General
LUT REG
In3 Routing
In4

Clock General
Routing

Carry Carry Register


Out0 Out1 Chain

Bild 2.14: Cyclone II Logic Element (Altera)


Ein FPGA besteht aus sehr vielen Logikelementen durch deren vielseitige Konfigura-
tion nahezu jedes beliebige Hardwaredesign realisiert werden kann, Bild 2.14. Die
logischen Blcke mit ihren Verbindungen sind matrixfrmig angeordnet und knnen
zu logischen Bausteinen, wie AND, OR, NOR, NOT und NAND, programmiert wer-
den. Die Programmierung von FPGAs in SRAM Technik erfolgt mit Hilfe so genann-
ter Look-Up-Tables (LUT). Dabei wird der Speicher durch die Eingangssignale

DSF 20 Krah WS 13/14


adressiert und der hinterlegte Wert an dieser Speicheradresse entspricht dann dem
zum Eingangssignal gehrigen Ergebnis. In den Datenblttern werden die LUTs in
der Regel als Read-Only-Memory (ROM) dargestellt. Die Umsetzung und Optimie-
rung von (VHDL) Programmen in FPGA Logic Elemente erfolgt automatisch, z.B.
durch Quartus II von Altera.

2.5.3 Embedded Multiplier (DSP)

Sign_X

Output Registers
18
Input Registers

X
36 36

18
Y

Sign_Y

Clock
Clear

Bild 2.15: Embedded Multiplier Details - 250-MHz Performance

Vor allem fr Aufgaben der digitalen Signalverarbeitung sind DSP-Blcke (Multipli-


zierer) integriert, die resourcenschonender und schneller sind, als solche, die aus Lo-
gikzellen zusammengesetzt sind. Die Nutzung von DSP-Blcken erfolgt automatisch
durch den VHDL-Compiler.
Ab Cyclone V stellt Altera Multiplizierer mit variabler Genauigkeit zu Verfgung.
Maximal sind knnen zwei integer Zahlen mit 27-Bit plus Vorzeichen multipliziert
werden. Dadurch knnen die Mantissen zweier Fliekommazahlen einfacher Genau-
igkeit (float) in einem Schritt multipliziert werden.

DSF 21 Krah WS 13/14


2.5.4 Phase Look Loop (PLL)

Lock I/O &


Global
Detect
Routing
Reference
Clock
N CP
PFD VCO G0
LF
Global
G1 Clock
Network

M
I/O
EG
Buffer

Bild 2.16: Cyclone II PLL Details

So genannte PLLs besitzen einen internen, analogen spannungsgesteuerten Oszillator


(Voltage Controlled Oscillator) VCO. Ein Phasendetektor vergleicht den Referenz-
takt mit dem vom VCO generierten Takt. Ein Regler glttet dieses Signal und steuert
damit den VCO so an, dass die VCO-Frequenz dem Referenztakt nachgefhrt wird.
Werden Referenztakt und/oder VCO-Takt vor dem Vergleich geteilt, so schwingt der
VCO mit einer synchronen abgeleiteten Frequenz:

Eine Taktaufbereitung sorgt dafr, dass berall auf dem Chip EIN synchroner Takt
zu Verfgung steht, zustzlich kann dieser mit Hilfe von Phase Locked Loop (PLL)
Regelkreisen oft noch in der Phase verndert (verschoben) werden.
Damit das Phasenrauschen mglichst gering ist, besitzen die PLLs in den FPGAs b-
licherweise eine separate 2,5 V Spanungsversorgung (analog & digital).
Die Einbindung der konfigurierbaren PLL erfolgt ber den MegaWizard Plug-In Ma-
nager (Altera).
Beim Design von Signalverarbeitungsalgorithmen in VHDL sollten mglichst wenige
Takte verwendet werden. Am besten nur einer, zum Beispiel 50 MHz. Geringere
Taktraten sollen ber entsprechende synchrone Clock-Enable Signale generiert wer-
den. Zum Beispiel kann fr 1 MHz jeder 50-te Clock enabled werden.

DSF 22 Krah WS 13/14


Embedded
2.5.5 Embedded Memory Memory Blocks
4-Kbit Blocks Identical to Port A Port B
DATA DATA
to Stratix II Devices ADDR ADDR
250-MHz Performance WREN WREN
CLK CLK
Fully Synchronous CLKENA CLKENA
True Dual-Port Mode OUT OUT
CLR CLR
Simple Dual-Port Mode
Flexible Capabilities
Mixed-Clock Mode
Mixed-Width Mode
Shift Register Mode
Read-Only Mode
Byte Enables
Initialization Support

Bild 2.17: Cyclone II Embedded Memory Blocks


In vielen FPGAs sind auerdem noch zustzliche fest verdrahtete Funktionen enthal-
ten, wie z.B. Speicher (sog. Block RAM), der sich in vielfltiger Weise konfigurieren
lsst. Rein konventionell organisierter Speicher kann hier untergebracht werden und
belegt dadurch keine LUTs bzw. Logikzellen. Der interne Speicher wird z.B. fr
Softcore-Prozessoren und fr den FPGA-internen Logic Analyzer SignalTap II (Alte-
ra) genutzt.
Die Memory Blocks knnen auch als echte dual Port Speicher genutzt werden. Zum
Beispiel kann eine VHDL Logik Werte von einem AD-Wander direkt in das Memory
schreiben, die dann asynchron (optional auch mit anderem Takt und einer anderen
Datenbusbreite) von einem Prozessor ausgelesen werden knnen.
Die Einbindung der konfigurierbaren Memory Blcke erfolgt z.B. ber den Mega-
Wizard Plug-In Manager (Altera).

DSF 23 Krah WS 13/14


3 Nutzung von Evaluation Boards
So wie vor 20 Jahren der Mikrocontroller und der DSP ihre festen Pltze bei den
Elektronik-Entwicklern hatten, finden sich seit einigen Jahren in den neu entwickel-
ten Schaltungen immer mehr FPGAs. FPGAs werden meist in einer Hochsprache zur
Hardware-Beschreibung programmiert, in der Regel in VHDL (Very High-speed in-
tegrated circuit Hardware Description Language). Die Programmierung eines FPGAs
ist so hnlich wie die Erstellung einer Leiterplatte. Statt der Auswahl und der Ver-
drahtung entsprechender ICs, werden am Markt verfgbare IP-Blcke ausgewhlt
und verdrahtet. Standardbausteine wie z.B. die TTL-Logikfamilie 74XX werden
von fast allen Entwicklungssystemen durch eine Bibliothek untersttzt. Fr den Auf-
bau einer Ethernet-Schnittstelle werden dann noch eine RJ45-Buchse, ein bertrager
zur galvanischen Trennung und ein Leitungstreiber (Transceiver: Sender und Emp-
fnger) bentigt, der sogenannte PHY, der dann mit den I/Os des FPGA verbunden
wird, Bild 3.1.

Soft-
Hard- ware
ware Stack

PDO SDO

MAC

Hub / Switch

PHY

RJ45

Bild 3.1: Eine Ethernet Anschaltung am MercuryCode, bestehend aus RJ45-


Stecker mit bertrager, PHY, MAC und TCP/IP-Protokollstapel.

Der Aufbau einer Testschaltung auf einer Lochrasterplatine ist dabei allerdings kaum
noch mglich. Die meisten FPGAs haben sehr viele Anschlsse, die oft als Ball Grid
Array (BGA) angeordnet sind und nicht ohne Hilfsmittel geltet werden knnen. Zu-
dem sind zum Betrieb statt einer einzigen 5-V-Versorgungsspannung mehrere Span-
nungen erforderlich. Hier setzt das FPGA Development Board "MercuryCode" von
EBV Elektronik an. Alles was bentigt wird, um ein FPGA-Design rasch aufzubauen,
ist auf der etwa 100 100 mm groen Leiterplatte bercksichtigt, Bild 3.2.

DSF 24 Krah WS 13/14


Bild 3.2: Das FPGA Development Boards "MercuryCode" von EBV bietet auf ei-
ner Flche von 100 100 mm alle Elemente fr den Aufbau einer kom-
plexen Elektronikschaltung mit hoher Verarbeitungsgeschwindigkeit.

3.1 Das Drei-Schichten-Modell


Das angefhrte Beispiel und viele andere Anwendungen lassen sich mit einem Drei-
Schichten-Modell beschreiben, Bild 3.3.
Auf der untersten Schicht sind die Schnittstellen zur "Auenwelt" definiert. Dazu
zhlen Ethernet (PHY), RS-485-Transceiver oder 24-V-I/O. Hier werden die den
jeweiligen Spezifikationen entsprechenden Bauteile verwendet.
Die mittlere Schicht setzt sich zusammen aus digitalen Spezialschaltungen, wie
einem UART (Universal Asynchronous Receiver and Transmitter) fr RS 232 o-
der dem MAC (Media Access Controller) beim Ethernet. Diese Schicht wird bei
FPGAs in einer Hardware Description Language (z.B. VHDL) programmiert und
kann oft als IP-Core bezogen werden. Die Soft Core CPU Nios II von Altera ge-
hrt ebenfalls der mittleren Schicht an. Die im FPGA realisierte mittlere Schicht
wird auch als Konfiguration bezeichnet.
Die oberste Schicht wird in Software realisiert, meist in C oder C++. Beim Ether-
net gehrt der TCP/IP-Protokollstapel dazu. Der Entwickler greift dabei ber ein
Application Programmer Interface (API) auf die Ethernet-Funktionen zu.

DSF 25 Krah WS 13/14


3 Schichten Modell

Software
Layer 3
Software
TCP / IP IRQ for Init &
Controller / C stack the UART Config.

FPGA IO (3.3 V)

Nios II Soft Core CPU


Layer 2 (IP)
Fast 32-Bit Avalon Bus & IP - IP cross connections User
Programmable logic
logic
FPGA / VHDL
MAC UART PIO
RMII

FPGA IO (3.3V)

Layer 1
Special hardware, PHY RS 485 24 V IO
Driver & transceiver

Bild 3.3: Die Struktur eines FPGA Development Boards lsst sich in einem Drei-
Schichten-Modell abbilden. Dabei beschreibt die erste Schicht die
Schnittstellen zum Umfeld, die zweite Schicht zeigt die Hardware-
Konfiguration des FPGA, in der dritten Schicht wird die Software abge-
bildet, mit der sich der Funktionsumfang der Gesamtschaltung realisie-
ren lsst.

40 000 Logikelemente zur freien Verfgung


Die FPGAs der Cyclone-III-Familie von Altera sind in 65-nm-Technologie realisiert
und sind in verschiedenen Gren und Gehusevarianten erhltlich [4]. Bei dem auf
dem MercuryCode Board verwendeten Typ "3C40" stehen 39 600 Logikelemente
und 484 Anschlsse zur Verfgung, davon maximal 331 I/Os. Damit lassen sich auch
komplexe Anwendungen realisieren. Der FPGA-Baustein enthlt einen Speicher mit
1134 Kbit und 126 Hardware-Multiplizierer. Alle Cyclone FPGAs sind RAM-
basierte Logikbausteine. Nach dem Anlegen der Versorgungsspannungen muss der
Baustein noch konfiguriert werden. Bei MercuryCode ist hierfr ein zustzlicher seri-
eller Speicherbaustein (Flash) mit einer Kapazitt von 64 Mbit vorgesehen.
Alle erforderlichen Versorgungsspannungen (1,2 V, 2,5 V, 3,3 V, 5 V und 12 V)
werden auf der Leiterplatte mit entsprechenden Schaltreglern erzeugt. Versorgt wird
das MercuryCode Board mit nur einer Gleichspannung zwischen 8 und 24 V.

DSF 26 Krah WS 13/14


50 MHz Systemtakt
Ein Taktgenerator erzeugt den Systemtakt mit einer Frequenz von 50 MHz. Aus die-
sem Takt lassen sich im FPGA mit maximal vier Phasenregelkreisen (PLL) andere
synchrone und wahlweise auch phasenverschobene Frequenzen erzeugen. Diese wer-
den dann ber die bis zu 20 "Global Clock Networks" auf dem Chip verteilt und den
Baugruppen bereitgestellt.
Industriegerechte 24-V-I/Os
Bei vielen industriellen Anwendungen werden 24-V-Eingnge z.B. fr Sensoren und
24-V-Ausgnge zur Ansteuerung von Relais benutzt. Die verwendeten Treiber sind
Bausteine, die fr Anwendungen in der Automatisierungstechnik entwickelt wurden.
Die 16 I/Os liegen auf einer Phnix-Klemmenleiste auf und knnen als Eingang oder
als Ausgang benutzt werden. Hierfr ist jeweils ein 24-V-I/O mit zwei FPGA-
Anschlssen verschaltet. Ein FPGA-Anschluss ist als Eingang konfiguriert und signa-
lisiert ber einen Spannungsteiler und eine Schmitt-Trigger-Schaltung den Pegel des
24-V-I/Os. Der zweite FPGA-Anschluss ist als Ausgang konfiguriert und ermglicht
das Einschalten des kurzschlussfesten "High Side"-Schalters, Bild 3.4. Der Status des
24-V-I/Os wird zustzlich mit jeweils einer roten LED hinter der zugehrigen Ph-
nix-Klemme angezeigt. Ein Schaltplan mit den Details kann bei der Firma Devboards
im Internet abgerufen werden [5].

Bild 3.4: Schaltung fr die Anbindung der industriegerechten 24-V-Technik an die


3,3-V-I/Os eines FPGAs.

DSF 27 Krah WS 13/14


Benutzerschnittstelle
Zur Darstellung von Systemzustnden und zur Beeinflussung der Schaltung bzw.
zum Testen sind zwei Siebensegmentanzeigen, acht Leuchtdioden, vier Taster und
ein Navigation-Key (fnf mechanisch verknpfte Taster) vorgesehen. Weil SMD-
LEDs verwendet werden, sind diese auch als "Debug-I/O" verwendbar, da sich an
den Kontakten der LEDs mit einem Tastkopf sehr gut messen lsst. Beispielsweise
knnen Systemreaktionszeiten so leicht gemessen werden. ber eine RS-232-
Schnittstelle knnen Daten auf einem Terminal ausgegeben werden. Das Systempro-
gramm HyperTerminal eignet sich dafr, bentigt aber bei neuen Laptops einen
USB-RS-232-Adapter, weil dort meist die RS-232-Schnittstelle eingespart wurde.
Transceiver fr USB On The Go (OTG)
USB ist heutzutage die Standard-Schnittstelle zur schnellen Kommunikation mit ei-
nem PC ber kurze Distanzen. Der im MercuryCode Board eingesetzte Treiberchip
ISP1504 von NXP untersttzt High-Speed (480 Mbit), Full-Speed (12 Mbit), Low-
Speed (1,5 Mbit) und das "On The Go"-Supplement (OTG) aus der USB 2.0 Specifi-
cation Revision 1.2. Je nach Anwendung kann der USB-Treiber-Chip entweder im
"USB Host"-Modus, etwa zum Anschlieen von Memory Sticks oder im "Peri-
pheral"-Modus zur schnellen PC Kommunikation betrieben werden. Die USB-
Signale werden an einem Mini-USB-Stecker bereitgestellt, eine galvanische Tren-
nung ist nicht vorgesehen.
Vier RS-485-Transceiver
Viele Feldbusse basieren auf dem RS-485-Standard, der durch die differentielle
bertragung eine recht strsichere bertragung mit bis zu 16 Mbit auch ber grere
Distanzen bietet. Der Abschlusswiderstand hngt vom verwendeten Kabel ab und
betrgt meist ca. 120 . Mit den vier Transceivern auf dem Evaluation Board kann
z.B. eine Profibus- oder eine Interbus-S-Anschaltung (zwei Transceiver) und eine
digitale Encoder-Schnittstelle (zwei Transceiver) realisiert werden. Bei modernen
Sin-Cos-Encodern, die EnDAT 2.2 oder BiSS untersttzen, sind keine weiteren ana-
logen Schaltungen erforderlich. Natrlich knnen die RS-485-Treiber auch fr einfa-
che inkrementelle Encoder genutzt werden.
Zwei CAN-Transceiver
CAN basierte Feldbusse wie CanOpen oder DeviceNet verwenden ebenfalls die RS-
485-Pegel. Zur Priorisierung der Nachrichten mssen diese zustzlich in einer "Open
Collector"-Schaltung betrieben werden knnen. Dies bieten die beiden eingesetzten
CAN-Transceiver "SN65HVD233" von Texas Instruments. Falls das CAN-Segment
am MercuryCode Board endet, knnen mit Ltbrcken Abschlusswiderstnde zuge-
schaltet werden.

DSF 28 Krah WS 13/14


Zwei Ethernet Anschaltungen
Zur Realisierung der Echtzeit-Ethernet-Feldbusse sind zwei vollstndige 10/100-
Mbit/s-Ethernet-Anschaltungen (Vollduplex) vorgesehen. Dadurch lsst sich auch die
in der Automatisierungstechnik bevorzugte Linienstruktur realisieren. Die bertrager
zur galvanischen Trennung sind in den RJ45-Stecker integriert. Als Transceiver-
Baustein (PHY) wird der DP83640 von National Semiconductor [6] verwendet, der
ein "Auto Crossover" bietet. Um FPGA-I/O-Anschlsse zu sparen, wird der Treiber-
Baustein im "Reduced Media Independent Interface"-Modus (RMII) betrieben. Durch
die bereits im Treiber-Baustein implementierten IEEE-1588-Funktionen lassen sich
IP-Cores fr Echtzeit-Ethernet-Feldbusse einfacher realisieren.
TFT und Touch-Screen Controller
Bei Bedarf kann an MercuryCode ein TFT-LC-Display angeschlossen werden. Die
Daten werden ber ein fnfkanaliges LVDS-Interface bertragen. An der Leiterkarte
befindet sich ein 20-poliger Hirose-Stecker, der in der Regel fr Steckverbindungen
genutzt wird. Die vom TFT-LC-Display bentigte Versorgungsspannung von 12 V
wird ebenfalls bereitgestellt. Fr eine Auswertung der Touch-Screen-Signale wurde
der Controller TSC2200 von Texas Instruments vorgesehen.
32 bit General Purpose I/O
Oft ist noch eine zustzliche Hardware-Erweiterung gewnscht. Hierfr sind zwei
doppelreihige Postenleisten vorgesehen. Tochterplatinen knnen entweder direkt auf-
gesteckt oder ber Flachbandkabel verbunden werden. Genutzt wird der 3,3-V-"Low
Voltage"-TTL-Standard. Da die Stiftleisten direkt mit dem FPGA verbunden sind,
muss bei der Verdrahtung sorgfltig gearbeitet werden: Zu hohe Spannungen knnen
das FPGA zerstren.
Externer Speicher
Bei MercuryCode sind folgende FPGA-externen Speicher vorgesehen:
512 kByte Flash-Speicher (16-bit-Interface)
128 kByte SRAM (16-bit-Interface)
16 Mbyte SDRAM (32-bit-Interface)
Der Flash-Speicher ist mit einem 16-bit-Datenbus versehen und wird hauptschlich
vom Nios II als ROM genutzt. Durch die begrenzte Datenbreite wird jeder 32-bit-
Zugriff in zwei 16-bit-Zugriffe aufgeteilt, wodurch die Systemleistung reduziert wird.
Das statische RAM benutzt den gleichen Daten- und Adressbus und bremst deshalb
den Nios II ebenfalls aus.
Das dynamische RAM nutzt einen separaten 32-bit breiten Datenbus und einen ge-
multiplexten Adressbus. Bei SDRAM-Zugriffen wird der Nios II zwar nicht ausge-
bremst, jedoch bentigt das SDRAM mehr Strom und im FPGA werden zustzliche
Logikelemente fr den erforderlichen Memory Controller bentigt. In der Standard-

DSF 29 Krah WS 13/14


konfiguration wird ber einen Boot Loader zuerst der ROM-Code vom Flash ins
SDRAM geladen, damit immer mit schnellen 32-bit breiten Zugriffen gearbeitet wer-
den kann.

Internet-Links:
[1] Fachhochschule Kln www.fh-koeln.de
[2] EBV Elektronik GmbH & Co KG www.ebv.com
[3] Avago Technologies www.avagotech.com
[4] Altera Corporation www.altera.com
[5] devboards GmbH www.devboards.de
[6] National Semiconductors www.nationalsemi.com

DSF 30 Krah WS 13/14


4 FPGA Tool Chain Vom Algorithmus zur Netzliste

4.1 Quartus II (Altera)


Entwurfsschritte und werkzeuge (Altera: Quartus II / Nios II IDE)
Erstellt wird die Konfiguration fr ein FPGA meist entweder mittels einer Hardware-
Beschreibungssprache, zum Beispiel VHDL (*.vhd) oder Verilog, oder grafisch
durch einen Schaltplan (*.bdf) oder endlichen Automaten. Auch mit den grafischen
Programmiersystemen LabVIEW oder Matlab Simulink ist eine Programmierung
mglich. In den letzten Jahren gab es immer wieder Versuche, FPGAs mit der Pro-
grammiersprache C zu beschreiben (HardwareC / SystemC) oder C in VHDL umzu-
setzen (CtoH-Compiler). Herstellerspezifische Sprachen wie Altera-HDL oder A-
BEL-HDL werden ebenso genutzt wie UDL/I (Japan).

a)
Schematic Editor:
Block diagram file

b)
Schematic Editor:
Graphic design file
(state machine)

-- Quartus II VHDL Template


c) -- Signed Adder
Text Editor lbrary ieee;
AHDL
VHDL use ieee.std_logic_1164.all;
Verilog use ieee.numeric_std.all;

entity signed_adder is

Bild 4.1: Design Entry


a) Block Diagram File b) Graphic Design File c) Text Editor

DSF 31 Krah WS 13/14


Design Specification Design entry/RTL coding
- Behavioral or structural description of design

RTL simulation
- Functional simulation (ModelSim, Quartus II)
- Verify logic model & data flow
(no timing delays)

M512 Synthesis
LE - Translate design into device specific primitives
- Optimization to meet required area & performance constraints
M4K I/O - Quartus II, Precision Synthesis, Synplify/Synplify Pro,
Design Compiler FPGA

Place & route


- Map primitives to specific locations inside
Target technology with reference to area &
performance constraints
- Specify routing resources to be used

Bild 4.2: Schematische Darstellung eines typischen FPGA Design-Flow bei


Quartus II (Altera)
Zur Implementierung eingebetteter Systeme in FPGAs gibt es mittlerweile Werkzeu-
ge, die eine Konstruktion auf Funktionsblockebene anbieten, z.B. der Qsys von Alte-
ra. Funktionsblcke wie FIFOs, Prozessoren, serielle Schnittstellen, Ethernet-MAC-
Layer, RAM-Controller, Parallel-IO etc. werden vom Hersteller zur Verfgung ge-
stellt. Diese Funktionseinheiten Softcore genannt liegen im Quellcode (ggf. auch
verschlsselt) oder als Netzliste vor und sind in der Regel parametrisierbar (z. B.
Baudrate bei seriellen asynchronen Schnittstellen oder FIFO-Tiefe oder -Breite der
Parallelschnittstelle). Diese werden ber Busse (Altera: Avalon, Network on a chip)
mit anderen Funktionseinheiten verbunden.
Nach der Beschreibung innerhalb des Entwurfsflusses folgen weitere Schritte wie die
funktionale Simulation, Synthese, die Implementierung (Place and Route) und lauf-
zeitbasierende Simulation. Erst danach sollte die implementierte Schaltung am realen
FPGA erprobt werden.

DSF 32 Krah WS 13/14


MegaWizard Plug-in Manager

Eases implementation of megafunctions

Tools MegaWizard Plug-In Manager

Bild 4.3: Mit dem MegaWizard Plug-in Manger kann Altera Intellectual Property
(IP) konfiguriert und integriert werden.(Mermory, PLL, )

Die Programmierung der Logikbausteine kann je nach FPGA unterschiedlich gelst


werden. Man kann zwischen Methoden unterscheiden, die es ermglichen, das FPGA
mehrmals zu programmieren und Methoden, die nur eine einmalige Programmierung
zulassen. Bei den mehrmals programmierbaren FPGAs wird die Konfiguration in
Speicherzellen (z.B. SRAM, EPROM, EEPROM, Flash) gespeichert. Bei den einma-
lig programmierbaren FPGAs (OTP: One Time Programmable) werden die physikali-
schen Eigenschaften der Verbindungswege permanent festgelegt (Antifuse-
Technologie).

DSF 33 Krah WS 13/14


Design Files

Analysis &
Elaboration

Constraints & Functional


Synthesis Simulation
Settings
Functional
Netlist
Constraints &
Fitter
Settings

Programming &
Assembler Configuration
files (.sof/.pof)

TimeQuest
Timing Analysis

Gate-Level
EDA Netlist Writer Simulation

*This is the typical flow. Other module executables will be Post-Fit


added if additional software features are enabled. Simulation Files
(.vho/.vo)

Bild 4.4: Signalflussplan eines vollstndigen Compilation-Flow bei Quartus II


FPGAs erfordern beim Schaltungsentwurf ein synchrones Schaltungsdesign. Das be-
deutet: An allen Flipflops in einer so genannten Clock-Domain liegt der gleiche Takt
und gesteuert wird die Datenbernahme in ein Flipflop nur ber die zustzlich vor-
handenen Clock Enable-Eingnge (engl. gated clocks) und nicht ber geteilte Takt-
signale. Dies vermeidet schwer handhabbare Laufzeiteffekte. Manche FPGAs bieten
spezielle Taktumschalter an, welche das garantiert strungsfreie Umschalten
(glitchfrei) zwischen verschiedenen Taktquellen im Betrieb erlauben.

DSF 34 Krah WS 13/14


4.2 ModelSim
Zum Erstellen und Testen von prozeduralen Programmiersprachen wie z. B. C sind
Debugger mit Single-Step-Funktionalitt blich. Der Programmierer kann die erstell-
ten Programme Zeile fr Zeile durchsteppen und sich jederzeit den Inhalt der Vari-
ablen ansehen. Eine solche Vorgehensweise ist bei Hardware Description Languages
(HDL) wie VHDL oder Verilog nicht mglich, da vieles unabhngig voneinander
parallel ausgefhrt wird. Zum Erstellen und Testen von HDL-Programmen werden
die Signalverlufe blicherweise simuliert. Das kann auch mit der Quartus II Ent-
wicklungsumgebung von Altera erfolgen, hat aber den Nachteil, dass die Zeit zum
Kompilieren sehr lang werden kann. Im Rahmen der kostenlosen "Altera Web Editi-
on" gibt es mittlerweile eine ebenfalls kostenlose Version von ModelSim mit einge-
schrnktem Funktionsumfang.
ModelSim von Mentor Graphics ist eine mchtige Simulationsumgebung fr HDLs.
Diese erlaubt die taktsynchrone oder timing-genaue Verhaltenssimulation von digita-
len Logikschaltungen. Anders als reine Logiksimulatoren erlaubt ModelSim zustz-
lich das Berechnen und Darstellen von analogen Signalen, da Integer und Dezimal-
typen intern als normale Variablen (Real) gehandhabt und dargestellt werden. Somit
lassen sich auch Algorithmen zur digitalen Signalverarbeitung simulieren, wenn man
die Datentypen Signalbus oder Integer benutzt.
Mit ModelSim kann die Funktion von VHDL-Code getestet und unabhngig von Gat-
terlaufzeiten simuliert werden. Hierbei knnen sowohl einzelne Entitys separat als
auch mehrere Entitys gemeinsam in einer Simulationsumgebung getestet werden.
Alle Portsignale und Signale innerhalb der zu testenden VHDL-Module knnen hier-
bei visuell mit einem Zeitverlauf (Waveform) dargestellt werden. Die visuelle Dar-
stellung von Variablen ist prinzipbedingt nicht immer mglich.
Weil die Simulation wesentlich weniger Zeit in Anspruch nimmt als das bersetzen
eines Projektes in Quartus II, kann die Entwicklungsgeschwindigkeit bei der VHDL-
Programmierung durch Nutzung des ModelSim-Simulators erhht werden. Da alle
Signale in der Waveform sichtbar sind, knnen Zusammenhnge innerhalb einer En-
tity leichter berblickt werden, was zur schnelleren Fehlersuche im VHDL-Code und
der Erstellung von sauberem Quellcode beitrgt.
Um eine oder mehrere VHDL-Entitys zu testen, wird in ModelSim zustzlich zu der
zu testenden Entity ein Simulationsquellcode bentigt. Dieser wird auch als Test-
bench bezeichnet und ebenfalls unter *.vhd abgespeichert. Die Testbench enthlt alle
Informationen, die zum Test der vorgegebenen Entity notwendig sind. So mssen alle
Portsignale des zu testenden VHDL-Moduls in der Testbench deklariert und vorge-
geben werden. Dazu gehren zum Beispiel die Vorgabe von Taktfrequenz, Reset-
Signal und oder die Zustandswechsel von diversen Eingangssignalen.
Zur Simulation einer VHDL-Beschreibung wir diese in ein binres, simulatorinternes
Format umgewandelt. Dafr wird der ModelSim integrierte VHDL-Compiler genutzt,

DSF 35 Krah WS 13/14


der gleichzeitig die Syntax des Codes berprft und die bentigten Bibliotheken ein-
bindet.
Nachdem festgelegt wurde, welche Signale betrachtet werden sollen, wird der Simu-
lator gestartet. Dieser legt eine Wave-Form-Datei an, welche die Simulationsergeb-
nisse enthlt. Wird keine Datei explizit angegeben, so wird die Datei vsim.wlf im ak-
tuellen Verzeichnis angelegt bzw. berschrieben. Diese Datei bildet die Grundlage
fr eine Auswertung der Simulation. In der grafischen Oberflche von ModelSim
wird sie nach einer Simulation automatisch gelesen. Bild 4.5 soll die grundstzliche
Vorgehensweise verdeutlichen.

Bild 4.5: Ablauf der Simulation in ModelSim

DSF 36 Krah WS 13/14


Bild 4.6: Oberflche von ModelSim
Das Simulationstool ModelSim kann jedoch nicht als Progammierersatz fr die
VHDL-Programmiersoftware Quartus II dienen. Es dient ausschlielich zum besseren
Verstndnis, zur Fehlersuche und zur Beschleunigung der Projektentwicklung.
Es kann jedoch keinesfalls den Test eines Projekts unter realen Bedingungen mit rea-
len FPGAs ersetzen. Dazu ist SignalTap II geeignet.

DSF 37 Krah WS 13/14


4.3 SignalTap II
Um FPGA interne Signale anzusehen, gibt es im Wesentlichen zwei Mglichkeiten:
1. Das Signal auf einen freien (spare) I/O Pin legen.
2. Das Signal mit SignalTap II, dem FPGA internen Logic Analyzer, ansehen.
Wie bei einem Oszilloskop wird eine Trigger-Bedingung festgelegt und der
Verlauf im FPGA internen RAM gespeichert. Off-line wird der im FPGA ge-
speicherte Verlauf ber die JTAG Schnittstelle innerhalb der Quartus II Ent-
wicklungsumgebung dargestellt.

Bild 4.7: SignalTap II ermglicht die Darstellung der Zeitverlufe von FPGA in-
ternen Signalen.
Der in Quartus II integrierte SignalTap II ist ein Logic-Analyser bzw. ein Oszil-
loskop, welches auf einem FPGA als Logik instanziiert werden kann. Als Speicher
fr die anfallenden Daten, auch Samples genannt, dient On-Chip-Memory. Die Kon-
figuration sowie das Auslesen der Daten erfolgt ber die JTAG-Schnittstelle,
wodurch die Signalverlufe schlielich in Quartus II visualisiert werden knnen.
Der direkte Zugriff auf die FPGA-internen Signale bietet insbesondere dann einen
groen Vorteil, wenn externe Hardware angeschlossen ist, die nicht mit simuliert
werden kann. SignalTap II besitzt einige komplexe Funktionen, die sonst nur bei
aufwndigen externen Analysern zu finden sind, beispielsweise mehrstufig verkettete
Trigger, die erst dann die Aufzeichnung der Analysedaten starten, wenn mehrere Be-
dingungen auf gleichen oder unterschiedlichen Signalen zutreffen. Darber hinaus
lassen sich mit Hilfe von State-Machines einfache Protokolle nachbilden und zur
Triggerung verwenden. Weiterhin werden auch externe Trigger untersttzt. Der
Sample-Speicher lsst sich segmentieren, so dass Daten an mehreren Trigger-
Zeitpunkten, die weiter auseinander liegen, aufgezeichnet werden knnen.
Der grte Unterschied im Vergleich zu eigenstndigen Logic-Analysern liegt in der
Grenbeschrnkung des Sample-Speichers, durch die Verwendung von FPGA On-
Chip Memory.

DSF 38 Krah WS 13/14


4.4 System Console
Mit der System Console kann man ber einen an den USB Blaster / JTAG Adapter
angeschlossenen Avalon Bus auf Komponenten zugreifen.
Optional knnen mit einem Script die Variablen ber eine Dialogbox angesehen bzw.
modifiziert werden.

DSF 39 Krah WS 13/14


4.5 MATLAB Simulink
Mit den klassischen Entwurfstools, wie HDL-Compiler und Logiksimulatoren, ist es
einzelnen Entwicklern oder kleinen Teams kaum noch mglich, das wachsende Po-
tenzial moderner FPGAs auszuschpfen.
Um dies zu ermglichen, werden neue Generationen von Entwurfstools entwickelt,
die einen hheren Grad der automatischen Systemsynthese und einfachere Systemsi-
mulationen ermglichen. Man kann diese Entwicklung mit dem bergang von der
Assemblerprogrammierung zur Hochsprachen-Programmierung von Prozessoren
vergleichen. Die Assemblerprogrammierung ermglicht zwar einem erfahrenen Pro-
grammierer eine gute Ausnutzung der Prozessor-Ressourcen bezglich Codegre
und Verarbeitungszeit. Der Aufwand fr diese Optimierung steigt jedoch bei kom-
plexen Implementierungsaufgaben enorm an. Kaum ein Programmierer bersieht die
komplexen Pipelinestrukturen mit den Auswirkungen auf die Ausfhrungsgeschwin-
digkeit moderner Prozessoren.
Die gleiche Argumentation trifft inzwischen auch auf die FPGA-Programmierung zu.
Die Implementierung mit Hardware-Beschreibungssprachen, wie VHDL und Verilog,
ist fr viele Funktionen sinnvoll. Mit steigender Leistungsfhigkeit der Tools ist es
jedoch teilweise wirtschaftlicher fr komplexere Systeme High-Level Tools wie z.B.
Matlab Simulink einzusetzen. Die Nutzung von High-Level Entwurfswerkzeugen fr
die FPGA-Systemsynthese kann den Implementierungsaufwand drastisch reduzieren.
Grundstzlich existieren zwei Arten des High-Level Hardware-Entwurfs:
1. Bei der ersten Art werden die Funktionsblcke graphisch miteinander verbunden.
Diese Art der Systembeschreibung hnelt dem Signalflussplan bzw. dem Block-
schaltbild.
2. Die zweite Art basiert auf Quelltexten. Diese Art der Systembeschreibung hnelt
dem klassischen Programmieren. Vertreter dieser Art SystemC (Open Source)
und das kommerzielle Tool Impulse C.
MathWorks selbst bietet optional zu MATLAB Simulink auch einen VHDL-
Generator an, den HDL-Coder. Mit Hilfe von Simulink werden die Funktionsblcke
graphisch editiert und simuliert. Der Coder arbeitet zusammen mit der Fixed Point
Toolbox und dem EDA Simulator Link. Leider arbeitet dieser Compiler noch (Stand
Dez. 2010) recht ineffizient. In einem Beispielprojekt bentigte ein Resolver Digital
Converter (RDC) ca. 15 000 Logikelemente. Von Hand in VHDL codiert, bentig-
te die gleiche Applikation nur ca. 3 000 Logikelemente.

DSF 40 Krah WS 13/14


4.6 DSP Builder Advanced Blockset
Um die Entwicklungskosten zu senken, ist es von entscheidender Bedeutung, die
Entwicklungszeit zu verkrzen und ebenso die Anzahl genutzter Ressourcen (Logik
Elemente) zu minimieren. Heute nutzen viele Entwickler eine Evaluierungsumge-
bung fr Signalverarbeitungsalgorithmen wie Matlab/Simulink. Aber der Schritt, den
gewnschten Algorithmus fr die Implementierung in einem FPGA manuell in
VHDL Code umzuwandeln, ist nicht einfach. Oft arbeitet der Simulink Coder nicht
ausreichend effizient. Hier bietet sich das Altera-Tool DSP Builder Advanced
Blockset an, welches diesen Konvertierungsprozess automatisiert. Der DSP-Builder
ist ein Zusatz zu Simulink und erzeugt automatisch HDL-Code. Dieser wird jedoch
nicht Cross-kompiliert (Simulink VHDL), sondern die in einer Library mitgelie-
ferten DSP-Blcke werden grafisch konfiguriert (hnlich einer VHDL generic An-
weisung) und verschaltet. Im Rahmen dieser Konfiguration knnen durch automati-
sches Pipelining und Zeitmultiplexing zustzlich Ressourcen gespart werden, wenn
die eingestellten Parameter fr fmax und Latenzzeit das erlauben. Altera gibt an, dass
die erreichbare Rechenleistung und Implementierungsgre vergleichbar mit manuell
erstelltem HDL-Code sind.
Mit den DSP-Builder Blcken lassen sich zustzlich zu Signalen in Festkomma- und
Ganzzahlformat auch Floating-Point Signale verarbeiten.

Bild 4.8: Der DSP-Builder wird in die Matlab-Simulink Oberflche integriert.


Verschaltet werden Blcke aus der DSP Builder Advanced Blockset
Library.

DSF 41 Krah WS 13/14


5 VHDL
Very high speed integrated circuit Hardware Description Language (VHDL) ist
eine Hardwarebeschreibungssprache, vergleichbar mit einer Programmiersprache,
mit der es einfach mglich ist, komplizierte digitale Systeme zu beschreiben.
Geschichte
VHDL wurde in den frhen 80er Jahren entwickelt und ist das Produkt von Normie-
rungsbestrebungen eines Komitees, in dem die meisten greren CAD-Anbieter und
CAD-Nutzer, aber auch Vereinigungen wie die IEEE, vertreten waren. Der grte
nordamerikanische Anwender, das US-Verteidigungsministerium, hat VHDL zum
Durchbruch verholfen, indem es die Einhaltung der Syntax von VHDL als notwendi-
ge Voraussetzung fr die Erteilung von Auftrgen gemacht hat. Es war das Ziel, Do-
kumentation zu vereinheitlichen und den Datenaustausch von komplexen digitalen
Systemen zu ermglichen. Die erste kommerzielle Version wurde 1985 verffent-
licht, sie entstand aus einer Zusammenarbeit von IBM, Texas Instruments und Inter-
metrics.
VHDL ist durch den IEEE 1076 Standard von 1993 genormt. Gegenber dem ersten
Standard von 1987 (IEEE 1076-1987) wurde die Syntax vereinheitlicht und ergnzt,
aber auch einige Konstrukte der alten Syntax entfernt sowie sogar die Semantik ein-
zelner Konstrukte verndert. Aktuelle Tools untersttzen derzeit die Version VHDL-
2002 und VHDL-2008.
Funktionsweise
Bei VHDL arbeitet man nicht mit einzelnen elektronischen Bauteilen, sondern be-
schreibt das gewnschte Verhalten einer Schaltung auf einer hheren Abstraktionse-
bene. VHDL ermglicht das schnelle Entwickeln groer und komplexer Schaltungen
(z.B. eines Mikroprozessors mit ber 20 Mio. Transistoren), die hohe Effizienz erfor-
dern (zeitlich wie konomisch) und untersttzt den Ingenieur bei allen Arbeiten.
So kann ein System simuliert, verifiziert und schlielich eine Konfiguration erstellt
werden. ber die Netzliste knnen durch eine Konvertierung in einen geeigneten Bit-
Stream FPGAs oder CPLDs geladen werden.
Neben VHDL existieren Verilog und das seltener genutzt ABEL. VHDL hat sich zum
"Quasi-Standard" in Europa entwickelt, Verilog ist dagegen die meist verwendete
Hardwarebeschreibungssprache in den USA.

DSF 42 Krah WS 13/14


Synthesefhiger und funktionaler VHDL-Code
Es ist notwendig, zwischen synthesefhigem und funktionalem Code zu unterschei-
den, weil es Konstrukte gibt, die sich zwar simulieren lassen, aber nicht fr eine reale
Hardware bersetzten lassen. Was aus dem breiten Spektrum an funktionalem
VHDL-Code tatschlich synthesefhiger VHDL-Code ist, bestimmt primr das zur
VHDL-Synthese gewhlte bersetzungsprogramm (Compiler / Synthesetool), z.B.
Quartus II. Funktionaler, nicht synthesefhiger Code wird vor allem im Bereich der
Simulation zur Erstellung sogenannter Test-Benches eingesetzt, teilweise auch um
neue Verfahren wie beispielsweise das Verhalten von Schnittstellenprotokollen vorab
zu prfen.
Synthesefhigen VHDL-Code herzustellen ist im Regelfall aufwndiger und der
Entwickler muss dabei auf groe Teile der Sprachmglichkeiten von VHDL bewusst
verzichten und die Zielhardware und deren genauen Eigenschaften nher kennen. So
ist beispielsweise VHDL-Code zur Ausgabe von Texten auf den Bildschirm nicht
synthesefhig. Ebenso sind Floating Point Signale (real) nicht synthesefhig.

Beispiel: D-Flipflop (behavioural) nicht synthetisierbar (Testsignale - ModelSim)


ENTITY DFlipflop IS
PORT(D,Clk : IN Bit ;
Q : OUT Bit
);
END DFlipflop;
ARCHITECTURE Behav OF DFlipflop IS
CONSTANT T_Clk_Q: time := 4.23 ns;
BEGIN
PROCESS
BEGIN
WAIT UNTIL Clk'EVENT AND Clk'Last_Value='0' AND Clk='1';
Q<=D AFTER T_Clk_Q;
END PROCESS;
END Behav;

DSF 43 Krah WS 13/14


Beispiel: D-Flipflop (behavioural) synthetisierbar (Schaltung / FPGA)
ENTITY DFlipflop IS
PORT( D,Clk, nResetAsync : IN Bit;
Q : OUT Bit);
END DFlipflop;
ARCHITECTURE Behav OF DFlipflop IS
BEGIN
PROCESS(Clk,nResetAsync)
BEGIN
IF nResetAsync = '0' then
Q <= '0';
ELSIF Clk'EVENT and Clk = '1' then
Q <= D;
END IF;
END PROCESS;
END Behav;

Simulation und Verifikation von VHDL-Code


Mittlerweile hat sich VHDL als Standard fr die Simulationsmodelle von IP (Intellec-
tual Property) durchgesetzt. In einem Simulationsmodell wird der eigentlich zu tes-
tende und synthesefhige VHDL-Code bzw. VHDL-Modul eingebettet und die
Hardware darum in einem sogenannten Test-Bench mglichst getreu nachgebildet.
Das Simulationsmodell wird dabei meistens in nicht synthetisierbarem VHDL ver-
fasst, was das Modellieren des Zeitverhaltens oder bestimmter physikalischer Para-
meter der externen Schaltungsteile erlaubt.
Ein Beispiel soll diesen Vorgang erlutern:
Bei der Erstellung eines SDRAM-Controllers, einer Schaltung zum Ansteuern von
SDRAM-Speichermodulen, wird das SDRAM mit seinem Speicher und sein zeitli-
ches Verhalten im Simulationsmodell mglichst genau wie die reale SDRAM-
Hardware nachgebildet. Damit kann der Controller in seiner logischen Funktion si-
muliert und auch das Verhalten in den zeitlichen Extrembedingungen verifiziert wer-
den, ohne dass dafr reale Hardware notwendig wre. Bei Bedarf wird der SDRAM-
Controller funktionell entsprechend nachgebessert, um die Simulationsrandbedingun-
gen zu erfllen. Erst wenn diese Simulation erfolgreich war, wird der so erstellte
SDRAM-Controller auf Hardware, beispielsweise in einem FPGA, in Kombination
mit realem SDRAM-Bausteinen in Betrieb genommen. Damit ist der Entwick-
lungsprozess von IP-Cores weitgehend unabhngig von konkreter Hardware.
Die Erstellung von guten Test-Benches, die entsprechende Aussagen zulassen, ist da-
bei eine meist unterschtzte Aufgabenstellung, welche ca. 50% der gesamten Ent-
wicklungszeit fr IP-Cores ausmacht. Sie ist aber, neben systematischem Vorgehen
DSF 44 Krah WS 13/14
in der Entwicklung, wesentlich effizienter als frhzeitig mit meist nicht auf Anhieb
funktionierenden Schaltungsteilen auf reale Hardware zu gehen die dann nur
schwer und umstndlich in allen ihren Parametern verifiziert werden knnen.
Weiter unterscheidet man bei der Simulation unterschiedliche Simulationsarten:
1. Eine reine Verhaltenssimulation (engl. behavioral simulation), zum Beispiel mit
Modelsim (Kapitel 4.2), des zu implementierenden IP-Core. Dabei werden die
funktionellen Zusammenhnge in der Schaltung grundstzlich geprft. Beispiels-
weise ob logische Verknpfungen einzelner Signale passen. Der Vorteil besteht
im geringen Rechenaufwand, womit zeitlich lngere Abschnitte simuliert werden
knnen.
2. Eine Simulation des fertig platzierten IP-Core (engl. post-fit simulation). Dabei
wird der IP-Core zunchst synthetisiert, geroutet und platziert, dann werden aus
der fertigen Schaltungsanordnung z.B. mit Quartus II die Netzliste und die zuge-
hrigen Laufzeitinformationen (timing) der Zielhardware ermittelt. Die Anwen-
dung der Laufzeitparameter auf den VHDL-Code (engl. back annotation) wird
entweder von entsprechenden Werkzeugen bernommen, die daraus nicht synthe-
tisierbaren VHDL-Code erzeugen, oder sie geschieht unmittelbar im Simulations-
programm. Der Vorteil besteht in dem genaueren Modell, um beispielsweise Zeit-
ablaufprobleme in der Zielhardware bereits in der Simulation erkennen zu knnen.
Nachteilig ist der damit verbundene hohe Rechenaufwand und die auch auf
schnellen Rechnern sehr langen Simulationszeiten, die sich je nach Komplexitt
der Schaltung im Bereich von einigen Tagen bewegen knnen.
Weiter kann zwischen Test-Benches mit eigener Fehlererkennung und Test-Benches,
welche nur den reinen Zeitverlauf darstellen, unterschieden werden. Im ersten Fall
werden im Test-Bench die zu bestehenden Prfungen aufgrund von fixen Entschei-
dungen (Prfvektoren) festgelegt und automatisch durch entsprechende Textausga-
ben festgestellt. Die Erstellung solcher Testbenches ist aufwndiger, aber bietet den
Vorteil, bei spteren nderungen leichter die Vernderungen der Implementierung
vollstndig und sicher prfen zu knnen (engl. regression test). Im zweiten Fall wird
die zu simulierende Schaltung in ihrem Zeitverhalten (engl. wave diagram) nur dar-
gestellt, ohne dass eine automatische Bewertung der Ausgabe durchgefhrt wird. Die
Entscheidung, ob das Verhalten der Schaltung passt oder nicht, obliegt jener Person
welche dieses Zeitverhalten manuell berprfen muss. Der Vorteil dieser Methode ist
die Einfachheit bei der Erstellung der Test-Benches, weshalb sie vor allem bei einfa-
chen Schaltungen angewendet wird. Der Nachteil ist, dass dabei Fehler in der Imple-
mentierung durch die manuelle Prfung leicht bersehen werden knnen, vor allem
bei komplexen Schaltungen.

DSF 45 Krah WS 13/14


5.1 VHDL Entity
Die Entity (Funktionseinheit, Instanz) beschreibt die Schnittstelle eines VHDL-
Funktionsblockes nach auen hnlich der PIN-Belegung einer Integrierten Schaltung
(IC). Deklariert werden die Bezeichnung (ASCII) und Typ der Anschlsse (IN,
OUT, INOUT, BUFFER).
Mit einer GENERIC Deklaration knnen hnlich der C #define Anweisung Kon-
stanten definiert werden. Dadurch kann beispielsweise die Datenbusbreite eines Bau-
steins parametriert werden. Signale werden in der port-Anweisung deklariert. Ent-
spricht dem IC-Gehuse.

Bild 5.1: Die Entity beschreibt die Signale nach auen IC PINs

5.2 VHDL Architecture


Die Architecture (Bauweise, Struktur) beschreibt die Funktionalitt bzw. das Innen-
leben eines VHDL-Funktionsblockes. Es existiert mindestens eine Architecture pro
Entity. Lokal definierte Signal-, Konstanten- und Typdeklarationen sind nur in dem
vorliegenden Architekturrumpf gltig. Anweisungen innerhalb einer Architecture
sind nebenlufig (werden parallel ausgefhrt). Einzelne Architectures einer Entity
sind ebenfalls nebenlufig. Entspricht dem Chip im Gehuse eines ICs.

Bild 5.2: Die Architecture beschreibt die Funktionalitt

5.3 VHDL Process


Eine Architecture kann einen oder mehrere Process beinhalten. Alle Prozesse einer
Architecture werden nebenlufig abgearbeitet. Zustzlich kann kombinatorische bzw.
sequentielle (taktgesteuerte) Logik verwendet werden.
Die Abarbeitung innerhalb eines Prozesses erfolgt sequentiell:
Variablen knnen fr Zwischenrechnungen genutzt werden.
Bei flankengetriggerten Signalen ist die letzte Zuweisung magebend.

DSF 46 Krah WS 13/14


Signale der Sensitivity-List zeigen an, auf welche Ereignisse die Bearbeitung des
Prozesses reagiert.
Innerhalb eines Prozesses verwendete Verzweigungen und Schleifen (z.B: if, case,
for, while) werden vom VHDL Compiler in parallel ausgefhrte Logik umgesetzt.

Bild 5.3: Der Process beschreibt Teile der Funktionalitt


Architekturrumpf:
ARCHITECTURE Rumpfname OF Bausteinname IS
- An dieser Stelle knnen optional diverse Deklarationen fr
Typen, Konstanten und Signale vorgenommen werden.
Im Gegensatz zu den Bausteindeklarationen sind diese hier
nur fr den vorliegenden Architekturrumpf gltig.
BEGIN
- Anweisungen, die das Verhalten oder die Struktur des
Bausteins beschreiben.
END Rumpfname;

DSF 47 Krah WS 13/14


Bild 5.4: Casting und Conversion mit der Library ieee.numeric_std.all

DSF 48 Krah WS 13/14


-- Quartus II VHDL Template
-- Binary Counter
Insert Template
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
Library
entity binary_counter is

generic (
MIN_COUNT : natural := 0;
MAX_COUNT : natural := 255
) ;

Port (
clk : in std_logic ;
reset : in std_logic := '1' ;
enable : in std_logic := '1' ;
q : out integer range MIN_COUNT to MAX_COUNT
) ;
Filename.vhd
end entity;

architecture rtl of binary_counter is

begin

process (clk)
variable cnt : integer range MIN_COUNT to MAX_COUNT ;
begin
if (rising_edge(clk)) then

if reset = '1' then -- Reset the counter to 0


cnt := 0 ;
elsif enable = '1' then
-- Increment the counter if counting is enabled
cnt := cnt + 1 ;
end if;
end if;

-- Output the current count


q <= cnt ;
end process ;

end rtl;

DSF 49 Krah WS 13/14


Unterschiede und Gemeinsamkeiten zu klassischen Programmiersprachen
In einer Hardwarebeschreibungsprache wird der Aufbau einer physikalischen Schal-
tung modellhaft beschrieben. Entgegen der meisten bekannten Programmiersprachen,
welche einen sequentiellen Ablauf einzelner Anweisungen festlegen, die von einem
Prozess (meist ein einziger Prozessor) abgearbeitet wird, gleicht VHDL mehr den
objektorientierten Sprachen, mit denen Module beschrieben werden, die quasi gleich-
zeitig existent sind und vollstndig simultan arbeiten.
Es gibt verschiedene Arten von Modulen: Komponenten (engl. 'Component') welche
einzelne Schaltungsblcke mit ihren Ein- und Ausgngen beschreiben, Prozeduren
(engl. 'procedure') welche funktionelle Abschnitte als Anweisungsfolge festlegen und
Funktionen welche Anweisungsfolgen zusammenfassen.
Es gibt mehrere Arten der Datenbertragung und Speicherung. Unter anderem die bei
VHDL wesentlich voneinander zu unterscheidenden sogenannten Signale, welche der
Verknpfung einzelner, paralleler Module dienen, und die sogenannten Variablen
welche innerhalb von sequentiellen Anweisungsfolgen wie Prozessen und Prozeduren
verwendet werden knnen. Die Typisierung ist davon unabhngig: So kann sowohl
eine Variable vom Typ integer sein, als auch ein Signal vom Typ integer.
Diese Erweiterung ist deswegen notwendig, weil in Hardwarebeschreibungssprachen
wie VHDL nicht nur sequentielle Ablufe wie in einer Software-Programmiersprache
beschrieben werden. Variablen knnen daher in VHDL nur in sequentiellen Ab-
schnitten wie einem Prozess verwendet werden, whrend Signale der Informations-
bermittlung zwischen einzelnen nebenlufigen (=parallel ablaufenden) Funktions-
blcken dienen.
Der funktionale Unterschied zwischen Signalen und Variablen besteht des Weiteren
darin, dass Signale ihren neuen Zustand erst am Ende eines sequentiellen Prozesses
annehmen, whrend Variablen ein Verhalten hnlich wie bei Programmiersprachen
zeigen und Zuweisungen unmittelbar wirken. Dieser Umstand ist vor allem fr An-
fnger meist verwirrend.
Das Hinzufgen weiterer Komponenten in VHDL fhrt primr zu erhhtem Platz-
bedarf (mehr Logikelemente) und beeintrchtigt die zeitliche Abarbeitung bereits
existenter Module praktisch nicht. Die zustzlich generierte Hardware arbeitet voll
parallel, whrend Module in C-Programmen fr Prozessoren immer zustzliche
Rechenzeit beanspruchen.

DSF 50 Krah WS 13/14


Literatur
Jrgen Reichardt: VHDL-Synthese, Entwurf digitaler Schaltungen und Systeme,
Mnchen: Oldenbourg 2003. ISBN 3-486-27384-1
Peter J. Ashenden: The Designer's Guide to VHDL, San Francisco: Morgan Kauf-
mann Publishers 2002. ISBN 1-55860-674-2
Yannick Herve: VHDL-AMS, Mnchen: Oldenbourg 2006. ISBN 3-486-57787-5
Wikipedia

5.4 Basis Blcke in VHDL

5.4.1 P-Element

Bild 5.5: VHDL P-Element (Festkomma Mathematik)

Die FPGA internen DSP Blcke sind optimiert zur Verarbeitung von Integer-Zahlen.
Ohne viel zustzlichen Aufwand kann damit auch eine Festkommaverarbeitung er-
folgen. Im folgenden Beispiel soll die Eingangsfolge yk mit KP = 0,7 multipliziert
werden. Statt mit der Fliekommazahl 0,7 wird die Eingangsfolge mit einer Potenz
von 2 KP multipliziert:

(5-1)

Wird Q = 14 gewhlt (214 = 16384), so ergibt sich:

Wird jetzt das Produkt durch 2Q geteilt, so erhlt man das gewnschte Ergebnis. Im
FPGA kann diese Division durch 2Q besonders leicht durch das arithmetische Schie-
ben um Q-Bit nach rechts erfolgen. Aufgrund der Rundung des Koeffizienten auf ei-
ne ganze Zahl ist der real wirksame Faktor KP jedoch nicht mehr exakt 0,7:

DSF 51 Krah WS 13/14


Das arithmetische Schieben nach rechts bewirkt eine Rundung und erzeugt dadurch
ein zustzliches Quantisierungsrauschen des Ausgangssignals.

5.4.2 I-Element

Bild 5.6: VHDL I-Element

( ) ( )
For an input signal step from zero to y0 follows:

For the calculation of the integral action time follows:

In a VHDL coded integral element n is equal to the shift factor 2shI which divides the
integral sum.

To get various integrator times TI, input signal y(t) has to be multiplied with the inte-
gral action gain KI2 (integral action gain). An increase of KI2 will result in a decrease
of TI. So in the formula KI2 has to be set in the denominator.

(5-2)

DSF 52 Krah WS 13/14


Example:
fa = 50 MHz => Ta = 20 ns ; shI = 20 => n = 220 integral action time of TI = 1
ms:

DSF 53 Krah WS 13/14


5.4.3 PI-Element

Bild 5.7: VHDL PI-Element

Analog to a single P-element KP is determined by KP2.

(5-3)

The integral action gain KI of the PI-element is given by => . So equa-


tion (5-2) has to be multiplied with KP, to get the equation for the PI-element TI.

( )
(5-4)

( )

DSF 54 Krah WS 13/14


5.4.4 Tiefpass erster Ordnung

Bild 5.8: VHDL PT1-Element

First order lag elements are normally implemented with fixed time constants T1, so
the first order lag is described with no scaling factor for the configuration of T1.

The first order lag can be implemented in VHDL as feedback loop with a simple in-
tegrator shown in the figure above. So the time constant T1 is calculated analog to an
integrator time constant.

(5-5)

To reach high time constants > 100 ms it is Ta can be calculated to with


Tclk as FPGA system clock.

5.4.5 Beobachter zweiter Ordnung

Bild 5.9: Beobachter 2-ter Ordnung

The second order transfer function of the observer is given over equation and can be
equalized with an oscillating second order lag with a resonance frequency 0 and a
damping . The feed forward gain KV has no influence to the system parameters and
is not considered in the transfer function!

DSF 55 Krah WS 13/14


(5-6)
( )


This leads to the following dependencies for 0 and :

(5-7)
,

For fixed time constants TOV1 and TOV2, KI is proportional to 02 and OVC is propor-
tional to 20.
The next figure shows the observer implementation in VHDL.

Bild 5.10: In VHDL kodierbarer Beobachter 2ter Ordnung

The Observer parameter parameters KP and KI determine the VHDL parameter KP1
and KI1.

;
Owing equation (5-7) the observer parameters KP1 and KI1 are calculated.

(5-8)

( )
(5-9)

DSF 56 Krah WS 13/14


6 System on programmable Chip
Unter System on programmable Chip (SoPC) versteht man die Integration aller oder
eines groen Teils der Systemfunktionen auf einem Stck Silizium, auch monolithi-
sche Integration genannt. Eingesetzt werden SoPCs blicherweise in eingebetteten
Systemen.
Whrend Systeme ursprnglich aus einem Mikroprozessor- oder Mikrocontroller-IC
und vielen anderen ICs bestanden, die auf einer Platine aufgeltet waren, geht heute
der Trend dazu, alle Funktionen auf einem Chip zu realisieren. Dabei werden digitale,
analoge und mixed-signal Funktionseinheiten integriert. Vorteile sind vor allem Kos-
teneinsparung 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 sind be-
reits auf diesem IC enthalten.
Komponenten
Die blichen Komponenten eines SoPCs sind:
Prozessor (Nios II, ARM Cortex A9, )
Register
ALU (Arithmetik Logic Unit)
Speicher
RAM (Random Access Memory) Schreib- und Lesespeicher
ROM (Read Only Memory) , z. B. als Flash oder OTP (One Time Programma-
ble)
Interne Einheiten
Zeitgeber (Timer / Interrupt), Zhler
Interruptcontroller
Watchdog (kann einen Reset auslsen)
Debug-Schnittstellen, z.B. JTAG
Spezielle Recheneinheiten, wie z. B. in DSP-SoPCs
Kryptographie
Analog-Digital- und Digital-Analog-Wandler
Peripherie-Einheiten
Tastaturcontroller, z. B. fr Tastaturen oder Touchpads
Grafikschnittstellen, z. B. fr LVDS, LCD, VGA, DVI, MPEG, HD/SDMI
Serielle Schnittstellen, z. B. USB, RS232, CAN-Bus
Parallele Schnittstellen, z. B. nach Centronics, Port-IO
Pulsweitenmodulator (PWM), z. B. fr DC-DC-Wandler oder Motorsteuerung
Weitere Schnittstellen, z.B. Ethernet MAC oder USB Cores

DSF 57 Krah WS 13/14


Entwurfsvorgang
In der Regel basieren Entwrfe fr SoPCs auf bereits vorhandener Intellectual Pro-
perty, z.B. Makrozellen fr den CPU-Kern oder einen Ethernet-Controller. Je nach
geplantem Einsatzgebiet fgt man eigene Komponenten hinzu und entscheidet sich
fr die vorteilhafteste On-Chip Busstruktur.
Einsatzgebiet
Eingesetzt werden SoPCs vor allem im Mobilfunk, fr PDAs, fr MP3-Player, CD-
und DVD-Gerte, fr eingebettete Anwendungen und berall dort wo es auf kleine
Abmessungen bei hoher Leistung und vielfltigen Aufgaben ankommt. Es ist normal,
dass solche Gerte auch abgesetzte Einheiten haben knnen, wie etwa eine Tastatur
oder einen Bildschirm. Das wesentliche Merkmal ist jedoch der minimale innere Zu-
satzaufwand fr Bauteile auf der oder den Leiterplatten, welche den Kern des Gerts
ausmachen. SoPCs sind vor allem aus Kostengrnden, d.h. zur weiteren Kostensen-
kung bei Gertepreisen oder berhaupt zur marktfhigen Realisierung von Gerten
ein entscheidender Trend im beginnenden 21. Jahrhundert.

DSF 58 Krah WS 13/14


6.1 Geistiges Eigentum (IP)
Jede digitale Schaltung lsst sich mit elementaren Basisblcken realisieren und auch
entsprechend programmieren. Genau wie bei der Software-Entwicklung wird aus
wirtschaftlichen Grnden wiederverwendbarer Code gewnscht, der meist von exter-
nen Lieferanten als IP (Intellectual Property) bezogen wird. Statt eines ICs mit einer
bestimmten Funktion kann daher auch ein entsprechender IP-Core erworben werden.
Ein Beispiel ist der Ethernet Media Access Controller (MAC), der in Form eines ICs
oder auch als VHDL-IP erhltlich ist. Natrlich lsst sich ein MAC auch selbst in
VHDL codieren, das aber ist nicht wirtschaftlich.
Geistiges Eigentum (engl. intellectual property, auch intellektuelles Eigentum) ist ein
im Naturrecht wurzelnder Begriff, der Rechte an immateriellen Gtern beschreibt.
Immaterialgter sind z. B. Ideen, Erfindungen, Konzepte, geistige Werke, Informati-
onen. Diese Gter sind jedoch nicht generell rechtlich geschtzt, sondern nur wenn
die Rechtsordnung einer Person entsprechende Rechte zuweist, z. B. durch Patent-,
Gebrauchsmuster-, Geschmacksmuster- oder Urheberrechte. Inhaber eines solchen
Rechts ist z. B. der Anmelder eines Patents oder der Schpfer eines urheberrechtli-
chen Werks.
Die Theorie vom geistigen Eigentum entstand grtenteils erst in der Neuzeit, vor
allem ab dem 18. Jahrhundert und dort im Zusammenhang mit dem Nachdruck von
Bchern. Die Bezeichnung Immaterialgterrecht entstand dagegen erst gegen Ende
des 19. Jahrhunderts. Diese Rechte und ihre abgeleiteten Rechtsderivate sind i. d. R.
durch internationale Abkommen geschtzt und werden lizenziert, manchmal auch auf
andere Weise bertragen, was den Vorgngen Veruerung, Vermietung entspricht.
Meistens unterliegen diese Rechte Einschrnkungen durch Rechte der Allgemeinheit,
wie etwa das Zitierrecht fr urheberrechtlich geschtzte Werke, das Recht, Forschung
ohne patentrechtliche Einschrnkungen betreiben zu drfen, das Recht von Knstlern
auf Parodien oder das Grundrecht der Informationsfreiheit.
(V)HDL-IP Block statt Baustein

DSF 59 Krah WS 13/14


6.2 OpenCore Plus
Altera und ausgewhlte Partner bieten IP-Blcke als sogenannte Megafunctions an.
Diese Blcke knnen vor dem Kompilieren so konfiguriert werden, dass Sie nur
ber die gewnschte Funktionalitt verfgen, um Ressourcen (Logikblcke) zu spa-
ren (Stichwort: VHDL generic). Im Gegensatz dazu liegt bei einem Mikrocontroller
oft ein Groteil der Peripherie brach und der genutzte Teil wird erst zur Laufzeit per
Software ausgewhlt und konfiguriert.
OpenCore Plus IP kann als Testversion kostenlos aus dem Internet abgerufen werden.
Die Funktionalitt kann zunchst mit einem Simulator erprobt werden. Dabei ist zu
beachten, dass meistens interne Signale nicht sichtbar sind hnlich wie bei einem
konventionellen IC. Fr einen Test innerhalb der Schaltung kann der Nutzer zwi-
schen zwei Optionen whlen:
Ausfhrung fr eine limitierte Zeit (time limited)
Ausfhrung nur solange das FPGA ber JTAG (USB-Blaster) mit dem PC
(Quartus Programmer) verbunden ist

Bild 6.1: Das Blockschaltbild zeigt schematisch die Nutzung von OpenCore plus
IP

DSF 60 Krah WS 13/14


6.3 Megacore IP Library
Komplexe IP-Blcke wie z.B. Signalverarbeitungskomponenten, die in der FPGA-
Konfiguration integriert werden knnen, gehren zu den Altera Megacores. Man be-
ntigt teilweise spezielle Lizenzen, um die Megacores verwenden zu knnen. Mega-
cores knnen nicht innerhalb des DSP-Builders (Simulink Editor) genutzt werden.
Durch Doppelklick auf das Blocksymbol ffnet sich ein kleines Fenster, von dem aus
man sich die Dokumentation ansehen kann bzw. ber die Dialoge den Block konfigu-
rieren kann.

Bild 6.2: Der Altera FIR Compiler II zeigt bei der Konfiguration der Koeffizienten
eines FIR Filters sofort den Frequenzgang an.

DSF 61 Krah WS 13/14


6.4 Soft Core CPU Nios II
Manche Entwicklungsaufgaben lassen sich mit nur wenigen VHDL Zeilen effizient
lsen. Eine Prozessor-Konfiguration erfordert hier unter Umstnden deutlich mehr
Aufwand. Bei anderen Problemstellungen ist es umgekehrt. Immer mehr FPGA Her-
steller bieten deshalb zustzlich zur Logik eine Soft Core CPU (Schicht 2). Bei den
Altera-FPGAs ist diese Soft Core CPU zustzlich skalierbar. Der Entwickler kann bei
jedem Design entscheiden, ob er nur wenige Logikelemente fr eine langsamere CPU
einsetzten mchte, oder ob es sinnvoll ist, einen schnelleren Prozessor zu konfigurie-
ren, der entsprechend mehr Logikelemente bentigt. Bei besonders zeitintensiven Al-
gorithmen kann der Befehlssatz des Nios II auch durch sogenannte "Custom Instruc-
Nios
tions" II Block
erweitert werden. Diagram

Nios II Processor Core


reset Instruction
Master
Instruction and
clock Program Data Trace Port
Controller Instruction
JTAG interface Hardware- & Cache
to Software Assisted Address General
Debugger Debug Module Generation Purpose
Registers
r0 to r31 Tightly
High Speed Trace Coupled
Connection Trace port I-Memory
Memory
to Trace Pod
Breakpoints

Exception Tightly
HW

Controller Coupled
Control D-Memory
Interrupt Registers
irq[31..0] Controller ctl0 to ctl4 Data
Master
Port
Data
Custom Cache
Custom Instruction Arithmetic
I/O Signals Logic Logic Unit

= Optional = Configurable
= Fixed = Debug Options

Bild 6.3: Das Blockschaltbild des Nios II zeigt, dass im Systementwurf die Integra-
tion der Elemente fr das Debugging eine besondere Rolle spielt. (Quel-
le: Altera) (mit Custom Instruction)

Bei einfachen Anwendungen ohne Cache-Speicher fr Daten und Befehle reichen die
FPGA-internen Memory-Blcke als Arbeitsspeicher (bis ca. 128 kByte) aus. Ein Teil
des internen Speichers kann aus dem Konfigurationsbaustein initialisiert werden und
damit als ROM (Read Only Memory) verwendet werden. Wenn der FPGA-interne
Speicher nicht ausreicht oder beispielsweise fr den Cache benutzt wird, ist zustzli-
cher externer Speicher (RAM / ROM) erforderlich.

DSF 62 Krah WS 13/14


Konfigurationen mit zwei Nios-II-Prozessoren sind ebenfalls mglich. Die Kombina-
tion eines Prozessors und eines FPGAs ist eine Lsung, die wesentlich flexibler und
skalierbarer ist als die traditionellen CPUs plus ASIC. Die flexible Systemarchitektur
erlaubt es den Entwicklern, eine optimale Hardware/Software-Aufteilung zu whlen,
um die beste Ausgewogenheit zwischen Leistungsfhigkeit, Kosten und Verlustleis-
tung zu erzielen. Die Flexibilitt der FPGA-Hardware erlaubt es den Entwicklern,
sich von den Einschrnkungen eines festgelegten Funktionsumfangs zu lsen und das
Risiko der Veraltung von Komponenten zu vermeiden.

Avalon Switch Fabric


Cache
Nios II UART
CPU
Debug GPIO

On-Chip Timer
ROM
SPI
On-Chip SDRAM
RAM Controller

FPGA
Bild 6.4: Die Soft-Core-CPU Nios II ermglicht es, ein vollstndiges System
(SoPC) in ein FPGA zu integrieren (mit wenig RAM und Flash-Speicher).

DSF 63 Krah WS 13/14


Nios II /f Nios II /s Nios II /e
Fast Standard Economy

Code is Binary Compatible

MIPS / MHz 1,1 0.5 0.15

Pipeline 6 Stage 5 Stage None

H/W Multiplier & Barrel Shifter 1 Cycle 3 Cycle Emulated in Software

Branch Prediction Dynamic Static None

Instruction Cache Configurable Configurable None

Data Cache Configurable None None

Logic Usage (Logic Elements) 1400 - 1800 1200 1400 600 700

Custom Instructions (FPGA) Up to 256

Bild 6.5: Die Soft-Core-CPU Nios II steht in drei Versionen zur Verfgung. Je
mehr Logikelemente man investiert umso schneller verarbeitet die
CPU die Instruktionen.

Altera untersttzt effizientes Hardware/Software-Co-Design, indem verschiedene


Konfigurationen von Nios II angeboten werden, welche sich in der Hardware-
architektur unterscheiden, jedoch softwarekompatibel sind. Dies ermglicht zum Bei-
spiel zwischen einem schnelleren oder einem kompakteren Design zu whlen. Weiter
besteht die Mglichkeit, den Prozessor mit weiteren Modulen, wie zum Beispiel einer
Floating Point Unit (FPU) zu konfigurieren, um die Leistungsfhigkeit fr eine be-
stimmte Aufgabenstellung zu optimieren.
Zusammen mit anderen, anwendungsspezifischen Schaltungsteilen wie RAM oder
IO-Interfaces, die ebenfalls in den Baustein einprogrammiert werden, agiert dieser
Prozessor dann einerseits als spezifische Hardware, kann aber anderseits wie ein
normaler Prozessor mit Software (z.B. in C oder C++) geladen und betrieben werden.
So knnen vorhandene ursprnglich rein prozessorbasierte Systeme erweitert und
existierende Software kann eingebunden werden.

DSF 64 Krah WS 13/14


SOPC Builder GUI
Processor Library Configure Processor Custom Instructions

Peripheral Library Select & Configure IP Modules


Peripherals, IP
Hardware Development Software Development
Connect Blocks Nios II IDE
HDL Source Files System.h C Header files
Testbench Custom Library
Generate
Peripheral Drivers

Hardware Executable
Configuration Code
Synthesis & Compiler,
File
Fitter Verification Linker, Debugger
& Debug
JTAG,
Serial, or
User Design Ethernet User Code
Other IP Blocks Libraries
On-Chip
Altera Debug RTOS
Quartus II PLD Software Trace
Hard Breakpoints GNU Tools
SignalTap II

Bild 6.6: Ein Nios II System wird in drei Arbeitsschritten entwickelt: (Versuch 3)
1. Erstellen eines C Systems mit dem Qsys (grafisch)
Output: - encrypted (V)HDL Files (fr Quartus)
- C-Header Files (system.h fr die NiosII EDS)
2. Quartus II: Kompilation aller VHDL-Quellen zu einer FPGA
Konfiguration
3. Nios II EDS: Kompilation aller C-Quellen zu einem ausfhrbaren
Programm
Das Nios II-System wird ber den SoPC-Builder (System-on-a-Programmable-Chip)
zusammengestellt. Ein SoPC-Projekt besteht aus einzelnen Logikblcken die Senken
oder Quellen fr Daten bilden. Die einzelnen Logikblcke werden mittels der Avalon
Switch Fabric miteinander verbunden. Der SoPC-Builder bietet eine grafische Benut-
zeroberflche, um das Zielsystem graphisch zu beschreiben. Das konfigurierte Sys-
tem aus Prozessor und Hardware wird dann in einen Satz von VHDL oder Verilog-
Dateien exportiert, mit denen dann ein FPGA der Firma Altera konfiguriert werden
kann.

DSF 65 Krah WS 13/14


6.4.1 Custom Instruction ein Mittelweg zwischen Hardware und Software
Wenn Algorithmen zur Signalverarbeitung in VHDL implementiert werden, sind die-
se meist sehr schnell und bentigen proportional zur Komplexitt der Algorithmen
entsprechende Ressourcen vom FPGA (Logikelemente bzw. DSP Blcke). Bei auf-
wndigen Algorithmen kann das durchaus nennenswerte Kosten verursachen. Eine
Realisierung mit einer Soft-Core-CPU bentigt zwar weniger Ressourcen ist aber
auch deutlich langsamer.
Spezielle Instruktionen zur Begrenzung von Signalen bieten nur wenige DSP Herstel-
ler. Bei einem Soft-Core Prozessor kann man einen solchen Befehl aber oft selbst
implementieren. Bild 6.8 zeigt den C-Code, den die neue Instruktion ersetzt und den
dahinterstehenden VHDL-Code. Diese absmax Instruktion wird ohne Wait-States in
nur 10 ns berechnet (100 MHz CPU). Durch diesen selbstgebauten Befehl bentigt
der Soft-Core Prozessor zwar 159 zustzliche Logikelemente (Cyclone IV), aber die
Zeit zur Berechnung eines robusten PI-Reglers sinkt deutlich. Der C-Compiler unter-
sttzt Custom Instructions insoweit, dass diese Assembler Befehle mit symbolischen
Variablen aus dem C-Quelltext heraus aufgerufen werden knnen.
Auch die Berechnung von Sinus und Cosinus z.B. fr eine feldorientierte Regelung
von Servoantrieben ist bei einem Controller ohne Floating Point Unit (FPU) sehr
zeitaufwndig. Oft wird die Berechnung von Sinus und Cosinus durch einen Tabel-
lenzugriff ersetzt, was aber die Genauigkeit stark limitiert oder sehr groe Tabellen
erfordert. Ein kundenspezifischer Befehl berechnet den Sinus bzw. Cosinus ber zwei
Tabellen und eine Taylor Approximation erster Ordnung. Berechnet wird nur der ers-
te Quadrant, die drei anderen werden ber Symmetriebedingungen umgerechnet. Die
Berechnung erfolgt mit einem Wait-State und bentigt dadurch bei 100 MHz 20ns.
Diese Custom Instruktion erfordert fr Sinus und Cosinus zusammen zwei DSP Bl-
cke und 402 Logikelemente (Altera Cyclone II).
control error actuating variable
e(t) y(t)
command
w(t) 100%
KP 100 %

KP
(-) 100 %

100% -100 %
KP
TN
KP e(t ) dt
controlled variable
x(t) -100 %
Anti-Wind-Up

Bild 6.7: Zur Realisierung eines robusten PI-Reglers sind viele Signal-
Begrenzungen erforderlich. (Anti-Wind-Up ist nur schematisch darge-
stellt. Die Begrenzung erfolgt innerhalb des Blocks.)

DSF 66 Krah WS 13/14


max.
val

- max.

C Code:
int absmax(int val,int max)
{
if ( val > max ) { // pos. limit ?
return max ;
} else if( val < -max ) { // neg. Limit ?
return -max ;
} else {
return val ;
}
}

Custom Instruction: (C Aufruf)


(Kombinatorisch)

ALT_CT_ABSMAX_INST(val,max) ; // 10 ns at 100 MHz

DSF 67 Krah WS 13/14


-- Quartus II VHDL Code
-- Signed

Adderlibrary ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity absmax is port (


clk : IN STD_LOGIC;
dataa : in signed (31 downto 0) ; -- val
datab : in signed (31 downto 0) ; -- max
result : out signed (31 downto 0) ; -- output
);
end entity;
architecture rtl of absmax is
begin
process(clk) is
variable a : integer range -2147483647 to 2147483647 ;
variable max : integer range -2147483647 to 2147483647 ;
begin
if (clk'event AND clk = '1') THEN
a := TO_INTEGER(dataa) ;
max := TO_INTEGER(datab) ;
if ( a > max ) then
result <= datab ;
elsif ( -a > max ) then
result <= -datab ;
else
result <= dataa ;
end if ;
end if ;
end process;
end rtl;

Bild 6.8: Absmax Funktion:


Symbol (oben), C-Code (mitte) und VHDL Code (unten)
Neben der Soft Core CPU ARM Cortex M1 bietet Altera seit Anfang 2011 zustzlich
den MP32 von MIPS an, mit dem Altera im Kommunikations-Bereich Kunden ge-
winnen mchte.

DSF 68 Krah WS 13/14


6.5 FPGA integrierte Hard-Core Prozessoren
Fr noch hhere Performance bietet Altera einen integrierten ARM Cortex A9 Dual-
Core Prozessor an SoC. Diese Prozessoren sind deutlich leistungsfhiger als der Nios
II. Satt der ca. 100 MHz und 1,1 MIPS pro MHz (=110 MIPS) erreicht der SoC bei
800 MHz und 2,5 MIPS pro MHz bis zu 4000 MIPS. Jede CPU verfgt ber 32-KB
Level 1 Daten- und 32-KB Level 1 Instruktionscache. Der 512-KB Level 2 Cache
wird von beiden Cores genutzt. Eingebunden wird das Hard-Core Prozessorsystem
wie der Nios II mit Qsys. Besonderer Vorteil der ARM Architektur ist der niedrige
Energieverbrauch. Fast alle Smartphone Hersteller setzen ARM Prozessoren ein.
Ab 2014 bietet Altera high Performance FPGAs (Stratix 10 in 14 Nanometer Techno-
logie) mit ARM Cortex A53 quad-core (64-Bit) an, die bei Intel gefertigt werden.

Bild 6.9: SoC: Cyclone V und Arria V FPGAs (28 nm) werden optional mit einem
Cortex A9 basierten Hard-Core Prozessorsystem angeboten. [Altera]

DSF 69 Krah WS 13/14


7 Digital-Analog-Umsetzer - Digital-to-Analog Converter (DAC)

7.1 Schnelle Digital-Analog-Umsetzer


Mit einem Digital-Analog-Umsetzer wird ein digitaler Wert in eine analoge Span-
nung umgesetzt. Bild 7.1 zeigt den schematischen Aufbau eines D/A-Umsetzers
durch Summation gewichteter Strme.
R1

u0 20. G ua
S0 V

1
2 .G
S1

2
2 .G
S2

n-1
2 .G
Sn-1

Bild 7.1: Schematischer Aufbau eines D/A-Umsetzers


S0 bis Sn-1 sind elektronische Schalter, die durch das v-te Bit eines Wortes des Rech-
ners gesteuert werden. Die Widerstnde, die durch die Schalter gesteuert werden,
sind im Dualcode gewichtet, so dass eine entsprechende Stellung der Schalter die
bertragung des zugehrigen analogen Spannungswertes bewirkt.
n 1
u A u0 R1G S v 2 v mit G = 1 / R
v 0

R= 1 k

S0 R= 4 k
ua
u0 V

S1 R= 2 k

S2 R= 1 k

Bild 7.2: Schematischer Aufbau eines 3 Bit D/A-Umsetzers


Die Schaltfunktion Sv(t) stimmt mit dem Wert der v-ten Bits berein und kann ihre
Wertigkeit im Rhythmus der Abtastzeit t = k Ta ndern. Dazu wird blicherweise der
von dem Algorithmus berechnete Wert fr die Abtastzeit Ta in einem Halteregister
(D-Latch) gespeichert.

DSF 70 Krah WS 13/14


1 fr geschlossenen Schalter v tes Bit gesetzt
Sv
0 fr offenen Schalter v tes Bit nicht gesetzt
Beispiel: Ausgangsspannung eines 3-Bit D/A-Umsetzers
Mit R1 = 1 k, G 1
4k und u0 = -4 V lsst sich entsprechend den Schalter-
stellungen S0 bis S2 eine Tabelle fr die Ausgangsspannung ua eines 3-Bit D/A-
Umsetzers ermitteln.

s2 s1 s0 s
v 0
v 2v ua/V

0 0 0 0 0
0 0 1 1 1
0 1 0 2 2
0 1 1 3 3
1 0 0 4 4
1 0 1 5 5
1 1 0 6 6
1 1 1 7 7

Bei der Herstellung integrierter Schaltungen ist es sehr aufwndig genaue Widerstn-
de mit stark unterschiedlichen Werten herzustellen. Bei Verwendung eines R-2R-
Leiternetzwerkes ist das nicht notwendig. Allerdings mssen hier die Schalter als
Umschalter realisiert werden, damit sich die Kettenabschwchung des Spannungstei-
lers nicht ndert.

DSF 71 Krah WS 13/14


uref uref uref
R R R

uref 2R 2R 2R 2R 2R
R
S3 S2 S1 S0


+ ua

Bild 7.3: Schematischer Aufbau eines R-2R Digital-Analog-Umsetzers

Beide bisher diskutierten Verfahren haben den Vorteil, dass die Umsetzzeit nur von
der Wahl der Schaltungskomponenten abhngt. Deshalb knnen diese DAC prinzipi-
ell sehr schnell ausgelegt werden (t << 1s).

7.2 Abzhlende Digital-Analog-Umsetzer


Fr geringe Umsetzgeschwindigkeiten knnen auch PWM-Konverter (Pulsweiten-
modulation) eingesetzt werden. Das digitale Datenwort wird in ein Register geladen
und ein Komparator vergleicht das Datenwort mit dem Stand eines Zhlers. Solange
der Zhlerstand kleiner als das Datenwort ist, ist der Ausgang des Konverters 1 (aktiv
high), sonst 0 (aktiv low). Dadurch hat das rechteckige Ausgangssignal ein dem Da-
tenwort proportionales Tastverhltnis. Dieses Signal wird mit einem Tiefpass gefil-
tert, der am Ausgang den arithmetischen Mittelwert als Ausgangsspannung bereit-
stellt. In der Praxis wird dieses Verfahren oft benutzt, wenn eine Stellgre nicht ste-
tig einstellbar ist. Beispielsweise kann die Helligkeit von Glhlampen mit einer Pha-
senanschnittsteuerung eingestellt werden. Dies entspricht durch die sinusfrmige
Spannung einer nichtlinearen PWM.

DSF 72 Krah WS 13/14


PWM Output
Tiefpass

R Analog
Carry S output
12-Bit DAC Data

12-Bit-Counter
= 212-1
Counter DAC Data

Clock
t
1

0
TPWM t

Reset

Set
Bild 7.4: PWM Digital Analog Umsetzer (Zhlverfahren)
Bei einem 12-Bit (212 Stufen) PWM-Umsetzer mit 10 MHz (10 106) Taktfrequenz
betrgt die Periodendauer des Ausgangssignals

212
TP WM s 0,4096ms .
10 10 6
Es ist offensichtlich, dass ein Rechtecksignal mit der doppelten Frequenz mit einer
halb so groen Filterkonstante auskommt. Ohne die Taktfrequenz zu verndern, wr-
de sich jedoch die Auflsung um ein Bit auf 11-Bit verschlechtern.

7.3 Sigma-Delta Digital-Analog-Umsetzer


Wenn die Schalfrequenz des Stellgliedes nicht begrenzt ist, kann durch Modifikation
der PWM die Zeitkonstante des Filters verringert und damit die Bandbreite vergr-
ert werden. Bei einem (Delta-Sigma)-Modulator tritt dieses Problem nicht auf.
Der Modulator erzeugt einen deutlich hherfrequenten 1-Bit Datenstrom, der so ge-
staltet ist, dass der Mittelwert dem einer PWM entspricht. In Bild 7.5 ist der C-
Code eines 12-Bit Digital-Analog Modulators dargestellt.

DSF 73 Krah WS 13/14


C-Beispiel eines 12-Bit -DAC

int DAC_data; // Datum


static int sum ; // Hilfsvariable

for(;;) {
sum += DAC_data ;
if ( sum >= 4096 ) { // 2**12
bit_stream_data = 1 ;
sum -= 4096 ;
} else {
bit_stream_data = 0 ;
}
}

Bild 7.5: C-Code fr einen -Digital-Analog-Modulator (1. Ordnung)

Wenn die for-Schleife n mal durchlaufen wird, wird auch die globale Variable
DAC_data n mal aufsummiert. In jedem Zyklus, in dem die Summe 4096 ber-
schreitet, wird bit_stream_data gesetzt und der Wert 4096 abgezogen. Es ist
leicht ersichtlich, dass die Variable sum ohne das systematische Abziehen um das
Produkt n DAC_data ansteigen wrde. Umgekehrt sieht man auch, dass der Wert
4096 genau n DAC_data/4096 mal abgezogen wird. Von n Durchlufen ist
bit_stream_data also n DAC_data/4096 mal gesetzt.

DSF 74 Krah WS 13/14


library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity delta_sigma_da is

generic (
WIDTH : integer := 12 -- input data width
);

port (
clk : in std_logic ; -- System clk
reset_n : in std_logic ; -- reset low active
data : in unsigned(WIDTH-1 downto 0); --Sigma Delta Data
bit_out : out std_logic -- bit stream output
);

end entity;

architecture rtl of delta_sigma_da is

begin
process (clk,reset_n)
variable sum : unsigned(WIDTH downto 0) ; -- one add. bit(carry)
begin
if reset_n='0' then
sum := to_unsigned(0,WIDTH+1) ;
bit_out <= '0' ;
elsif ( rising_edge(clk) ) then
sum(WIDTH) := '0' ; -- reset carry bit
sum := sum + data ; -- add data
bit_out <= sum(WIDTH) ; -- use carry bit
end if;
end process;
end rtl;

Bild 7.6: -Digital-Analog-Umsetzer VHDL-Listing


Das VHDL Listing zeigt einen parametrierbaren -Digital-Analog-Umsetzer 1.
Ordnung. Besonderes Kennzeichen dieses Modulators ist, dass er sehr wenig Logi-
kelemente bentigt.

DSF 75 Krah WS 13/14


bit stream

Carry () Analog
D output
12-Bit DAC Data

12-Bit Latch
12-Bit
12-Bit Tiefpass
Sum

12-Bit

Clock

Bild 7.7: -Digital-Analog-Umsetzer Blockschaltbild (1. Ordnung)


In Bild 7.7 ist eine mgliche 12-Bit -DAC Realisierung mit digitaler Logik darge-
stellt. Das Carry (bertrag) Signal entspricht dem bit-stream Datum. Das Subtrahie-
ren erfolgt implizit durch die fehlende Auswertung des Carry bei der nchsten Addi-
tion. Im Vergleich zu einer gleich getakteten PWM digital analog Umsetzung ist das
Quantisierungsrauschen unverndert, aber in einen hheren Frequenzbereich ver-
schoben. Der Tiefpass zur Glttung der Spannung kann jetzt einfacher und hherfre-
quenter ausgelegt werden. Das senkt die Kosten und verbessert die Dynamik. Bei ei-
ner Implementierung des -Modulators in einem FPGA werden nur wenige Res-
sourcen bentigt. Als Tiefpass ist meist ein einfaches RC-Glied (PT1) ausreichend.

DSF 76 Krah WS 13/14


8 Analog-Digital-Umsetzer
Aufgabe eines Analog-Digital-Umsetzers ist die Umsetzung einer analogen Gre in
eine ihrem Betrag entsprechende codierte Zahl.
Bild 8.1 zeigt die Abhngigkeit zwischen der analogen Eingangsgre x und der digi-
talen Ausgangsgre xQ fr einen A/D-Umsetzer mit einer Wortlnge von 4-Bit.

eQ = x - XQ ; mit - Q eQ Q (8.1)

a) xQ/Q 0111 overflow


0110
0101
0100
0011
0010
0001

0000
1111 x/Q
1110
1101
1100
1011
1010
1001
underflow 1000

b)
eQ
1 2 Q.
1 2 Q.
x

Bild 8.1: a) Quantisierungskennlinie eines 4-Bit-AD-Umsetzers mit Rundung und


Zweierkomplementdarstellung (MSB negiert)
b) Verlauf des Quantisierungsfehlers eQ
Die Analog-Digital-Umsetzung erfolgt in zwei Schritten. Im ersten Schritt wird ein
wertekontinuierlicher Abtastwert erzeugt und im zweiten Schritt wird der numerische
Wert von xk durch eine endliche Anzahl Bits digital dargestellt.
Der Quantisierungsfehler ist abhngig von der Art und Weise, wie die Quantisierung
durchgefhrt wird. Am hufigsten wird die Quantisierungscharakteristik mit Run-
dung angewendet. Der kleinste Quantisierungsschritt ist Q.

DSF 77 Krah WS 13/14


Der vorliegende analoge Messwert der kontinuierlich verlaufenden Eingangs-
spannung wird in einen dazu proportionalen Digitalwert umgesetzt. Dabei ergibt sich
infolge der endlichen Anzahl von n-Bits, die der ADC zur Darstellung eines Digital-
wertes zur Verfgung hat, ein endliches Auflsungsvermgen. Fr den analogen
Messwert lsst sich nur ein Nherungswert aus einer Anzahl von 2n verschiedenen
Werten angeben. Somit ergibt sich das kleinste Quantisierungsintervall Q, in dem der
volle Eingangsbereich (full scale, FS) durch die Anzahl der mglichen Werte divi-
diert wird. Durch den Vorgang der Quantisierung erhlt man die in Bild 8.1a darge-
stellte Quantisierungskennlinie. Die Differenz zwischen dem tatschlichen analogen
Messwert X und dem durch die Quantisierung entstandenen Nherungswert XQ be-
zeichnet man als Quantisierungsfehler eQ, der bei einem idealen ADC maximal ei-
nem halben Bit entspricht.
Bild 8.1b gibt den Verlauf des Quantisierungsfehlers ber den Eingangsbereich wie-
der. Zwar ist der Quantisierungsfehler unvermeidbar, doch kann man ihn oft bei ent-
sprechend hoher Auflsung vernachlssigen. So ergibt sich fr einen vollen Ein-
gangsspannungsbereich des A/D-Umsetzers von

UFS = 10 V

und einer Auflsung von 12-Bit eine Spannungsauflsung von:

U FS
ULSB = , (8.2)
2n
10V
ULSB = = 2,5 mV / Bit .
212 Bit

Eine daraus resultierende nderung im niederwertigsten Bit (Least Significant Bit,


LSB) entspricht daher einem Quantisierungsfehler von 1,25mV.
Digital-Analog- und Analog-Digital-Umsetzer sind fast immer unipolar ausgefhrt
(z. B. 0 ... 5 V Eingangsspannung). Mit Hilfe von einfachen Operationsverstrker-
schaltungen knnen aber auch bipolare Spannungen umgesetzt werden (+/- 10V).
Dann muss jedoch das Most Significant Bit (MSB) invertiert werden, um eine
Zweierkomplementdarstellung zu erhalten. Bei ADCs muss zustzlich vor der Verar-
beitung auf eine eventuelle Vorzeichenerweiterung geachtet werden.

DSF 78 Krah WS 13/14


8.1 Kenngren von Umsetzern
Auflsung
Die Auflsung gibt an, in wie viele Intervalle der Bereich des Eingangssignals aufge-
teilt werden kann. Die Auflsung wird blicherweise in [n]-Bit angegeben. Der Sig-
nal- Rauschabstand (Signal Noise Ratio, SNR) kann daraus wie folgt abgeschtzt
werden:

SNR = 1,76 dB + n 6,02 dB (8.3)

bertragungskennlinie
Die bertragungskennlinie beschreibt den Zusammenhang zwischen der Gre des
Eingangssignals und der Gre des Ausgangssignals.
Umsetzzeit
Die Gesamtzeit von Beginn einer Umwandlung bis zu dem Zeitpunkt, zu dem das
Ausgangssignal mit voller Genauigkeit zur Verfgung steht.
Linearittsfehler
Der Linearittsfehler gibt die Abweichung von einer linearen bertragungskennlinie
an.
Offset-Fehler
Der Offset-Fehler beschreibt den Eingangswert, bei dem ein ADC den Wert Null
ausgibt bzw. den Wert, den ein DAC ausgibt, wenn als Eingangswort der Wert Null
angegeben wurde. Der Offset ist oft temperaturabhngig.
Quantisierungsfehler(Quantisierungsrauschen)
Maximale Abweichung von der idealen Transferfunktion, die durch Umwandlung der
stetigen analogen Werte in diskrete digitale Werte durch die begrenzte Auflsung
entsteht (vergleichbar mit einem Rundungsfehler).
Verstrkungsfehler (Gain-error)
Ein Verstrkungsfehler tritt auf, wenn die Steigung der bertragungskennlinie von
der Steigung der idealen Transferfunktion abweicht. Das fhrt z.B. dazu, dass bei ei-
nem Eingangswert, der kleiner als der maximal mgliche Eingangswert ist, bereits
das maximal mgliche Ausgangssignal ausgegeben wird.
Es gibt im Wesentlichen fnf Analog-Digital-Umsetz-Verfahren:
Sukzessive Approximation (SAR)
Dual-Slope (Zhlverfahren, Digitalvoltmeter, ltere Produkte)
Spannungs-Frequenz-Umsetzungsverfahren
Flash-Analog-Digital-Umsetzer (Parallelverfahren, sehr schnell)

DSF 79 Krah WS 13/14


(Sigma-Delta)-Umsetzer (neuere Produkte)

8.2 Kompensationsverfahren (Wgeverfahren)

x(t)

Bit
Takt Zhler

DAU

XQ

Bild 8.2: Schematischer Aufbau eines A/D-Umsetzers nach der sukzessive Appro-
ximation (SAR)
Hier soll zunchst die sukzessive Approximation (SAR) nach Bild 8.2 betrachtet
werden. Das Verfahren beruht darauf, dass man am Eingang eines D/A-Umsetzers
die digitalen Vergleichswerte ber einen Zhler solange systematisch verndert (ap-
proximiert), bis die Ausgangsspannung des D/A-Umsetzers bis auf den Quantisie-
rungsfehler gleich der Messspannung ist. Der letzte Vergleichswert entspricht dem
digitalen Wert der analogen Eingangsgre.
In fast allen Controllern werden SAR Analog Digital Wandler verwendet. Die
Wandlungszeit inkl. S&H betrgt ca. 1 5 s.

8.3 Dual-Slope (Zhlverfahren)


Der Dual-Slope (Doppel-Sgezahn) Konverter integriert das Eingangssignal zuerst
fr eine feste Zeitspanne (z.B. 100 ms) auf, um dann die negative Referenzspannung
an den Eingang zu legen. Die Zeit bis zur Entladung des Integrators ist proportional
zum Integral der Eingangsspannung. Zur Festlegung der Integrationsdauer als auch
zur Messung der Zeit bis zur Entladung wird ein Zhler benutzt, der die Frequenz ei-
nes Taktoszillators zhlt. Durch eine entsprechende Wahl ist der Zhlerstand direkt
der angezeigte Messwert. Mit geringem Bauaufwand verbindet der Dual-Slope Kon-
verter gute Genauigkeit und Linearitt.
Integrierende Wandler bewerten das Integral der Eingangsgre ber einen bestimm-
ten Zeitraum. Das hat den prinzipiellen Vorteil der Absenkung von Rauschen und
hohen Frequenzen mit 6 dB/Oktave auf Kosten einer lngeren Wandlungszeit. Whlt
DSF 80 Krah WS 13/14
man die Integrationszeit gleich der Dauer einer Netzschwingung oder einem vielfa-
chen davon, so werden die Netzfrequenz und alle Oberwellen sehr stark unterdrckt.
Die lange resultierende Umwandlungszeit strt z.B. bei Digitalmultimetern nicht. Das
Verfahren ist preisgnstig, bentigt nur wenig Leistung und weist eine sehr gute Li-
nearitt auf.

8.4 Spannungs-Frequenz-Umsetzungsverfahren
Dieses Verfahren wird nur noch selten verwendet. Haupteinsatzgebiet ist heute der
Voltage Controlled Oscillator (VCO) fr Phasenregelkreise (PLL).

8.5 Flash-Analog-Digital-Umsetzer (Parallelverfahren)


Die krzeste berhaupt mgliche Umwandlungszeit erreichen die Flash- (=Blitz)
Konverter. Hier ist fr jedes mgliche digitale Ausgangswort ein eigener Komparator
vorgesehen. Ein ADC mit 6 Bit Auflsung hat 64 Ausgangszustnde, 63 Umschalt-
punkte und dementsprechend 63 Komparatoren. Jedes weitere Bit Auflsung erfor-
dert eine Verdopplung der notwendigen Komparatoren. Jeder Komparator hngt mit
einem Eingang an der Eingangsspannung und mit dem anderen an einer Spannungs-
teilerkette aus lauter gleich groen Widerstnden. Alle Komparatoren mit einer Ver-
gleichsspannung oberhalb der Eingangsspannung schalten am Ausgang nach 1, alle
darunterliegenden am Ausgang nach 0. Das Verknpfungsnetzwerk erkennt die
Stelle des bergangs und gibt das entsprechende Binrwort zum Ausgang. Die Um-
wandlungszeit besteht aus der Schaltzeit der Komparatoren und des Netzwerks und
kann weniger als 10 ns betragen. Die vielen Komparatoren belasten den Eingang ka-
pazitiv und nehmen viel Verlustleistung auf. Die Auflsung betrgt zwischen 4 und 8
bit. Auf Kosten eines hohen Schaltungsaufwands glnzt der Flash ADC mit uerst
kurzen Umwandlungszeiten. Hhere Auflsungen erreicht man oft durch Hinterei-
nanderschaltung von mehreren Flash Wandlungen (Pipelined Flash) unter Einsatz
von DACs. Die Mehrstufigkeit erhht allerdings die Latenzzeit, aber vermindert die
Abtastrate nicht wesentlich. Die Pipeline-Architekturen haben einstufigen
Flashwandler auer bei extrem zeitkritischen Anwendungen ersetzt.
Z.B. Digital-Oszilloskope

DSF 81 Krah WS 13/14


8.6 (Sigma-Delta) Analog-Digital-Umsetzer
[a Franco Contadini]
Obwohl -Wandler fr viele Applikationen besser geeignet sind als herkmmliche
ADCs, greifen Entwickler hufig nur" zum Standard. Analog/Digital-Wandler
wurden vor allem fr Anwendungen mit sehr hohen Auflsungen entwickelt und sind
aus diesem Grund besonders fr Waagen oder Multimeter geeignet. Doch sehr hufig
setzen Entwickler eine andere, weniger gut geeignete Architektur wie z.B. SAR-ADC
ein, weil das Verfahren oft nicht verstanden wird. Dabei ist insbesondere der ana-
loge Teil des -ADCs sehr einfach aufgebaut, da es sich hier nur" um einen 1-Bit
ADC, einen Integrator und einen Komparator handelt. Die digitale Seite ist mit ihrer
Filterung und Dezimierung dagegen komplexer, lsst sich mit etwas Know-how in
den Bereichen Oversampling, Noise Shaping und digitaler Filterung jedoch ebenfalls
einfach beherrschen.
Der wichtigste Punkt beim Einsatz eines -ADCs ist das Oversampling. Um die mit
dem Oversampling verbundenen Effekte besser erlutern zu knnen, wird zunchst
die bertragungsfunktion im Frequenzbereich eines traditionellen Multibit ADC mit
sinusfrmigem Eingangssignal betrachtet. Dieses Signal wird mit der Frequenz fa ab-
getastet, die nach dem Nyquist-Theorem mindestens doppelt so gro sein muss wie
die hchste zu erwartende Eingangsfrequenz. Eine schnelle Fourier-Transformation
(FFT), angewendet auf das digitale Ausgangssignal des ADC, zeigt dann die einzelne
Hauptfrequenz des Eingangssignals und zuflliges Rauschen im Bereich DC bis fa/2 .
Bekannt als Quantisierungsrauschen lsst sich dieser Effekt wie folgt beschreiben:
am ADC-Eingang liegt ein kontinuierliches Signal mit einer unbegrenzten Anzahl
von mglichen Zustnden, aber der digitale Ausgang ist ein diskretes Signal, bei dem
die Anzahl der Zustnde von der Auflsung des Wandlers (N-Bit) bestimmt wird. So
verliert man bei der Wandlung von analog nach digital Informationen und bewirkt
damit eine Verzerrung des Signals. Die Gre dieses Quantisierungsfehlers ist zufl-
lig und erreicht maximal 1/2 LSB.
Dividiert man die Hauptamplitude der FFT durch den Effektivwert aller Rauschfre-
quenzen, erhlt man den Signal-Rauschabstand (SNR). Fr einen N-Bit ADC ist:
SNR = 1,76 dB + 6.02 dB N (8.4)

Um den SNR und damit die Genauigkeit in einem ADC zu verbessern, muss dem-
nach die Anzahl der Bits N erhht werden.
Jetzt wird im genannten Beispiel die Abtastfrequenz (mfs) um die Oversampling-
Rate m vergrert. Die FFT Analyse zeigt dann, dass der Rauschanteil nach dieser
Manahme eine geringe Amplitude aufweist. Der SNR ist hierbei jedoch der gleiche
wie vorher, aber die Rauschenergie ist auf einen greren Frequenzbereich verteilt.
-Wandler nutzen diesen Effekt, in dem sie nach dem 1-Bit Wandler ein digitales
Filter folgen lassen, das den grten Teil des Rauschanteils ausmaskiert, Bild 8.3.

DSF 82 Krah WS 13/14


Bild 8.3: Spektrum eines Sigma Delta Modulators erster Ordnung [Ti]

Der Effektivwert des Rauschens ist jetzt kleiner, weil ein groer Anteil des Rau-
schens digital herausgefiltert wird. Diese Methode ermglicht es -Wandlern, einen
groen dynamischen Bereich mit einem niedrig auflsenden ADC zu erreichen. Der
SNR fr einen 1-Bit ADC betrgt 7,78 dB (6,02 + 1,76 = 7,78). Jedes Faktor-2-
Oversampling steigert den SNR um 6 dB und ist gleichbedeutend mit dem Gewinn
eines Bits. Damit erreicht ein 1-Bit ADC mit 16-fachem Oversampling eine Aufl-
sung von 1 + 4 = 5 Bit. Um 16 Bit Auflsung zu erreichen, msste man entsprechend
215-fach oversampeln, was praktisch kaum realisierbar ist. Aber -Wandler umge-
hen diese Einschrnkung mit der Technik des sog. Rauschformens (Noise
Shaping"), wodurch eine Verbesserung von mehr als 6 dB pro 2-fachem Over-
sampling ermglicht wird.

clk
Integrator
KI
ue Komp. ua
(-) s bit stream
Analog
Input uref

1 Bit
DAC

Bild 8.4: Modulator 1. Ordnung: K = 1 (1 Integrator)


Um Noise Shaping zu verstehen, hilft das Blockdiagramm eines -Modulators ers-
ter Ordnung, Bild 8.4. Es enthlt einen Integrator, einen getakteten Komparator mit
einem 1-Bit DAC in der Rckfhrungsschleife. Dieser DAC ist hier einfach ein
DSF 83 Krah WS 13/14
Schalter, der den invertierenden Eingang des Differenzverstrkers mit einer positiven
oder negativen Referenzspannung verbindet.

Bild 8.5: Eingangs- und Ausgangssignal eines -Modulators [Ti]

ber den DAC wird das Ausgangssignal des Integrators nahe an der Komparator Re-
ferenzschwelle gehalten. Die Anzahl der Einsen" am Modulator-Ausgang ist pro-
portional zum Eingangssignal. Fr ein steigendes Eingangssignal erzeugt der Kompa-
rator eine steigende Anzahl von Einsen und sie nimmt ab fr ein fallendes Signal,
Bild 8.5.
Durch das Summieren der Fehlerspannung arbeitet der Integrator als Tiefpass fr das
Eingangssignal und als Hochpass fr das Quantisierungsrauschen. Dadurch wird ein
groer Teil des Quantisierungsrauschens in Richtung hherer Frequenzen verscho-
ben.

U E ( s) U A ( s) Q( s)
KI
U A ( s) (8.5)
s
1
1 s
U A ( s) U E ( s) Q( s )
KI
(8.6)
1 1
KI
s 1 1
KI
s

Die Rauschbertragungsfunktion Q(f) eines Modulators K-ter Ordnung kann wie


folgt beschrieben werden:
K
u LSB f
Q f 2 sin (8.7)
12 f S f S

Damit hat der Modulator das Quantisierungsrauschen zwar nicht vermindert, aber
anders verteilt. Wird ein idealer Tiefpass an den --Modulator mit Noise Shaping
angehngt, entfernt dieser mehr Rauschen als bei einfachem Oversampling, weil das
Rauschen in Richtung hherer Frequenzen geschoben wird, Bild 8.6. Dieser Modu-
latortyp (erster Ordnung) erreicht dadurch eine 9 dB SNR-Verbesserung pro Ver-

DSF 84 Krah WS 13/14


dopplung des Oversampling. Fr eine Quantisierung hherer Ordnung kann Noise
Shaping auch durch die Verwendung von mehr als einer Summier- und Integrations-
stufe pro -Modulator erfolgen. So liefert z.B. ein -Modulator zweiter Ordnung
(Bild 8.7) bereits eine 15dB Verbesserung des SNR fr jede Verdopplung des Over-
sampling.

Bild 8.6: Rauschspannung als Funktion der Frequenz [Ti]


a) erster Ordnung b) zweiter Ordnung

clk
1. Integrator 2. Integrator
bit
KI KI stream
u Comp.
(-) s (-) s

uref

1 Bit
DAC

Bild 8.7: -Modulator 2. Ordnung: K = 2 (2 Integratoren)


Bild 8.8 zeigt den Zusammenhang zwischen der Ordnung des -Modulators, dem
gewhlten Oversampling und der Auflsung (SNR) - in Kombination mit einem idea-
len Tiefpass.
Mit dem Oversampling Faktor M kann die Bandbreite des bertragungssystems wie
folgt beschrieben werden:

DSF 85 Krah WS 13/14


(8.8)

Die Rauschspannung innerhalb der Bandbreite B kann dann durch Kombination der
Gleichungen (8.7) und (8.9) berechnet werden (Noise shaping):

( )

2K
B2
u LSB f
U Q,rms 2 2 sin df
f S
(8.9)
0
12 f S

Durch Auflsen des Integrals erhlt man:


SNR
[dB]
3. Ordnung
120

100 2. Ordnung

80

60 1. Ordnung

40

20

2 4 8 16 32 64 128 256 M

Bild 8.8: Sigma Delta Analog Digital Umsetzer Modulator: 1. bis 3. Ordnung
Signal to Noise Ratio bei idealer Tiefpassfilterung
als Funktion des Oversampling Faktors M
K
u LSB 1
U Q,RMS K 1 (8.10)
12 2K 1 M 2

uP / 2
SNR IDEAL 20dB log (8.11)
U Q,RMS

K

SNR IDEAL 1,76 6,02 N 20 log 20 K 10 log MdB (8.12)
2 K 1

DSF 86 Krah WS 13/14


N=1, K=1: SNR IDEAL 2,61 30 log MdB

N=1, K=2: SNR IDEAL 5,12 50 log MdB (8.13)

N=1, K=3: SNR IDEAL 13,6 70 log MdB

Digitaler Dezimierungsfilter
Der Ausgang des -Modulators liefert einen 1-Bit Datenstrom mit einer sehr hohen
Abtastrate, die blicherweise im MHz-Bereich liegt. Die Aufgabe des digitalen De-
zimierungsfilters ist es, (1.) die Informationen aus dem Datenstrom auszulesen und
(2.) die Datenrate auf den gewnschten Wert zu reduzieren. In einem -Wandler
mittelt das digitale Filter den 1-Bit Datenstrom und vermindert dadurch das Quanti-
sierungsrauschen (verbessert die ADC-Auflsung). Es legt die Signalbandbreite, die
Einschwingzeit und die Stoppband-Unterdrckung fest.

Bild 8.9: Sigma Delta Analog Digital Ums. mit Tiefpassfilter und Dezimierung
a) Blockschaltbild b) und c) Ersatzschaltbilder.
Der Tiefpass reduziert das Quantisierungsrauschen (rot) und kann
gleichzeitig als anti-Aliasing Filter fr die nachfolgende Abtastung die-
nen (blau).

DSF 87 Krah WS 13/14


Ideal Filter

Sinc1 Filter

64 128
M

Bild 8.10: Effektive Auflsung eines Umsetzers 2. Ordnung bei Verwendung div.
realer Tiefpassfilter (sincK) als Funktion des Oversamplingfaktors M
[Ti]

DSF 88 Krah WS 13/14


9 Der Abtastvorgang

9.1 Realisierung eines Abtastgliedes


Eine mgliche Schaltung eines analogen Abtastgliedes ist in Bild 9.1 dargestellt. Die
Ausgangsspannung u(kTa) folgt bei geschlossenem Schalter S (meist durch einen
Feldeffekttransistor (FET) realisiert) der Eingangsspannung u(t) (Prinzip des Span-
nungsfolgers). ffnet der Schalter, so wird der gerade anliegende Eingangsspan-
nungswert u(t) im Kondensator CH gespeichert. Am Ausgang des Abtast-Haltegliedes
liegt dieser Wert solange an, bis der Schalter wieder schliet und ein neuer Wert auf-
genommen wird. Durch die Gegenkopplung werden die Gleichspannungsfehler (Off-
setspannungs- und Verstrkungsfehler sowie der Fehler des Schalters) reduziert.

-
- V2
S
V1 +
T0
+
u (kT0)
CH uc(t)
u(t)

Abtastsignal

Bild 9.1: Schematischer Aufbau eines Abtast-Haltegliedes (S&H)


Eine wichtige Kenngre des analogen Abtast-Haltegliedes ist die Driftrate. Sie gibt
an, wie schnell sich der Kondensator bei offenem Schalter entldt. Typische Werte
der Driftrate sind 0,1 mV/s bis 2 mV/s.
Niedrigere Driftraten werden durch FET-Eingangsstufen erreicht. Die Zeit, die ben-
tigt wird, um einen Eingangsspannungswert zu erfassen, die Messwerterfassungszeit,
hngt von der Gre des Kondensators CH sowie von dem inneren Widerstand des
Verstrkers V1 ab. Typische Werte fr die Messwerterfassungszeit liegen in der Gr-
enordnung einer Mikrosekunde.

DSF 89 Krah WS 13/14


u(kTa)

u kTa

0 2 4 6 8 10 12 k t / Ta
k t / T0
Bild 9.2: Ausgangsfunktion eines S&H-Gliedes

Aus einer kontinuierlichen Zeitfunktion u(t) entsteht am Ausgang des S&H-Gliedes


eine Treppenfunktion u (kTa ) , Bild 9.2.
In hochwertigen Systemen ist jedem Kanal ein separater Sample & Hold zugeordnet,
damit die Signale zeitgleich genau abgetastet werden.

9.2 Mathematische Beschreibung des Abtast-Halte-Gliedes


Um eine mathematische Beschreibung von Abtastsystemen zu erleichtern, wird eine
einheitliche Signaldarstellung angestrebt. Ausgangspunkt ist dabei die Treppen-
funktion f (t ) , die aus der zeitkontinuierlichen Funktion f(t) durch den Abtast-Halte-
Vorgang entsteht. Entsprechend Bild 9.3 kann f (t ) als Folge von Rechteckimpulsen
konstanter Breite Ta und variabler Hhe fk = f(kTa) aufgefasst werden.
f(t)

fk = f( k .Ta)

0 1 k = t / Ta

Bild 9.3: Aufbau einer Treppenfunktion aus Rechteckimpulsen

Mit Hilfe des Einheitssprungs

1 ; frt 0
(t ) (9.1)
0 ; frt 0
DSF 90 Krah WS 13/14
kann man jeden einzelnen dieser Rechteckimpulse als berlagerung von zwei um Ta
gegeneinander verschobenen und mit fk bzw. mit -fk bewerteten Einheitssprngen dar-
stellen (siehe Bild 9.4).

fk (t-kTa)
fk fk

k Ta (k+1)Ta t -fk (t-(k+1)Ta) t

Bild 9.4: Rechteckimpuls als berlagerung zweier Sprungfunktionen

Somit lsst sich die Treppenfunktion f (t ) durch eine Reihe beschreiben:



f (t ) f k (t k Ta ) (t (k1) Ta ) (9.2)
k 0

Die Laplace-Transformierte von f (t ) ergibt den Ausdruck

e kTa s e ( k 1)Ta s
F ( s) L{ f (t )} f k , (9.3)
k 0 s s

der sich in ein Produkt zweier Faktoren aufspalten lsst:

1e Ta s
F ( s) f k e kTa s (9.4)
s k 0

= Gh(s) F*(s) . (9.5)

Mit diesen beiden Faktoren ist eine fr den Abtast-Halte-Vorgang wichtige mathema-
tische Beschreibung gefunden, deren Interpretation zu den folgenden bertragungs-
gliedern fhrt.
Der -Abtaster
Zunchst wird der Faktor F*(s) betrachtet. Nach den Korrespondenzen der Laplace-
Transformation erhlt man fr eine um Ta verschobene -Impulsfunktion (Dirac-
Sto) nach Bild 9.5.

DSF 91 Krah WS 13/14


Bild 9.5: Darstellung der um kTa verschobenen -Impulsfunktion

(t-kTa) e kTa s (9.6)

Wendet man diese Korrespondenz nach Gleichung (4.7) auf F*(s) an, erhlt man aus

F s f k e
* kTa s
f t f k (t k Ta )
*
(9.7)
k 0 k 0

die Originalfunktion f *(t), die man als -Impulsfolge bezeichnet.


Die -Impulsfunktion (t) (streng mathematisch keine Funktion, sondern eine Distri-
bution) ist definiert als Grenzwert eines Rechteckimpulses der Hhe 1/ und der Brei-
te mit 0.

Fr die Impulsflche gilt: t dt 1
0

(t)

1/

Bild 9.6: Definition des -Impulses mit 0.

Beim bergang von f(t) zu f*(t) werden daher nicht nur die Funktionswerte aus f(t)
entnommen, sondern es entsteht eine Folge von bewerteten -Impulsen der Flche fk ,
die jeweils um Ta nach rechts verschoben sind. Entsteht eine -Impulsfolge aufgrund
eines Abtastvorganges, so spricht man von einem Abtastsignal.

DSF 92 Krah WS 13/14


Um aus der kontinuierlichen Zeitfunktion f(t) ein Abtastsignal f *(t) zu bilden, wird
ein Pseudo-bertragungsglied (siehe Bild 9.7) eingefhrt, das man als -Abtaster
(sampler) bezeichnet. Hierbei handelt es sich um ein lineares bertragungsglied, das
jedoch nicht mit dem in Bild 9.1 dargestellten Abtaster identisch ist, da die einzelnen
Abtastwerte jeweils mit einem -Impuls multipliziert werden. Zur grafischen Darstel-
lung des Abtastsignals werden die -Impulse durch Pfeile reprsentiert, deren Hhe
jeweils dem Gewicht des zugehrigen -Impulses entsprechen. Die Pfeilhhe ist da-
bei gleich dem Wert des abzutastenden Signals f(t) zum Zeitpunkt t = kTa.

a) b)
f(t) f *(t)

t 0 1 k = t / Ta
f(t) Ta f *(t)
c)
F(s) F*(s)

Bild 9.7: -Abtaster a) Eingangssignal (kontinuierliches Signal)


b) Ausgangssignal (Abtastsignal)
c) Blockschaltbild des -Abtasters

Das Halteglied nullter Ordnung Gh(s)


Mit dem Faktor Gh(s) wird die bertragungsfunktion eines bertragungsgliedes be-
schrieben, dessen Impulsantwort gh(t) einem Rechteckimpuls der Hhe 1 und der
Breite Ta entspricht:

1e sTa
Gh s g h (t ) t t a (9.8)
s

Wird nun ein bewerteter -Impuls fk(t-kTa) einem solchen bertragungsglied auf-
geschaltet, entsteht am Ausgang ein Rechteckimpuls, der sich jedoch auf das Zeitin-
tervall Ta ausdehnt und so die Hhe von fk und die Breite von Ta annimmt (siehe Bild
9.8).

DSF 93 Krah WS 13/14


f*(t) = fk(t-kTa) f (t)

fk fk

kTa (k+1)Ta t kTa (k+1)Ta t


f*(t)
f*(t) Gh(s) f (t)

Bild 9.8: Ausgangsgre des bertragungsgliedes bei einem mit fk bewerteten


Eingangsimpuls

Der Bewertungsfaktor fk wird ber die gesamte Abtastperiode Ta gehalten. Man


spricht daher von einem Halteglied, das zur Unterscheidung von anderen hier nicht
behandelten Haltegliedern als Halteglied nullter Ordnung bezeichnet wird.

f *(t) f(t)

a) b)
0 1 k = t / Ta 0 1 k = t / Ta

f *(t) 1 e Ta s f (t)
c) F *(s) s F(s)

Bild 9.9: Halteglied nullter Ordnung


a) Eingangssignal (Abtastsignal)
b) Ausgangssignal (Treppenfunktion)
c) Blockschaltbild des Haltegliedes

Wie in Bild 9.8 veranschaulicht, erzeugt das Halteglied nullter Ordnung aus einem
Abtastsignal f *(t) ein entsprechendes stufenfrmiges Ausgangssignal f (t ) . Es unter-

DSF 94 Krah WS 13/14


scheidet sich daher vom Speicherglied nach Bild 9.1, welches das Signal f (t ) aus
einer Zahlenfolge bildet. Das Halteglied nullter Ordnung ist ein lineares bertra-
gungsglied.
Durch die mathematische Zerlegung der Treppenfunktion gelangt man so zu einer
weiteren in Bild 9.9 angegebenen Beschreibung des Abtast-Halte-Gliedes.
f(t) f *(t) f(t)

0 t 01 k = t / Ta 01 k = t / Ta
Ta
f(t) f *(t) 1 e Ta s
f(t)
s
F (s) F *(s) F(s)

f(t) f(t)
Sample &
Hold
F (s) F(s)

Bild 9.10: Darstellung des Abtast-Halte-Vorgangs, der aus der mathematischen


Zerlegung folgt.

Ein Vergleich mit Bild 9.2 macht deutlich, dass die mathematische Zerlegung des
Abtast-Halte-Gliedes zu einer einheitlichen Darstellung der Signale zwischen Abtas-
tung und Speicherung gefhrt hat. Fr die weitere Betrachtung von Abtastsystemen
ist dies von groer Bedeutung.
Anhand des Frequenzganges wird nun die Phasenverschiebung untersucht, die das
Halteglied nullter Ordnung erzeugt.
Mit s = j gilt fr den Frequenzgang des Haltegliedes:

1e jTa
Gh ( j )
j

e jTa / 2 e jTa / 2 jTa / 2


e
j

2 sin( Ta / 2)
e jTa / 2

DSF 95 Krah WS 13/14
sin( Ta / 2) jTa / 2
Ta e
Ta / 2

Ta
Ta si( )e jTa / 2 (9.9)
2
Das Halteglied nullter Ordnung fhrt somit eine Phasenverschiebung von
= t = Ta / 2 ein. Dies entspricht einer Zeitverschiebung (Totzeit) von
tAH = Ta / 2 .

DSF 96 Krah WS 13/14


9.3 Das Abtasttheorem von Shannon
Je nach Rechengeschwindigkeit des digitalen Systems ergibt sich eine maximal mg-
liche Abtastfrequenz. Dabei lsst sich mit Hilfe des Abtasttheorems von Shannon die
erforderliche Mindest-Abtastfrequenz angeben. Das Abtasttheorem soll hier nicht
ausfhrlich mathematisch hergeleitet, sondern nur kurz dargestellt werden.
Dazu wird von einem bandbegrenzten Signal f(t) mit der hchsten im Signal vor-
kommenden Signalkreisfrequenz max ausgegangen. In der nachfolgenden Betrach-
tung wird im Zusammenhang mit der Kreisfrequenz = 2 f vereinfacht von der
Frequenz gesprochen. Der Gebrauch von der Frequenz f wird vermieden, um eine
Verwechslung mit den Funktionswerten f(kTa) = fk zu verhindern. Bild 9.11 zeigt das
Signal und sein Amplitudenspektrum.
a)
f(t)

0 t
b) F ( j )

max 0 max

Bild 9.11: zeitkontinuierliches Signal


a) Zeitverlauf b) Amplitudenspektrum

DSF 97 Krah WS 13/14


a) f(t)

t = k Ta
b) F ( j )

a a -max max a a

2 2

Bild 9.12: Abtastsignal


a) zeitlicher Verlauf b) Amplitudenspektrum

Im Frequenzspektrum des abgetasteten Signals treten neben dem Originalspektrum,


auch Grundspektrum genannt, zustzliche hherfrequente Abbilder des Origi-
nalspektrums bei nfa auf, die man als Seitenspektren bezeichnet. Dabei enthlt das
Grundspektrum die volle Information, obwohl nur wenige Funktionswerte abgetastet
werden (siehe Bild 9.12).
Soll die im ursprnglichen Signal f(t) enthaltene Information nicht verflscht werden,
so muss die Abtastfrequenz fa mindestens so hoch gewhlt werden, dass sich die peri-
odisch wiederkehrenden Seitenspektren nicht mit dem Grundspektrum berlappen.
Aus dieser berlegung heraus folgt das Shannonsche Abtasttheorem:
Ist f(t) ein bandbegrenztes Signal mit der hchsten im Signal vorkommenden Fre-
quenz max , dann ist f(t) durch sein Abtastsignal f *(t) eindeutig bestimmt, wenn fr
die Abtastfrequenz folgendes gilt:

fa 2fmax , (9.10)

bzw. fr die Abtastzeit:

1
Ta . (9.11)
max 2 f max

Die maximal mgliche Signalfrequenz, die ein Abtastsystem verarbeiten kann,


nennt man Shannon-Frequenz (Nyquist-Frequenz).

a
s (9.12)
2 Ta

DSF 98 Krah WS 13/14


Somit liefert das Shannonsche Abtasttheorem eine mindestens erforderliche Ab-
tastfrequenz (Abtastrate) von

a = 2max , (9.13)

die im Allgemeinen als Nyquist-Rate bezeichnet wird.

Treten im Frequenzspektrum des zeitkontinuierlichen Signals Anteile oberhalb der


Shannon-Frequenz auf (max > a/2), dann werden diese bei der Abtastung in das ur-
sprngliche Frequenzband des Originalspektrums zurckgefaltet (siehe Bild 9.13).
Dort berlagern sie bereits vorhandene Signalanteile oder treten als vllig neue Sig-
nalfrequenzen auf. Dieses Phnomen wird auch als berlappung (Aliasing) bezeich-
net. In einem solchen Fall wird die ursprngliche Information verflscht, und das
zeitkontinuierliche Signal lsst sich nicht mehr aus dem Abtastsignal rekonstruieren.

DSF 99 Krah WS 13/14


9.4 Anti-Aliasing-Filter
Bei einem Anti-Aliasing-Filter handelt es sich um ein Tiefpass-Filter zur Band-
begrenzung der zeitkontinuierlichen Signale. Gem dem Abtasttheorem von
Shannon knnen nur Signalfrequenzen bis zur halben Abtastfrequenz ohne Verlust
der Signalinformation erfasst werden. Dieses Tiefpass-Filter stellt sicher, dass keine
hheren Frequenzen abgetastet werden.
a)
f(t)

0 t = kTa
F ( j )
b)

max 0 max

Bild 9.13: Abtastsignal bei Versto gegen das Abtasttheorem


a) zeitlicher Verlauf b) Amplitudenspektrum

Diese meist analoge Vorfilterung mit einem so genannten Anti-Aliasing-Filter muss


in den meisten Fllen durchgefhrt werden, da technische Signale im allgemeinen
nicht auf den interessierenden Frequenzbereich bandbegrenzt sind.

DSF 100 Krah WS 13/14


9.5 Rekonstruktions-Filter
Um das ursprngliche Signal f(t) wieder zurck zu gewinnen, mssen die im Fre-
quenzspektrum des Abtastsignals F*(j) vorhandenen Seitenspektren oberhalb von
max abgeschnitten werden. Dazu bentigt man ein Tiefpass-Filter, ein so genanntes
Rekonstruktionsfilter, das die Signalanteile oberhalb von max ausblendet (siehe Bild
9.13). Praktisch wird durch das Rekonstruktionsfilter aus der Stufenfunktion wieder
ein kontinuierlicher Zeitverlauf. Da ein reales Tiefpass-Filter einen endlich steilen
Verstrkungsabfall aufweist, muss fr eine praktische Realisierung die Abtast-
frequenz a grer als 2max gewhlt werden, um die Seitenspektren vom Grund-
spektrum sicher trennen zu knnen. In Audio-Systemen werden hierfr Tiefpassfilter
hherer Ordnung verwendet, um einen mglichst steilen Verlauf des Amplituden-
gangs zu erhalten. In der Regelungstechnik wird mehr Wert auf eine geringe Pha-
senverschiebung gelegt. Oft ist die Strecke selbst ein gengend groer Tiefpass.
F * ( j ) Idealer Tiefpass

-a -max 0 max a

Bild 9.14: Rekonstruktion des ursprnglichen Originalspektrums mit Hilfe eines


idealen Tiefpass-Filters

Unmittelbar aus den Forderungen, die sich aus dem Abtasttheorem von Shannon er-
geben, lsst sich somit ein diskontinuierliches bertragungssystem fr kontinuierli-
che Signale nach Bild 9.14 angeben.

DSF 101 Krah WS 13/14


Anti-Aliasing-Filter Sample-Glied - Ta Hold & Rekonstr. Filter
~ *
f(t) f(t) f*(t) f(t)
~ **
F(s) F(s) F (s) F(s)

Bild 9.15: Diskontinuierliches bertragungssystem fr kontinuierliche Signale


bertrgt man diese Struktur auf den oben beschriebenen Abtastvorgang, so ist die
Forderung nach einem bandbegrenzten Eingangssignal durch das dem Digitalrechner
vorgeschaltete Anti-Aliasing-Filter erfllt. Aber auch das geforderte Rekonstrukti-
ons-Filter, welches das Originalspektrum aus dem periodisch verlaufenden Spektrum
des Abtastsignals herausfiltern soll, ist nherungsweise durch das Halteglied nullter
Ordnung vorhanden. Um dies zu verdeutlichen, wird noch einmal der Frequenzgang
des Haltegliedes nullter Ordnung nach Gleichung (-.12) betrachtet:

2 sin( Ta / 2) jTa / 2
Gh ( j ) Ta e
Ta

Der Betrag des Frequenzganges ist in Bild 9.16 dargestellt.


Gh j
Kennlinie eines
idealen Tiefpasses

-a a a
0 a
2 2
Bild 9.16: Betrag des Frequenzganges des Haltegliedes nullter Ordnung im Ver-
gleich zu dem eines idealen Tiefpasses

Der Betrag des Frequenzgangs zeigt zwar nur in grober Nherung Tiefpasscharakter,
doch ist dies fr den Fall ausreichend, wenn das Rekonstruktionsfilter zustzlich hohe
Frequenzen dmpft.

DSF 102 Krah WS 13/14


10 Reale Abtastsysteme
Um die analogen Prozesssignale verarbeiten zu knnen, mssen diese abgetastet und
digitalisiert werden. Dazu werden aus dem kontinuierlichen Werteverlauf x(t) zu den
Abtastzeitpunkten Messwerte (Abtastwerte) entnommen. Erfolgt die Abtastung zu
quidistanten Zeitpunkten, also mit einer konstanten Abtastperiode Ta (Abtastfre-
quenz fa), so entsteht aus der Funktion x(t) ein zeitdiskretes Signal, das durch die
Wertefolge {x(k Ta)} dargestellt werden kann.

{x(k Ta)} = { x(0) ; x(Ta) ; x(2 Ta) ; ... ; x(k Ta) ; ...} (10.1)
Durch die begrenzte Wortbreite von n-Bit, die ein Digitalrechner zur Verfgung hat,
knnen die Amplituden nur mit endlich vielen Quantisierungsstufen (m=2n) darge-
stellt werden. Es entsteht, wie in Bild 10.1 angedeutet, ein amplitudenquantisiertes
und zeitdiskretisiertes Signal, also ein digitales Signal, das mit der Wertefolge {xk}
den Zeitverlauf des Signals beschreibt.

{xk} = { x0 ; x1 ; x2 ; ... ; xk ; ...} (10.2)

x(t) analog {xk} digital

t t
0 Ta 0 1 k = t /Ta

x(t) Abtasten &


Digitalisieren {xk}

Bild 10.1: Digitalisieren (Zeit und Wert) eines kontinuierlichen Signals

Der Ausgangsgrenverlauf wird dann ber einen in Software codierten Algorithmus


G(z) gebildet. Dazu berechnet der Digitalrechner zyklisch aus der Wertefolge
{xk} die Ausgangsgrenfolge {yk}. Die berechneten Ausgangsgren dienen dann
als Sttzwerte, aus denen wieder ein kontinuierliches Stellsignal gebildet wird. Dies
erfolgt am einfachsten dadurch, dass man einen ermittelten Sttzwert ber die gesam-
te Abtastperiode Ta speichert bis der nchste Wert zur Verfgung steht. So wird aus
der Stellgrenfolge {yk}, wie in Bild 10.2 gezeigt, eine Treppen- oder Stufenfunk-
tion erzeugt, die mit y (t ) bezeichnet werden soll.

DSF 103 Krah WS 13/14


{yk}

0 1 Ta t

y(kTa) Speichern

Bild 10.2: Umwandlung eines digitalen Signals in eine Stufenfunktion (Halteglied)

Bild 10.3: quivalentes Blockschaltbild eines Abtastsystems

Der Vorgang des Abtastens mit anschlieendem Speichern lsst sich dann durch ein
neues bertragungsglied das Abtast-Halte-Glied beschreiben. Es ist demnach in
erster Linie ein aus der theoretischen Betrachtung entstandenes bertragungsglied.
Zwar lsst sich ein solches auch verwirklichen, doch sei in diesem Zusammenhang
auf die oben angefhrte Beschreibung des Abtastsystems verwiesen.
[1, 2, 3, 5, 10, 12, 13].

DSF 104 Krah WS 13/14


10.1 Zeitverhalten eines Abtastsystems

u(t) x(t) x (t ) xk yk y (t )
Filter S&H ADC Algori. DAC Filter
im ADC

S&H
ADC
Algori.
DAC
a) y (t )
t
0 Ta
Quantisierungs-
u(t) x(t) x(t-Tt) x (t ) y (t ) rauschen
Filter S&H Algori. Filter
e sTt

e sTt
S&H
Algori.
b) y (t )
t
0 Ta

Bild 10.4: Zeitverhalten der digitalen Signalverarbeitung


a) Reales System b) Mathematisches Ersatzsystem

Die Halteeigenschaft des DAC (Ta) dominiert.


Die AD / DA Wandlung wird nur noch als Quantisierungsrauschen bercksichtigt.
Das Abtasten und die Berechnung des Algorithmus erfolgen unendlich schnell.

DSF 105 Krah WS 13/14


10.2 Aufbau eines prozessorbasierten Systems: C, DSP und IPC
Zur prozessorbasierten digitalen Signalverarbeitung werden Mikrocontroller (C),
Digitale Signalprozessoren (DSP) und Industrie-PCs (IPC) eingesetzt. Im Folgenden
wird ein kurzer berblick ber den prinzipiellen schaltungstechnischen Aufbau eines
digitalen Systems gegeben, um zu einem fr die Signalverarbeitung wesentlichen
Blockschaltbild des Abtastsystems zu kommen.

PC-Bus

Interface
Bild 10.5: Prinzipieller Aufbau einer digitalen Signalverarbeitung mit einem IPC

Der Trend zur dezentralen Struktur in der Prozessautomatisierung hat zu einer Viel-
falt von unterschiedlichsten Prozessrechnern gefhrt. Dies ist vor allem durch die
schnelle Entwicklung der Mikroelektronik und der damit verbundenen Integration
von Halbleiterbauelementen zu begrnden. So lassen sich DDC-Systeme auch mit
IPCs aufbauen, Bild 10.5. Dabei ermglicht deren hohe Rechenleistung zustzlich
den Einsatz von Software-Werkzeugen, sog. CAE-Paketen (CAE, Computer-Aided
Engineering). Diese untersttzen den Ingenieur in allen Entwurfsphasen, von der
Modellbildung bis zur Erprobung und Simulation von Systemen.
Damit der PC die Signale erfassen und Ausgangssignale erzeugen kann, bentigt er
eine zustzliche Schnittstelle. Eine beispielhafte Darstellung einer solchen Ein-
/Ausgabekarte (I/O-Interface) ist in Bild 10.6 mit den wichtigen Komponenten wie-
dergegeben.

DSF 106 Krah WS 13/14


Filter
S&H ADC
Filter
Analoge
MUX
Eingnge

Interface
Filter
Steuereinheit

DAC #1

DAC #2
Analoge
Ausgnge

BUS - Buffer
DAC #n

PC - BUS

Bild 10.6: Ein-/Ausgabekarte (I/O-Interface)


Um mehrere Messgren zu erfassen, bentigt der Digitalrechner wegen seiner se-
quentiellen Arbeitsweise einen Messstellenumschalter. Dadurch lassen sich die Ein-
gangssignale in einer zeitlich festgelegten Reihenfolge dem PC zufhren.
Mikrocontroller
Mikrocontroller (auch Controller, C, MCU) sind Ein-Chip-Computersysteme, bei
welchen nahezu smtliche Komponenten (wie z. B.: der Prozessor (Central Proces-
sing Unit, CPU), der Programmspeicher (meist auf Read-Only-Memory- (ROM-) o-
der Flash-Basis), der Arbeitsspeicher (auf Static Random Access Memory-Basis
(SRAM)), Ein-/Ausgabe-Schnittstellen) auf einem einzigen Chip (Integrierter Schalt-
kreis) untergebracht sind. Auf modernen Mikrocontrollern finden sich hufig auch
speziellere Peripherieblcke wie z. B.:
Taktgeneratoren,
EEPROM-Speicher (Electrically Erasable Programmable Read Only Memory),
CAN (Controller Area Network),
LIN (Local Interconnect Network),
USB (Universal Serial Bus),
IC (Inter-Integrated Circuit),
SPI (Serial Peripheral Interface),
serielle bzw. Ethernet-Schnittstellen,
LCD-Controller und -treiber und

DSF 107 Krah WS 13/14


hochauflsende Analog-Digital-Wandler (mit 10 bis 12 Bit Auflsung und bis zu 16
Kanlen).

Bild 10.7: PIC18F8720 Mikrocontroller in einem 80-pin TQFP-Gehuse

Einsatzbereiche
Diese Form eines Computers tritt in Gestalt von eingebetteten Systemen im Alltag oft
unbemerkt in technischen Gebrauchsartikeln auf, zum Beispiel in Waschmaschinen,
Chipkarten (Geld-, Telefonkarten), Unterhaltungselektronik (Videorekordern,
CD/DVD-Playern, Radios, Fernsehgerten, Fernbedienungen), Broelektronik, Kraft-
fahrzeugen (ABS, Airbag, Motorsteuerung, ESP usw.), Mobiltelefonen und sogar in
Uhren und Armbanduhren. Darber hinaus sind sie in vielen Computer-
Peripheriegerten enthalten (Tastatur, Maus, Drucker, Monitore, Scanner uvm.).
Mikrocontroller sind meist anspruchslos im Energiebedarf und in der Serienfertigung
uerst preiswert herzustellen. Dieses ist auf die hohen Stckzahlen, meist eher ge-
ringen Taktfrequenzen von bis zu 100 Megahertz und auf die im Vergleich zu leis-
tungsstarken Mikroprozessoren geringere Komplexitt zurckzufhren.
Abgrenzung zu Mikroprozessoren
Die Grenze zwischen Microcontrollern und Mikroprozessoren ist mehr oder weniger
flieend, was sich auch darin zeigt, dass oft nach einiger Zeit auch Mikrocontroller-
Varianten einer neuen Mikroprozessor-Architektur erschienen sind. Im einfachsten
Fall geschieht dies, indem die bei einem klassischen Mikroprozessor als Unterstt-
zungs- und Peripheriebausteine realisierten Komponenten wie Takt- und Reset-
Erzeugung, Interruptcontroller, Zeitgeber, Schnittstellenbaustein und zum Teil auch
Speichercontroller in den Chip selbst integriert werden, so dass fr ein funktionsfhi-
ges Prozessorsystem oft nur noch ein Quarz (fr den Takt) und Speicherbausteine
ntig sind. Typische Vertreter dieser Gattung sind z. B. der 80186 von Intel (vom
8086 abgeleitet), die ARM-Familie sowie ColdFire (MC680xx) von Freescale (vor-
mals Motorola). Diese Controller-Baureihen werden oft auch noch dann weiterge-
fhrt, wenn die betreffende Mainstream-CPU schon lngst nicht mehr produziert
wird. Die Hardware solcher um Peripheriebausteine ergnzter Prozessorkerne ist
manchmal in Form eines Multi Chip Modules (MCM) realisiert.

DSF 108 Krah WS 13/14


Dem gegenber gibt es aber auch klassische Microcontrollerarchitekturen, die von
Anfang an nicht als reines Mikroprozessorsystem gedacht waren, sondern primr auf
Steuerungsaufgaben gezielt haben. Diese zeichnen sich z. B. dadurch aus, dass mit
ihnen auch ein Single-Chip-Betrieb vllig ohne externe Speicherbausteine mglich
ist, ebenso wie der Befehlssatz der CPU meist spezialisierte Befehle fr das Steuern
einzelner Signalleitungen (mittels sogenannter Bitmanipulationen) bietet. Ebenfalls
wichtig ist fr solche Controller eine mglichst kurze Interrupt-Latenzzeit, also die
Zeitspanne, die der Controller braucht, um auf die Unterbrechungsanforderung einer
Signalquelle (Zeitgeber, Peripheriebaustein etc.) zu reagieren. Typische Vertreter die-
ser Gattung sind z. B. der 8051 von Intel sowie der C166 von Siemens (heute Infine-
on) und TriCore von Infineon.
Architekturen
Die Anzahl der verbauten Mikrocontroller berschreitet bei weitem die Gerte, die
man sich unter einem Computer eigentlich vorstellt. Die berwiegende Mehrzahl der
verwendeten Mikrocontroller basiert auf 8-Bit-Prozessoren, deren grundlegende Ar-
chitektur teilweise noch aus der ersten Hlfte der 1970er Jahre stammt. Es gibt jedoch
auch 4-, 16- und 32-Bit-Mikrocontroller, wobei die 32- und 16-Bitter mittlerweile
mengenmig zu den 8-Bittern aufholen. Praktisch gibt es zu jedem Mikroprozessor
mehr als ein Pendant bei den Mikrocontrollern. Auerdem gibt es Mikrocontroller,
die keinem Mikroprozessor nachgefolgt sind, wie Atmel AVR, PIC-Mikrocontroller
oder TI MSP430, Infineon TriCore, (X)C16x und viele weitere.
Benutzte Programm-Speicher
Fr Hobbyanwendungen, bei Stckzahlen bis zu einigen tausend pro Jahr und bei An-
forderungen nach hoher Flexibilitt (z. B. wegen geplanter nachtrglicher Pro-
grammupdates) werden Mikrocontroller mit Programmspeicher in Flash- oder
EEPROM-Technologie eingesetzt. Fr grere Stckzahlen, d. h. im Bereich von
mehr als einigen tausend pro Jahr, werden dagegen zumeist maskenprogrammierte
Mikrocontroller eingesetzt. Der einzelne Mikrocontroller ist hierbei preisgnstiger,
jedoch entstehen Initialkosten fr die Herstellung einer Maske mit dem jeweiligen
Programmcode, die dann auch nicht mehr gendert werden kann, das heit, man hat
dann einen Mikrocontroller mit einem festen Programm im (internen) ROM. Des
Weiteren gibt es Mikrocontroller, deren Programm in einem EPROM (Eraseable Pro-
grammable Read Only Memory) abgelegt wird. Das erforderliche Quarzglas-Fenster
verteuert das Gehuse und verlangt zum Lschen etwa 20 Minuten lang stark ozon-
bildende UV-C-Strahlung. EPROM-Typen sind daher fast vollstndig durch funkti-
onsgleiche Flash-basierte Mikrocontroller ersetzt worden.
Typische Speichergren heutiger Mikrocontroller liegen zwischen 1 KB und 1 MB
fr das Programm und zwischen 32 Bytes und 48 KB fr die Daten. Viele Modelle
knnen aber auch wesentlich greren externen Speicher ansprechen.

DSF 109 Krah WS 13/14


Programmierung
Mikrocontroller werden meist in der Programmiersprache C oder C++ programmiert.
Andere Sprachen werden seltener eingesetzt. Zur Funktionsberwachung von Mikro-
controllersteuerungen werden in der Regel so genannte Watchdog-Schaltungen ein-
gesetzt, die teilweise aber auch schon in den Mikrocontroller integriert sind.
DSP
Flaschenhals -> Prozessorbus

10.3 Aufbau eines FPGA basierten Signalverarbeitungssystems


Alles parallel, schnell, -> viel I/O

DSF 110 Krah WS 13/14


11 Digitale Filter
Bei der Synthese von Digitalfiltern greift man meist auf die umfangreichen Erfahrun-
gen und Algorithmen zur Synthese von Analogfiltern zurck. Die berechneten Ana-
logfilter knnen dann durch geeignete Transformation in Digitalfilter berfhrt wer-
den. Dabei muss bercksichtigt werden, dass in Abtastsystemen der relevante Fre-
quenzbereich durch die gewhlte Abtastfrequenz fa begrenzt ist. In diesem Kapitel
werden die Eigenschaften von Digitalfiltern bei der Verarbeitung abgetasteter Signale
betrachtet. Der Abtast-Halte-Vorgang (Kapitel 9) eines Systems wird hier nicht ex-
plizit betrachtet.

uk xk
G(z)

Bild 11.1: Filterung der Eingangsfolge {uk} mit einem Digitalfilter mit der ber-
tragungsfunktion G(z) zur Ausgangsfolge {xk}

11.1 Nichtrekursive Digitalfilter (FIR)


Nichtrekursive Digitalfilter werden in der deutschsprachigen Literatur auch als
Transversalfilter und in der angelschsischen Literatur als Finite Impulse Response
Filter oder kurz FIR-Filter bezeichnet ( endliche Impulsantwort). Die Ausgangs-
folge {xk} eines FIR-Filters berechnet sich ausschlielich aus der Eingangsfolge {uk}.
Eine Rckfhrung der Ausgangsfolge findet nicht statt ( nicht rekursiv). Deshalb
sind FIR-Filter immer stabil.

xk b0 u k b1 u k-1 b2 u k-2 bm u k-m


m
(11.1)
xk bi u k i
i 0

Es gibt eine einfache und anschauliche Mglichkeit, um die Koeffizienten eines FIR-
Filters zu berechnen. Wird auf ein Filter ein Einheitsimpuls k gegeben, so erscheint
am Ausgang eine Impulsantwort. Die Werte dieser Impulsantwort entsprechen genau
den gesuchten Filterkoeffizienten bi . In der Praxis wird aber blicherweise nicht die
Impulsantwort sondern der Frequenzgang des Filters vorgegeben. Mit der Diskreten
Fourier-Transformation (DFT) kann aus dem Frequenzgang direkt die Impulsantwort
berechnet werden. Als Beispiel soll mit einem FIR-Filter (nherungsweise) ein idea-
ler Tiefpass realisiert werden.

DSF 111 Krah WS 13/14


H(f )
1

-fg fg f

ht
1 1 h0 sin 2 f g t
Ti
2 fg 2 fg t

-Ti Ti 2Ti t

fg 14 fS Ti 4 Ta Ta

Bild 11.2: Die Fourier-Transformation liefert aus dem vorgegebenen Frequenz-


gang (oben) die FIR-Koeffizienten (unten)
Die Funktion der Impulsantwort ist vom sin(x)/x (Sinc) Typ und besitzt an der Stelle
Null den Grenzwert 1,0 . Die Anzahl der Filterschritte (m+1), oft auch Taps genannt,
ist aus Symmetriegrnden meist ungerade. Weil in der Praxis nur endlich viele Ko-
effizienten verwendet werden knnen, wird der ideale Frequenzgang nur nherungs-
weise erreicht:
Der bergang vom Durchlass- in den Sperrbereich erfolgt stetig, also mit einer
endlich steilen Flanke. Je mehr Koeffizienten verwendet werden, umso steiler ist
die Flanke.
Im Durchlass- wie im Sperrbereich ergeben sich Ripple (Welligkeit).
Dieses Abschneiden von Koeffizienten bewirkt ein berschwingen des Frequenz-
gangs kurz vor dem bergang vom Durchlassbereich in den Sperrbereich. Dieses
berschwingen wird in der Nachrichtentechnik als Gibbssches Phnomen bezeich-
net. Durch eine Fensterung (Windowing) kann dieser sehr strende Einfluss verrin-
gert oder sogar beseitigt werden. Fenster sind bestimmte Funktionen, mit denen die
Fourier-Koeffizienten (bzw. Filterkoeffizienten) multipliziert werden, um die nur
endliche Anzahl von Koeffizienten auszugleichen. Sehr gebruchlich ist das Ham-
ming-Window:

2
HWk 0,54 0,46 cos k (11.2)
m 1

DSF 112 Krah WS 13/14


Alternativ werden z.B. auch Hann, Tukey, Cosinus, Blackman, Gauss und Kaiser
Window verwendet.
Ein solches FIR-Filter weist (nherungsweise) den gewnschten Frequenzgang auf
und verursacht keine Phasenverschiebung. Leider ist es so jedoch nur eingeschrnkt
realisierbar, da zur Berechnung von der Ausgangsfolge {xk} auch der zuknftige Ver-
lauf von der Eingangsfolge {uk} bekannt sein muss. Bei der Off-line Bearbeitung von
Signalverlufen ist das keine Beschrnkung. Bei der On-Line Berechnung kann das
jedoch nur durch ein Verzgern der Eingangsfolge erreicht werden. Diese Verzge-
rung (Totzeit) bewirkt den fr FIR-Filter charakteristischen linearen Phasengang,
Bild 11.3.
bk

1 m

k=t/Ta

Bild 11.3: Koeffizienten eines angenherten idealen Tiefpass-FIR-Filters


Tt = 7 Ta (Symmetrieachse)

Beispiel:
Bei einem Transversalfilter mit m = 1 , b0 = 0,5 , b1 = 0,5 sollen Phasengang und
Amplitudengang berechnet werden:

Gz b0 b1 z 1

Mit z 1 e sTa und s = j ergibt sich

G j b0 b1 e jTa .


G j e jTa / 2 b0 e jTa / 2 b1 e jTa / 2
Mit den vorgegebenen Koeffizienten b0 = b = 0,5 ergibt sich

G j e jTa / 2 cosTa / 2

( Phase) ( Amplitude)

Jetzt ist ersichtlich, dass diese Berechnung eines gleitenden Mittelwertes einen li-
nearen Phasengang ( = -Ta / 2) aufweist und der Amplitudengang kosinusfrmig
verluft mit dem ersten Nulldurchgang bei Shannonfrequenz.

DSF 113 Krah WS 13/14


11.2 Realisierung nicht rekursiver Filter
Es ist leicht ersichtlich, dass ein FIR-Filter schnell sehr viele Koeffizienten bentigt
und damit auch viel Rechenleistung erfordert, Bild 11.4. Andererseits besitzt es den
Vorteil, dass eine beliebige Impulsantwort vorgegeben werden kann und immer stabil
ist.
uk uk-1 uk-2 uk-3
-1 -1 -1
z z z

b0 b1 b2 b3
xk

Bild 11.4: Blockschaltbild eines FIR-Filters (Transversalfilter) mit m = 3


Standardform / Direktform geeignet zur Implementierung auf einem DSP
mit MAC (Multiply ACcumulate)

Ein nicht rekursives Filter kann mit einem Digitalrechner sehr leicht programmiert
werden. Bei digitalen Signalprozessoren wird die Ausgangsgre xn durch aufaddie-
ren (akkumulieren) der einzelnen Produkte (ui bi) in einem Akkumulator gebildet.
Durch eine Erhhung der Ordnung (mehr Koeffizienten) erhht sich nahezu proporti-
onal die notwendige Verarbeitungszeit des Prozessors.
double u0,u1,u2,u3; // Eingangsfolge
const double b0 = ... ; // Koeffizient
const double b1 = ... ; // Koeffizient
const double b2 = ... ; // Koeffizient
const double b3 = ... ; // Koeffizient
double x ; // Ausgangsfolge
for ( k=0; ;k++ ) { // Schleife zur Berechnung
u3 = u2 ; // Verzgerung von un
u2 = u1 ;
u1 = u0 ;
u0 = ADC_Input() ; // Neues (ktes) u einlesen
x = u0 * b0 +
u1 * b1 +
u2 * b2 +
u3 * b3 ;
DAC_Output(x) ; // Neues (ktes) x ausgeben
} // Ende der Schleife

C Programm eine FIR-Filters

DSF 114 Krah WS 13/14


uk
b3 b2 b1 b0
xA xB xC xk
z-1 z-1 z-1

Bild 11.5: Blockschaltbild eines FIR-Filters (Transversalfilter) mit m = 3


in transponierter Form geeignet zur Implementierung in einem FPGA

Der in Bild 11.5 dargestellte Signalflussplan ist gut geeignet zur Implementierung in
einem FPGA insbesondere bei hohen Datenraten. In dieser Darstellung ist die Be-
rechnung besser parallelisierbar, weil Teile des Algorithmus (VHDL Zeilen) durch
die Verzgerungsglieder (z-1) entkoppelt werden. Insbesondere bei FIR-Filtern hoher
Ordnung kann das ein entscheidendes Kriterium sein. Durch eine Erhhung der Ord-
nung (mehr Koeffizienten) erhhen sich nahezu proportional die notwendigen Res-
sourcen des FPGAs (Logikelemente / DSP-Blcke).
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity FIR is
port (
clk : in std_logic ; -- Filter clock
reset : in std_logic ;
clk_en : in std_logic ; -- Clock enable
u : in signed(15 downto 0) ; -- Input
b0,b1,b2,b3 : in signed(15 downto 0) ; -- Koeffizienten
x : out signed(31 downto 0) -- Output
);
end entity;

architecture rtl of FIR is


signal xa,xb,xc : signed(31 downto 0) ;
begin
process(reset, clk) is
begin
if( reset = '1') then
-- Asynchronous Reset Statements
elsif( rising_edge(clk)) the -- clk Synchronous Statements
if ( clk_en = '1') then - Filter langsamer takten?
xa <= u * b3 ; -- Signale, keine Variablen!
xb <= xa + u * b2 ;
xc <= xb + u * b1 ;
x <= xc + u * b0 ;
end if;
end if;
end process;
end rtl;

VHDL Programm eines FIR-Filters in transponierter Form

DSF 115 Krah WS 13/14


Vorteile von nicht rekursiven (FIR) Filtern:
Linearer Phasengang
Die Werte dieser Impulsantwort entsprechen genau den Filterkoeffizienten bi
Knnen ber eine DFT fr nahezu jeden Frequenzgang entworfen werden
Besitzen immer eine Bounded-Input-Bounded-Output (BIBO) Stabilitt
Robust gegenber Quantisierungsfehlern bei der Berechnung von Festkomma-
Koeffizienten

Nachteile von nicht rekursiven (FIR) Filtern:


Bentigen oft eine sehr hohe Ordnung und dadurch eine hohe Rechenleistung /
-zeit (DSP) bzw. viele Ressourcen (FPGA)
Oft ist das Entwurfsverfahren komplex (meist Off-Line)

11.3 Rekursive Digitalfilter (IIR)


Wenn man zustzlich zu der Eingangsfolge {uk} auch noch (alte) Werte der Aus-
gangsfolge {xk} fr die Berechnung des aktuellen Wertes heranzieht ( Rekursiv),
spricht man von einem rekursiven Digitalfilter. In der angelschsischen Literatur
werden rekursive Digitalfilter als Infinite Impulse Response Filter oder kurz IIR-
Filter bezeichnet, Bild 11.6.

uk uk-1 uk-2 uk-3


-1 -1 -1
z z z
b0 b1 b2 b3
xk

- - -
a3 a2 a1
z-1 z-1 z-1
xk-3 xk-2 xk-1

Bild 11.6: Schema der Berechnung eines IIR-Filter (Rekursiv) mit


m = n = 3 und a0 = 1 Standardform / Direktform geeignet zur Imple-
mentierung auf einem DSP mit MAC

Beschrnkt man sich auf IIR-Filter 1. und 2. Ordnung, so kann man zur Digital-
filtersynthese die notwendigen Koeffizienten auch ohne Umweg ber Analogfilter
und Bilinear-Transformation mit Hilfe von tabellarischen Formeln bestimmen.

DSF 116 Krah WS 13/14


Vorteile von rekursiven (IIR) Filtern:
Oft wird nur eine geringe Ordnung bentigt. Deshalb wird nur eine geringe
Rechenleistung / -zeit bentigt (DSP) bzw. nur wenig Ressourcen (FPGA).
Knnen hnlich den klassischen (zeitkontinuierlichen) Filtern entworfen wer-
den.

Nachteile von rekursiven (IIR) Filtern:


Der Phasengang ist im Durchlassbereich (wie bei zeitkontinuierlichen Filtern)
blicherweise nichtlinear.
IIR-Filter knnen durch falsche Auslegung und durch die Quantisierung der
Koeffizienten instabil werden.
IIR-Filter weisen blicherweise bei Realisierung in Fixed-Point Arithmetik ein
strkeres Quantisierungsrauschen auf.

DSF 117 Krah WS 13/14


11.3.1 Rekursives Digitalfilter erster Ordnung
Das sicherlich bekannteste Digitalfilter ist der Tiefpass erster Ordnung. Die Ein-
gangsfolge {uk} soll mit der Tiefpass-bertragungsfunktion G(z) zur Ausgangsfolge
{xk} gefiltert werden.
Die (kontinuierliche) bergangsfunktion eines Tiefpasses erster Ordnung lautet:

G s
1 1 1
. ( ) (11.3)
1 s 1 s 1 s
g 2 fg

Entsprechend ergibt sich im Zeitbereich die in Bild 11.7 gezeigte bergangsfunktion


(Sprungantwort), bei der idealer Weise alle Werte der Ausgangsfolge auf der Kurve
liegen:

h(t)
1

t

ht 1 e

b1

Ta t

Bild 11.7: bergangsfunktion (Sprungantwort) eines Tiefpasses erster Ordnung

Durch den Ansatz einer Differenzengleichung zur Berechnung von y1 ergibt sich der
Koeffizient b1:

x0 b0 u0
x1 b0 u1 b1 u0

( ) (11.4)
Ta

b1 1 e ; b0 = 0
Wenn Ta wesentlich kleiner als ist, kann folgende Nherung benutzt werden:
Ta
b1 mit e x 1 x fr x 1

DSF 118 Krah WS 13/14


Durch Koeffizientenvergleich mit der allgemeinen Differenzengleichung ergibt sich:
xk a1 xk1 b0 uk b1 uk-1 (11.5)
Ta

a1 b1 1 e

GTP1 z
b1 z 1

1 z 1 (11.6)
1
1 a1 z 1 z 1
In der Praxis wird Gleichung (11.4) oft verwendet, da nur eine Multiplikation erfor-
derlich ist, und weil sich diese Version besonders gut in Festkommaarithmetik reali-
sieren lsst. Oft wird statt xn-1 der unverzgerte Wert xn verwendet (b0 statt b1),
was einer Verschiebung entspricht. Das vermindert die Phasenverschiebung des Fil-
ters, was insbesondere in der Regelungstechnik oft erwnscht ist.
G( j2 f )

0
S&H
-10 dB
digital
-20

-30
analog

argG( j2 f ) 1 10 100 Hz fS 1000


f
digital b0
-30

-60
analog
digital mit
S&H
-90

Bild 11.8: Vergleich von Amplitudengang und Phasengang eines digitalen Tiefpas-
ses erster Ordnung mit und ohne S&H mit einem analogen Tiefpass
Ta = 1ms, fg = 25 Hz

DSF 119 Krah WS 13/14


Beispiel: Tiefpass erster Ordnung (PT1)
Filterzeitkonstante: = 20 ms
Abtastzeit: Ta = 250 s = 0,25 ms
Ta 0, 25

b0 1 e 1 e 20 0,0124 (oder b1)
0, 25

a1 b0 1 e 20
0,9876

Die z-bertragungsfunktion von einem Hochpass erster Ordnung lsst sich jetzt
leicht aus der z-bertragungsfunktion des Tiefpasses berechnen. Die Koeffizienten
des Tiefpasses sind hier zu Unterscheidung mit einer Schlangenlinie gekennzeichnet:

GHP1z 1 GTP1 z
~

~ ~
b0 b1 z 1 b0 1 b0 a~1 z 1
GHP1z 1 ~ 1 (11.7)
1 a1 z 1 1 a1 z 1 a~1 z 1

Durch Koeffizientenvergleich ergibt sich:


Ta

a1 a~1 e
Ta

b1 a~1 e (11.8)


T
~ a
b0 1 b0 e

z 1
GHP 1 z
1 z 1
Auch beim digitalen Hochpass erster Ordnung lsst sich der Algorithmus zur Verar-
beitung vereinfachen: (wirkt wie die AC-Taste am Oszilloskop)

xn a1 xn1 b0 un b1 un-1
Ta Ta Ta

xn e
xn 1 e
un e
un-1
Ta

xn e
xn 1 un un-1 (11.9)
DSF 120 Krah WS 13/14
Phasenkorrekturglied erster Ordnung (PD-T1):
In der Regelungstechnik werden oft Phasenkorrekturglieder statt eines Tiefpasses
eingesetzt. Bei einem Phasenkorrekturglied werden Frequenzen deutlich oberhalb der
Grenzfrequenz um einen Faktor gedmpft (oder verstrkt). Oft reicht diese Dmp-
fung aus. Die Phasenverschiebung wird im Bereich konstanter Verstrkung zu Null,
was oft die Stabilitt des Systems verbessert. Mit > 1 wird aus dem Phasenkorrek-
turglied ein Phasenanhebendes (Phase-Lead) Korrekturglied:

1 s s
Gs
1
(11.10)
1 s 1 s 1 s
Mit
=0 wird aus dem Phasenkorrekturglied ein Tiefpass,
0<<1 ergibt sich ein Phasenabsenkendes (Phase-Lag) Korrekturglied,
=1 werden weder Phase noch Amplitude verndert (G(s) = 1) und bei
>1 ergibt sich ein Phasenanhebendes (Phase-Lead) Korrekturglied.
Die Koeffizienten werden aus den vorhergehend hergeleiteten (digitaler Tiefpass
bzw. Hochpass) berechnet:
Ta

a1 e

Ta

1 e
b0 Ta
(11.11)

1 e

Ta

b1 e b0

Beispiel:
Zeitkonstante = 1 ms
Bypass = 0,15
Abstastzeit (Zykluszeit) Ta = 62,5 s
0, 0625

a1 e 1 0,9394 oder

DSF 121 Krah WS 13/14


0, 0625

1 e 1
b0 0, 0625
0,1778

1 e 0,15

0, 0625

b1 e 0,15
b0 0,1172

bertragungs- Algorithmus
Filter ai , bi
funktion G(z) X(z) = G(z) U(z)

Ta

Tiefpass b0 a1 e

auch b1 xk xk 1 b0 (uk xk 1 )
1 a1 z 1
Ta

statt b0 b0 1 e

Ta

a1 e

b0 b1z 1 Ta
xk b0 xk 1 uk uk-1 b0

Hochpass e
1 a1 z 1
Ta

b1 e

Ta

a1 e

Ta
Phasen- 1
b0 b1z xk = a1 xk-1 + 1 e
korrektur- b0
glied 1 a1 z 1 b0 uk + b1 uk-1
Ta
1 e

Ta

b1 e b0

Tabelle 11.9: bersicht Digitalfilter erster Ordnung und ihrer Parameter

DSF 122 Krah WS 13/14


11.3.2 Rekursives Digitalfilter zweiter Ordnung
Mit der in Bild 11.10 gezeigten universellen Struktur zweiter Ordnung kann durch
Konfiguration der fnf Parameter (a1 , a2 , b0 , b1 , b2 ) festgelegt werden, ob das Digi-
talfilter sich wie ein
Tiefpass (1. oder 2. Ordnung),
Hochpass (1. oder 2. Ordnung),
Bandpass,
Bandsperre oder wie ein
Phasenkorrekturglied (1. oder 2. Ordnung)
verhalten soll. Bei einem Filter 1. Ordnung werden die Koeffizienten a2 und b2 iden-
tisch Null. Man nennt diese universelle Struktur zweiter Ordnung auch Biquad.

uk -1
uk-1 -1
uk-2
z z

b b b
0 xn

- -
a a
z-1 z-1
xk-2 xk-1

Bild 11.10: Berechnung eines IIR-Filters (Rekursiv) mit m = n = 2 (Biquad)


Zur Realisierung eines Tiefpasses zweiter Ordnung

G s
K
, g 2 f g
2 1
1 s s 2

g g2

werden die fnf Koeffizienten aus den Parametern Grenzfrequenz fg , Dmpfungsgrad


(Theta) und Abtastzeit Ta wie folgt berechnet:

DSF 123 Krah WS 13/14


1 sin 2 f g Ta
a2
1 sin 2 f g Ta
a1 1 a2 cos 2 f g Ta
1 a1 a2 (11.12)
b0 b2 K
4
b1 2 b0

(sin(..) und cos(..) in Radiant)


Mit Anwendung des Endwertsatzes folgt

b0 b1 b2
lim hk K .
k 1 a1 a2

Bei einem Hochpass zweiter Ordnung

K s2
Gs 2 , g 2 f g
g 2 g s s 2

sind die Koeffizienten des Nenners identisch mit denen des Tiefpasses. Die Zhler-
Koeffizienten b0 , b1 und b2 berechnen sich wie folgt:

1 sin 2 f g Ta
a2
1 sin 2 f g Ta
a1 1 a2 cos 2 f g Ta
(11.13)
1 a1 a2
b0 b2 K
4
b1 2 b0

Wenn die Grenzfrequenz wesentlich kleiner als die Shannonfrequenz ist, geht a2 ge-
gen 1 und a1 gegen -2. Mit Anwendung des Anfangswertsatzes folgt

1 a1 a2 1 2 1
lim hk b0 K K K .
k 0 4 4

DSF 124 Krah WS 13/14


Der Bandpass ist charakterisiert durch seine Mittenfrequenz f0 , bei der die Verstr-
kung mit 1 ihr Maximum erreicht, und durch die Gte Q, welche die Steilheit des Fil-
ters bestimmt.

Die Filterkoeffizienten lassen sich mit folgenden Formeln berechnen:

f 0 Ta
1 tan
Q
a2
f 0 Ta
1 tan
Q
a1 1 a2 cos 2 f 0 Ta
(11.14)
1 a2
b0 K
2
b1 0
b2 b0

Die Bandsperre (Notch-Filter) filtert Frequenzanteile bei der Mittenfrequenz f0 voll-


stndig heraus.

Die Filterkoeffizienten werden mit folgenden Formeln berechnet:

f 0 Ta
1 tan
Q
a2
f 0 Ta
1 tan
Q
(11.15)
1 a2
b0 b2
2
a1 2 b0 cos2 f 0 Ta
b1 a1

DSF 125 Krah WS 13/14


Phasenkorrekturglied zweiter Ordnung
In der Literatur findet man diesen Filtertyp auch als Cauer-Filter oder als Elliptischen
Filter. Phasenkorrekturglieder zweiter Ordnung werden in der Antriebsregelung (Mo-
tion Control) benutzt, um das Abkoppeln des Lasttrgheitsmomentes eines Zweimas-
senschwingers zu kompensieren. Im Nenner erkennt man sofort den Tiefpass zweiter
Ordnung (mit konjugiert komplexen Polen), der hier im Zhler zustzlich mit einem
inversen Tiefpass (1/x) hnlich einem Hochpass ergnzt wird (mit konjugiert kom-
plexen Nullstellen). Parametriert werden Dmpfungsgrad und Grenzfrequenz von
Zhler (Hochpass = Nullstellen) und Nenner (Tiefpass = Pole). Die ber-
tragungsfunktion des allgemeinen Bi-Quad 2-ter Ordnung lautet:

2HP 1
1 s s2
HP 2
G s HP
2 1
1 TP s 2 s 2
TP TP
Hier berechnen sich die Koeffizienten wie folgt:



TP
2 e TP TP Ta cosh 2 1 T
TP a fr TP 1
a1



2 e TP TP Ta cos 1 2 T
TP TP a fr TP 1

a2 e 2TPTP Ta
~
b0 1

~
HP
2 e HPHP Ta cosh 2 1 T
HP a fr HP 1
b1

2 e HPHP Ta cos 1 2 T
HP HP a fr HP 1

~
b2 e 2HPHP Ta
Die Skalierung der Zhlerkoeffizienten erfolgt mit dem Endwertsatz der
z-Transformation:

~ 1 a a
bi K bi ~ ~1 ~2
i 0,1, 2 b0 b1 b2

DSF 126 Krah WS 13/14


+10

0
F
- 17 dB
-20
265 Hz
-30 dB
38 Hz - 34 dB
-40
0
-90
-180
-270
1 10 100 f 1 k Hz 10 k

Bild 11.11: Bode-Diagramm von Phasenkorrekturgliedern 1. und 2. Ordnung


fTP = 38 Hz, fHP = 265 Hz und HP = LP = 0,5

Beispiel Bi-Quad:

Tiefpass-Eckfrequenz: fTP = 100 Hz (TP = 628,32 1/s)


1
Tiefpass-Dmpfungsgrad: TP
2
Abtastzeit: Ta = 0,25 ms
a0 1

a1 2 0,8949 0,9938 1,7787

a2 0,8008
Hochpass-Eckfrequenz: fHP = 200 Hz (HP = 1256,64 1/s)
1
Hochpass-Dmpfungsgrad: HP
2
~
b0 1
~
b1 2 0,8008 0,9754 1,5623

DSF 127 Krah WS 13/14


~
b2 0,6413
Skalieren von bi :

0,0221
b0 1 0,2797
0,0790

0,0221
b1 1,5623 0,4370
0,0790

0,0221
b2 0,6413 0,1794
0,0790

DSF 128 Krah WS 13/14


11.4 Digitale Filter hherer Ordnung
Werden mehrere FIR-Filter hintereinander (in Reihe) geschaltet (kaskadiert), so ent-
steht ein neues Filter hherer Ordnung. Kaskadierungen erhhen in der Regel die
Flankensteilheit und verringern gleichzeitig die Bandbreite. Bei der Implementierung
von kaskadierten FIR-Filtern ist es immer sinnvoll, die resultierende bertragungs-
funktion hherer Ordnung durch Ausmultiplizieren der Polynome zu berechnen. Das
verringert die notwendige Rechenleistung sowie das Quantisierungsrauschen. Kaska-
dierte FIR-Filter sind in der Regel nicht optimal fr die gegebene Ordnung.
Wie bei analogen Filtern knnen auch IIR-Digitalfilter hherer Ordnung durch eine
Reihenschaltung von Filtern erster Ordnung bzw. Filtern zweiter Ordnung mit konju-
giert komplexen Polen / Nullstellen zusammengebaut werden.
Bei der Implementierung knnen die Filter entweder einzeln implementiert und in
Reihe geschaltet werden z.B. zwei IIR Filter zweiter Ordnung oder es wird ein
Filter hherer Ordnung berechnet (ausmultipliziert) und implementiert.
Vorteile einer Implementierung von mehreren kaskadierten Filtern niedriger Ord-
nung:
Einfache, wiederverwendbare Algorithmen
Einfachere Stabilittsbetrachtung
Vorteile einer Implementierung von einem digitalen Filter hherer Ordnung:
Geringeres Quantisierungsrauschen bei Algorithmen mit Festkomma-
Arithmetik
Bentigt etwas weniger Rechenleistung

11.5 Realisierung digitaler Filter in Festkomma-Arithmetik

DSF 129 Krah WS 13/14


11.6 Multiraten-Signalverarbeitung
In modernen digitalen Systemen werden Signale hufig mit verschiedenen Abtastfre-
quenzen verarbeitet. Die Hauptoperationen der Multiraten-Signalverarbeitung sind
die Dezimierung (Dezimation) und die Interpolierung (Interpolation). Die Dezimie-
rung reduziert die Abtastfrequenz (Down-Sampler) und mit der Interpolierung kann
die Abtastfrequenz erhht werden (Up-Sampler), Bild 11.12.
uk xk

k k

Bild 11.12: Down-Sampler mit einem Dezimierungsfaktor von 3 (M = 3)


(jeder M-te Wert wird verwendet/weiterverarbeitet)
Wenn man ein analoges Signal viel hher als es das Abtasttheorem vorschreibt abtas-
tet, kann man ein weniger aufwndiges analoges Anti-Aliasing-Filter einsetzen. Das
Signal kann dadurch mit einem digitalen Filter hoher Ordnung bandbegrenzt werden
und danach ber ein Down-Sampling (Dezimation) auf die gewnschte Abtastrate
gebracht werden. Zum Beispiel kann man ein Audiosignal mit 44,1 kHz 4 = 176,4
kHz abtasten. Mit einem digitalen Tiefpass kann das Anti-Aliasing einfacher und ge-
nauer realisiert werden. Nach der Tiefpass-Filterung wird nur jeder vierte Wert aus
der Werte-Folge verwendet = digital abgetastet.
Ein besonders einfaches Dezimierungsfilter ist das SincK-Filter 1. Ordnung: Zur De-
zimierung wird einfach der Mittelwert berechnet und verwendet. In dem angefhrten
Beispiel wrde aus jeweils 4 Abtastwerten der Mittelwert berechnet. Man nennt das
auch eine gleitende Mittelwertbildung. Die Umsetzung kann z.B. mit einem FIR-
Filter 3. Ordnung erfolgen:

Gz 14 14 z 1 14 z 2 14 z 3 (11.16)

Alternativ kann dieser Mittelwertfilter auch mit einem IIR-Filter 4. Ordnung realisiert
werden:

1 z 4
Gz 1
(11.17)
1 z 1
4

DSF 130 Krah WS 13/14


Mit Hilfe der Polynomdivision kann gezeigt werden, dass die rekursive Form in die
nicht rekursive Form berfhrt werden kann. Der IIR-Filter kann vorteilhaft in drei
Teilbertragungsfunktionen aufgeteilt werden:
1
1. Summierung:
1 z 1
2. Differenzbildung: 1 z 4

3. Dmpfung:
Wird jetzt nach der Summierung das Signal durch Down-Sampling mit der ge-
wnschten, um den Faktor 4 geringeren Abtastfrequenz weiterverarbeitet (jeder 4.
Wert), so wird bei der Differenzbildung nicht ein um 4 (kurze) Abtastzeiten verzger-
tes Signal sondern ein um nur 1 (lange) Abtastzeit verzgertes Signal verarbeitet. Das
verringert den Aufwand bei der Implementierung erheblich, Bild 11.13.


a)

M
b)

Bild 11.13: Sinc-Filter 1. Ordnung (K = 1 bzw. Sinc1 M = 4)


a) ohne Down-Sampling
b) mit Down-Sampling Dezimierungsfilter

Oft werden SincK-Filter hherer Ordnung verwendet, die einfach durch entsprechen-
de Kaskadierung von K-Sinc1-Filtern erster Ordnung gebildet werden. Bei der Reali-
sierung werden erst die K-Summierer hintereinandergeschaltet, dann wird das Signal
mit der gewnschten (niedrigeren) Abtastrate digital abgetastet (Down-Sample =
jeder M-te Wert). Die Differenzbildung erfolgt dadurch mit deutlich geringerem
Aufwand, da nur eine langsame Verzgerung statt M schnellen Verzgerungen be-
ntigt wird. Bei Implementierungen mit Festkommaarithmetik ist es von Vorteil, (
weniger Quantisierungsrauschen) erst nach der Differenzbildung den Faktor ()K zu
bercksichtigen. Diese Kombination aus Filter und Down-Sampling (Dezimierung)
wird Dezimierungsfilter genannt.

DSF 131 Krah WS 13/14


11.7 Dezimierungsfilter (SincK-Filter) fr -Analog Digital Wandler
In -Wandlern sind SincK-Dezimierungsfilter eine weit verbreitete Filtertopologie
fr die Tiefpassfilterung und das gleichzeitige Down-Sampling. Der Hauptvorteil
dieses Filters ist seine einfache Realisierbarkeit ohne Multiplikationen, Bild 11.14.
Die Notch-Antwort kann bei richtiger Dimensionierung z.B. die Netzfrequenz voll-
stndig unterdrcken. Die Position der Bandsperre (Notch) ist direkt abhngig von
der Ausgangs-Datenrate. Das SincK-Filter ist nach K Taktperioden eingeschwungen
(Setling Time). Mit einer 50 Hz-Bandsperre (50 Hz-Datenrate) betrgt die Ein-
schwingzeit eines Filters dritter Ordnung 3/50 Hz, also 60 ms. Fr Anwendungen, die
bei geringerer Filterwirkung eine schnellere Einschwingzeit erfordern, kann ein Sinc-
Filter niedrigerer Ordnung verwendet werden. Die Einschwingzeit eines Sinc 1-Filters
betrgt eine Taktperiode. Bei 50 Hz also 1/50 Hz, oder 20 ms.
Integrator I Integrator II Integrator III

MDAT

MCLK

Down-
Sampling

MCLK / M
Differentiator I Diffrentiator II Diffrentiator III

Bild 11.14: Ein Sinc Filter besteht aus 3 Summierern, einem Down-Sampler (D-
Latch) und 3 Differenzierern [Ti]

Die bertragungsfunktion eines wie dargestellt realisierten SincK Filters mit der De-
zimierungsrate M lautet:
( ) ( ) (11.18)
Der Anfangswert der Sprungantwort h0 ist bei jeder Konfiguration 1, und bei machen
Implementierungen bedingt durch zustzlich verzgernde Taktzyklen identisch null.
Der Endwert h betrgt ohne weitere Skalierungen MK. Ein Sinc (K = 3 3. Ord-

DSF 132 Krah WS 13/14


nung) und einer Dezimierungsrate von M = 64 weist demnach einen Endwert von 64
= 218 auf. Durch eine Skalierung mit M-K erhlt man eine Tiefpass-
bertragungsfunktion mit dem Endwert 1 (bertragungsbeiwert KS = 1):

( ) ( ) (11.19)
sinc step response

1.0

0.8
SRD step response
0.6

0.4
sinc pulse response /
0.2 weighting function

0
M 1.5 M 2M 3M

M = 64 ; fs = 20 MHz 0 3.2 s 6.4 s 9,6 s

T1 LPF = 4.8 s

Bild 11.15: Sprungantwort eines Sinc Filters (K=3) [Ti]


Ideal Filter Signal Damping Insufficient Quantization Noise Rejection

M = 32

Bild 11.16: Amplitudengang eines Sinc Filters[Ti]

DSF 133 Krah WS 13/14


Da die Bandbreite durch das digitale Ausgangsfilter vermindert wird, kann die Aus-
gangs-Datenrate das Nyquist-Kriterium auch erfllen, wenn sie geringer als die ei-
gentliche Datenrate ist. Dies wird durch das Verwenden von nur wenigen Ausgangs-
werten und durch das Vernachlssigen der anderen erreicht. Dieser Vorgang wird als
Dezimierung um den Faktor M bezeichnet. M kann jede ganze Zahl annehmen, wo-
bei die Ausgangsdatenrate entsprechend dem Nyquist-Theorem doppelt so gro ist
wie die Signalbandbreite. Wenn der Eingang mit fa abgetastet wird, kann der gefilter-
te Ausgang eine Datenrate von fa/M ohne Informationsverlust annehmen.
Ideal Filter

64 128
M

Bild 11.17: Reale Filter erreichen nicht den theoretisch mglichen Rauschabstand
Modulator 2-er Ordnung, Sinc Filter 2. und 3. Ordnung [Ti ADS 1204]

blicherweise liegt der Dezimierungsfaktor M zwischen 16 (schnell) und 128 (ge-


nau). In Abhngigkeit von M ist die Datenwortbreite N der Dezimierungsstufen zu
whlen: (K Ordnung des Sinc-Filters)

(11.20)

Bei einem Sinc Filter (K = 3) mit einem Dezimierungsfaktor von M = 90 und einem
1-Bit (m = 1) Sigma-Delta Modulator ergibt sich . Da die Datenwort-
breite N eine ganze Zahl sein muss, ist hier N = 21 oder grer zu whlen.
[ct], LE, IO, VHDL

DSF 134 Krah WS 13/14


12 z Transformation

12.1 Definition der z-Transformation


Im vorangegangenen Kapitel wurde gezeigt, dass man einen Abtastsystem vollstn-
dig mit Hilfe von Abtastsignalen (-Impulsfolgen) beschreiben kann. Betrachtet man
die Laplace-Transformierte eines solchen Abtastsignals, so erhlt man eine mit den
Abtastwerten bewertete Potenzreihe in eTa s mit negativen Exponenten:

F ( s) f k e kTa s .
*
(12.1)
k 0

Fhrt man nun die Substitution

eTa s z (bzw. e Ta s z 1 ) (12.2)

ein, ergibt sich aus der komplexen Funktion F*(s) eine Potenzreihe F(z) mit der kom-
plexen Variablen z:

F ( z ) f k z k . (12.3)
k 0

Diese bezeichnet man als "z-Transformierte der -Impulsfolge f *(t)". So wird die z-
Transformation als eine diskrete Form der Laplace-Transformation definiert, die je-
dem Abtastsignal umkehrbar eindeutig eine Potenzreihe in eTa s z zuordnet.



z f * (t ) F * ( s) F ( z ) f k z k (12.4)
eTa s z
k 0

mit fk = 0 fr k < 0
Dabei stellt F(z) eine Potenzreihe in z mit negativen Exponenten dar, die man auch
als Laurent-Reihe bezeichnet.
Nach Gleichung (12.3) kann die z-Transformierte F(z) aber auch direkt aus der Wer-
tefolge {fk} gewonnen werden. F(z) wird dann als "z-Transformierte der Wertefolge
{fk}" bezeichnet. Somit ist auch jeder Wertefolge umkehrbar eindeutig eine Potenz-
reihe in z zugeordnet.

z{ f k } F ( z ) f k z k (12.5)
k 0

mit fk = 0 fr k < 0
Besteht eine Wertefolge {fk} aus den Abtastwerten eines zeitkontinuierlichen Signals
f(t), so kann man die Wertefolge auch als diskretes Signal {fk} bezeichnen.
DSF 135 Krah WS 13/14
Analog zur Laplace-Transformation werden fr die Korrespondenzen der z-
Transformation hufig folgende Schreibweisen verwendet:

z{ f k } F ( z )
z f * (t ) F ( z ) (12.6)

{fk} F(z) f*(t) F(z)

12.2 Rechenregeln der z-Transformation


Fr die z-Transformation existieren hnliche Rechenregeln wie fr die Laplace-
Transformation. Diese werden nachfolgend kurz aufgefhrt. Beispiele dazu sind im
Anschluss aufgefhrt.
Linearitt (Linearity)

c1 { f1, k }c2 { f 2, k } c1 F1 ( z )c2 F2 ( z ) (12.7)

Verschiebungsregel nach rechts (time shifting)


Verschiebung einer Wertefolge um m-Stellen nach rechts.

{fk-m} z-mF(z) mit m > 0 (12.8)

Verschiebungsregel nach links


Verschiebung einer Wertefolge um m-Stellen nach links.

m1

{fk+m} z m F ( z ) f i z i mit m > 0 (12.9)
i 0
Bei der Verschiebung nach links werden alle Werte, die in den negativen Bereich ge-
schoben werden, zu Null.

Dmpfungsregel

{ f k } ekTa F ( z e Ta ) mit beliebig komplex (12.10)

Differenzbildungsregel Rckwrtsdifferenz (first difference)


Durch Anwendung der Verschiebungsregel nach rechts

{fk} - {fk-1} 1 z F ( z)
1
(12.11)

DSF 136 Krah WS 13/14


Differenzbildungsregel Vorwrtsdifferenz
Durch Anwendung der Verschiebungsregel nach links

{fk+1} - {fk} ( z 1) F ( z ) f 0 z (12.12)

Summationsregel (accumulation)
k
{ f i }
1
F ( z ) (12.13)
i 0 1 z 1

Multiplikationssatz, Differentiationsregel fr die Bildfunktion

d
{kfk} z F (z ) (12.14)
dz

Faltungsregel (convolution)
Die Faltungsregel ist fr die Beschreibung von Abtastsystemen von entscheidender
Bedeutung, weil man damit Hintereinanderschaltungen linearer Abtastsysteme be-
schreiben kann. An dieser Stelle sei auf Kapitel 12.6 verwiesen, in dem nochmals
ausfhrlich auf die Anwendung der Faltung zur Behandlung von Abtastsystemen ein-
gegangen wird.
Ausgehend von der Definition der Faltung fr den zeitkontinuierlichen Fall
t t
f(t) g(t) = f ( ) g (t )d g ( ) f (t )d
0 0

f(t) g(t) F(s) G(s) (12.15)

lautet die Definition der Faltung fr den zeitdiskreten Fall


k k
{sk} = {fk} {gk} mit sk f i g k i g i f k i
i 0 i 0

{fk} {gk} F(z) G(z) (12.16)

DSF 137 Krah WS 13/14


Anfangswertsatz
existiert lim H ( z ) , so gilt:
z

h0 lim {hk } lim H ( z ) (12.17)


k 0 z

z
Mit H ( z ) G( z ) folgt:
z 1
h0 lim {hk } lim H ( z ) lim G( z )
k 0 z z

Endwertsatz
existiert lim {hk } und ist das System stabil, so gilt:
k

h lim {hk } lim ( z 1) H ( z ) (12.18)


k z1

z
Mit H ( z ) G( z ) folgt:
z 1
h lim {hk } lim ( z 1) H ( z ) lim G( z )
k z 1 z 1

In Tabelle 12.1 sind die Zusammenhnge zwischen den wichtigsten zeitkontinuier-


lichen Funktionen, ihren Laplace-Transformierten und den entsprechenden z-
Transformierten zusammengefasst.
Ta = Abtastzeit

Tabelle 12.1: Korrespondenzen der z-Transformation


(nchste Seite)

DSF 138 Krah WS 13/14


f(t) F(s) F(z)
1 z 1
(t)
s z 1 1 z 1
1 Ta z
t
s2 ( z 1) 2
1 z
e at
sa z e aTa
1 e aTa
t e at Ta z
( s a) 2 ( z e aTa ) 2
2 z e aTa
Ta z e aTa
at 2
t e
2
( s a) 3 ( z e aTa ) 3
n! n z
t e
n at aTa
( s a) n 1 an ze

at
a z (1 e aTa )
1 e
s ( s a) ( z 1)( z e aTa )

at bt
ba z (e aTa e bTa )
e e
( s a ) ( s b) ( z e aTa ) ( z e bTa )
z sin( Ta )
sin( t )
s2 2 z 2 2 z cos( Ta ) 1
s z z cos( Ta )
cos( t )
s2 2 z 2 z cos( Ta ) 1
2

2 s Ta z ( z 2 1) sin( Ta )
t sin( t )
(s 2 2 ) 2 z 2
2 z cos( Ta ) 1
2

t cos( t )
s2 2
Ta z ( z 2 1) cos( Ta )
(s 2 2 ) 2 z 2
2 z cos( Ta ) 1
2

at
z e aTa sin( Ta )
e sin( t )
( s a) 2 2 z 2 2 z e aTa cos( Ta ) e aTa

at
sa z 2 z e aTa cos( Ta )
e cos( t )
( s a) 2 2 z 2 2 z e aTa cos( Ta ) e aTa

DSF 139 Krah WS 13/14


12.3 Diskrete Grundsignale
Zur Beschreibung diskreter Systeme benutzt man, ebenso wie zur Beschreibung kon-
tinuierlicher Systeme, einige im Folgenden definierte Grundsignale.
a) Einheitssprungfolge
Entsprechend der kontinuierlichen Sprungfolge (t) definiert man fr den diskreten
Fall die Einheitssprungfolge {k} als:

1 ; fr k 0
{ k } . (12.19)
0 ; fr k 0
Die z-Transformierte der Einheitssprungfolge ergibt sich damit zu

1 ; frk0
z { k } f k z k mit f k =
k 0 0 ; frk0

z { k } z k .
k 0

Dies entspricht einer geometrischen Reihe mit dem Quotienten z -1. Fr den Fall
z 1 1 ist die Reihe konvergent, so dass man eine geschlossene Summenformel an-
geben kann:

1 z
z { k } 1
(12.20)
1 z z 1

b) Einheitsimpulsfolge (diskreter Einheitsimpuls)


Eine hnliche Bedeutung wie der Einheitsimpuls (t) bei der Analyse kontinuierlicher
Systeme hat die Einheitsimpulsfolge {k} bei der Analyse diskreter Systeme.
Sie ist definiert als:

1 ;fr k 0
{ k } (12.21)
0 ;fr k0
Betrachtet man die z-Transformierte der Einheitsimpulsfolge

1 ;fr k0
z { k } f k z k mit f k
k 0 0 ;fr k0

so reduziert sich diese zu:

z { k } 1 (12.22)

DSF 140 Krah WS 13/14


Entsprechend der Verschiebungsregel nach rechts ergibt sich eine um m Schritte
nach rechts verschobene Einheitsimpulsfolge zu:

z { k m } z m (12.23)

An dieser Stelle sei auf eine wichtige Eigenschaft der kontinuierlichen -


Impulsfunktion in Verbindung mit dem Faltungsintegral hingewiesen:

f(t) ( t - ) = f(t - ) ; fr > 0 (12.24)

Diese Eigenschaft zeigt sich auch bei der diskreten Einheitsimpulsfolge in Verbin-
dung mit der Faltungssumme:

{fk} {k-n} = {fk-n} ; fr k > 0 (12.25)

12.4 Rcktransformation
Die einer z-Transformierten zugehrige Wertefolge lsst sich nach verschiedenen
Methoden bestimmen. Bentigt man geschlossene Formeln, so bietet sich die Rck-
transformation mit Hilfe von Korrespondenztabellen oder ber eine Partialbruchzer-
legung an.
In der digitalen Regelungstechnik finden zwei numerische Verfahren Anwendung,
die Rckfaltung und das rekursive Lsen der Differenzengleichung. Diese Verfahren
liefern unmittelbar die der z-Transformierten zugehrige Wertefolge. Die erforderli-
chen Algorithmen knnen leicht am Rechner implementiert werden.
a) Rcktransformation durch Rckfaltung
Um die einer z-Transformierten F(z) zugehrige Wertefolge {fk} zu erhalten, muss
F(z) in Form einer Laurent-Reihe entwickelt werden:

F(z) = f k z k = f0 + f1z-1 + f2z-2 + . . . (12.26)
k 0

Da deren Koeffizienten fk den Werten der Wertefolge {fk} entsprechen

{fk} = { f0, f1, f2, . . . } ,

kann man diese unmittelbar aus der Laurent-Reihe bilden.


In vielen Fllen ist die z-Transformierte F(z) als Quotient zweier Polynome B(z) und
A(z) gegeben:

B( z ) b0 b1 z 1 ...bm z m
F z (12.27)
A( z ) a0 a1 z 1 ... an z n

DSF 141 Krah WS 13/14


Um die Koeffizienten fk zu ermitteln, multipliziert man beide Seiten von Gleichung
(12.28) mit A(z). ber die Reihendarstellung von F(z) erhlt man:

(a0 + a1z-1 + . . . + anz-n) (f0 + f1z-1 + f2z-2 + . . . )

= b0 + b1z-1 + . . . + bmz-m (12.28)

Dies entspricht einer Faltung:

{bk} = {ak} {fk} (12.29)

Fr die Koeffizienten der Wertefolge {bk} ergibt sich ber die Faltungssumme:
k k k k 1
bk ai f k i ak i f i a0 f k ai f k i a0 f k ak i f i (12.30)
i 0 i 0 i 1 i 0

Daraus ergibt sich die rekursive Formel zur Berechnung von fk:

1 k

fk bk ai f k i (12.31)
a0 i 1
bzw.

1 k 1

fk bk ak i f i . (12.32)
a0 i 0

Den Vorgang der Umkehrung der Faltungssumme bezeichnet man als Rckfaltung.
Sind die a- und b-Koeffizienten der z-Transformierten bekannt, so lassen sich die
Werte fk durch das folgende Schema berechnen:
b0
f0
a0
b1 a1 f 0
f1
a0
b2 a1 f1 a 2 f 0
f2 (12.33)
a0
.
.
.
bk a1 f k 1 a2 f k 2 . . . ak 1 f1 ak f 0
fk
a0

DSF 142 Krah WS 13/14


Anhand eines konkreten Beispiels wird in Kapitel 12.6 noch einmal auf die Bedeu-
tung der Rckfaltung fr die Regelungstechnik hingewiesen.
b) Rcktransformation durch rekursives Lsen einer Differenzengleichung
Die Koeffizienten fk einer z-Transformierten F(z) knnen auch durch rekursives L-
sen der Differenzengleichung gewonnen werden. Diese Rcktransformation bringt
die gleichen Ergebnisse wie die zuvor beschriebene Methode und ist auerdem weni-
ger aufwndig.
Besonders gut eignet sich diese Methode zur Berechnung der Ausgangswertefolge xk
eines linearen bertragungsgliedes als Antwort auf eine beliebige Eingangs-
wertefolge uk .
Ausgehend von einer z-Transformierten (a0 = 1)

X ( z ) b0 b1 z 1 ... bm z m
G( z) (12.34)
U ( z ) 1 a1 z 1 ... an z n

erhlt man durch Anwendung der Verschiebungsregel der z-Transformation die fol-
gende Differenzengleichung (xk-1 ist bekannt):
xk a1 xk 1 ... an xk n b0 uk b1 uk 1 ... bm uk m

Stellt man die Differenzengleichung nach xk um, knnen die Werte der Ausgangsim-
pulsfolge rekursiv berechnet werden.

xk b0 uk b1 uk 1 ... bm uk m a1 xk 1 ... an xk n (12.35)

Beide Verfahren arbeiten iterativ und sind deshalb zur Herleitung allgemeiner For-
meln ungeeignet. Zur Berechnung eines beliebigen Wertes der Ausgangsimpulsfolge
mssen fr beide Verfahren die vorangegangenen Werte von Ein- und Ausgangsgr-
e bekannt sein. Im Gegensatz zu geschlossenen Formeln knnen daher keine einzel-
nen Werte im Zeitbereich ohne deren Vorgeschichte berechnet werden. Bei der Beur-
teilung von Systemen interessiert jedoch hauptschlich der Einschwingvorgang. Die
Werte fr den eingeschwungenen Zustand knnen dann ber den Endwertsatz der z-
Transformation oder aus physikalischen Betrachtungen hergeleitet werden [2, 5, 13].

DSF 143 Krah WS 13/14


12.5 Zusammenschalten von bertragungsgliedern
Will man die z-Transformation auf Abtastsysteme anwenden, in denen kontinuierli-
che und diskrete bertragungsglieder sowie synchron arbeitende -Abtaster zusam-
mengeschaltet sind, so ist es von entscheidender Bedeutung fr das bertragungsver-
halten des Systems, an welcher Stelle ein -Abtaster wirkt. Besteht ein bertragungs-
system aus zwei hintereinander geschalteten bertragungsgliedern mit den Gewichts-
funktionen g1(t) und g2(t) , so ergibt sich die Gesamtgewichtsfunktion g(t) aus der
zeitkontinuierlichen Faltung zu:
g (t ) g1 (t ) g 2 (t )

Bei dem bergang in den z-Bereich ist zu beachten, dass man im allgemeinen zuerst
die beiden bertragungsfunktionen zusammenfassen muss, bevor man die z-
Transformierte bildet, da fr die z-Transformierte einer zeitkontinuierlichen Faltung
folgendes gilt:

zg1 (t ) g 2 (t ) zg1 (t ) zg 2 (t ) (12.36)

zG1 (s) G2 (s) zG1 (s) zG2 ( s)

Ist aber mindestens eine der miteinander gefalteten Gewichtsfunktionen eine -Im-
pulsfunktion der Form

g1,k (t k Ta )

g1 (t ) g1 (t )
k 0

bzw.

g 2 (t ) g 2 (t ) g 2,k (t k Ta ) ,

k 0

so ist die z-Transformierte des Faltungsproduktes gleich dem Produkt der z-


Transformierten der einzelnen bertragungsfunktionen:


z g1 (t ) g 2 (t ) = zg1 (t ) z g 2 (t )
* *
(12.37)

zG (s) G (s) zG (s) zG (s)


* *
1 2 1 2

In Tabelle 12.2 sind die wichtigsten Zusammenschaltungen von bertragungs-


gliedern und ihre z-bertragungsfunktionen aufgefhrt.

DSF 144 Krah WS 13/14


Signalflussplan z-Transformierte
Ta Ta
u(t) u*(t) x(t) x*(t)
g(t)
U(s) *
U (s) G(s) X(s) X*(s) X ( z ) G( z ) U ( z )
bertragungsglied mit vor- und nachgeschaltetem -Abtaster
Ta
u(t) u*(t) x*(t)
G(e-Tas)
U(s) U*(s) X*(s) X ( z ) G( z ) U ( z )
Differenzengleichungsglied mit vorgeschaltetem -Abtaster

G1(s)
Ta Ta
u(t) *
u (t) x(t) x*(t)

U(s) U*(s) X(s) X*(s) X ( z ) G1 ( z ) G2 ( z) U ( z )


G2(s)

Parallelschaltung mit vor- und nachgeschaltetem -Abtaster


Ta Ta Ta
u(t) u*(t) v(t) v*(t) x(t) x*(t)
G1(s) G2(s)
U(s) U*(s) V(s) V (s)* X(s) X*(s) X ( z ) G1 ( z ) G2 ( z ) U ( z )
Reihenschaltung mit zwischengeschaltetem -Abtaster
Ta Ta
u(t) u*(t) v(t) x(t) x*(t)

X(z)=ZG1(s) G2(s) U(z)


G1(s) G2(s)
*
U(s) U (s) V(s) X(s) X*(s)

Reihenschaltung ohne zwischengeschalteten -Abtaster


Ta Ta
u(t) u*(t) v(t) x(t) x*(t)
G1(s) G2(eTas)
U(s) U*(s) V(s) X(s) X*(s)

Ta Ta
u(t) u*(t)
G1(eTas)
v(t)
G2(s)
x(t) x*(t)
X ( z ) G1 ( z ) G2 ( z ) U ( z )
*
U(s) U (s) V(s) X(s) X*(s)

Reihenschaltung zweier bertragungsglieder, von


denen eines ein Differenzengleichungsglied ist
Ta
u(t) x(t) x*(t)

X(z)=ZG(s) U(s)
G(s)
U(s) X(s) X*(s)

bertragungsglied ohne vorgeschalteten -Abtaster


Ta Ta
u(t) v(t) v*(t) x(t) x*(t)
G1(s) G2(s)

X ( z ) = G2 ( z ) Z G1 (s) U (s)
U(s) V (s) V*(s) X(s) X*(s)

Reihenschaltung zweier bertragungsglieder ohne


vor- aber mit zwischengeschaltetem -Abtaster

Tabelle 12.2: Zusammenschaltung von bertragungsgliedern

DSF 145 Krah WS 13/14


13 Stabilittskriterien

13.1 Definition der Stabilitt


Ein lineares zeitinvariantes diskretes bertragungssystem, das durch die Beziehung
X ( z ) G( z ) U ( z )
bzw.
{xk } {g k } {u k }
gegeben ist, bezeichnet man als stabil, wenn zu jeder beschrnkten Eingangsfolge
{uk} auch die Ausgangsfolge {xk} beschrnkt ist.

13.2 Grundlegende Stabilittskriterien


Stabilittsbedingung im Zeitbereich
Unmittelbar aus dem oben definierten Stabilittsbegriff, den man auch als BIBO-
Stabilitt bezeichnet (Bounded Input - Bounded Output), lsst sich folgende hinrei-
chende und notwendige Stabilittsbedingung fr die Gewichtsfolge {gk} ableiten:
Ein diskretes bertragungssystem ist genau dann stabil, wenn fr die Summe der Im-
pulsantwortfolge gilt:

gk (13.1)
k 0

Dies bedeutet, dass die Sprungantwort gegen einen endlichen Wert strebt.
Stabilittsbedingung im z-Bereich
Im{z}
z-Ebene

Re{z}
stabil
1
Stabilittsrand instabil

Bild 13.1: Ein System mit der bertragungsfunktion G(z) ist stabil, wenn die Pole
von G(z) innerhalb des Einheitskreises der z-Ebene liegen.
Betrachtet man statt der Gewichtsfolge {gk} ihre z-Transformierte G(z), so erhlt man
eine notwendige und hinreichende Stabilittsbedingung im z-Bereich. Danach ist ein
diskretes bertragungssystem genau dann stabil, wenn alle Pole seiner rationalen

DSF 146 Krah WS 13/14


bertragungsfunktion G(z) innerhalb des in Bild 13.1 schraffiert dargestellten Ein-
heitskreises der z-Ebene liegen.
Da die Polstellen einer rationalen z-bertragungsfunktion G(z)
Z ( z ) b0 b1 z . . . + bm z m
G( z ) ; mit m n
N ( z ) a0 a1 z . . . + an z n
den Nullstellen des Nennerpolynoms N(z) entsprechen, gengt es, das Nenner-
polynom auf seine Nullstellen zu untersuchen.
Somit gilt:
Ein diskretes bertragungssystem ist auf jeden Fall stabil, wenn alle Nullstellen
des Nennerpolynoms N(z) innerhalb des Einheitskreises der z-Ebene liegen.
13.3 Algebraische Stabilittskriterien
Wie oben gezeigt, lsst sich die Stabilittsanalyse auf die Lage der Nullstellen des
Nennerpolynoms N(z) zurckfhren. Dabei interessiert nicht die genaue Lage der
Nullstellen, sondern lediglich die Information, ob sie innerhalb des Einheitskreises
liegen. Dazu gibt es in der Literatur eine Vielzahl von Verfahren, die allgemein als
Algebraische Stabilittskriterien bezeichnet werden. Das nachfolgend beschriebene
Verfahren liefert eine hinreichende und notwendige Bedingung dafr, dass die Null-
stellen von N(z) im Innern des Einheitskreises liegen.
Stabilittsgleichungen fr Polynome niedrigen Grades
Hierbei handelt es sich um Ungleichungen zwischen den Koeffizienten des Nenner-
polynoms N(z), die aus dem Kriterium von Schur-Cohn-Jury abgeleitet sind. Mit
Hilfe dieser Ungleichungen lsst sich auf relativ einfache Weise prfen, ob die Null-
stellen des Nennerpolynoms innerhalb des Einheitskreises der z-Ebene liegen.
Ausgehend von der z-bertragungsfunktion

Z ( z)
G( z ) ; mit m GradZ z n GradN z
N ( z)

und der allgemeinen Form des Nennerpolynoms

N ( z ) an z n an 1 z n 1 . . . + a1 z + a0

sind im Folgenden die notwendigen und hinreichenden Stabilittsbedingungen fr


Polynome bis zum 5. Grade zusammengestellt:

DSF 147 Krah WS 13/14


Polynom 1.Grades

N z a1 z a0 ; mit a1 0

mit N 1 0 und N 1 0 folgt: a1 a0 (13.2)

Polynom 2.Grades

N z a2 z 2 a1 z a0 ; mit a2 0

N 1 0 und N 1 0 folgt: a2 a0 a1 , a 2 a0 (13.3)

Polynom 3.Grades

N z a3 z 3 a2 z 2 a1 z a0 ; mit a3 0

N 1 0 , N 1 0 , a3 a 0 (13.4)

a1 a3 a0 a2 a32 a02

Polynom 4.Grades

N z a4 z 4 a3 z 3 a2 z 2 a1 z a0 ; mit a4 0

N 1 0 , N 1 0 , a 4 a0 (13.5)

a1 a4 a0 a3 a4 a0
2 2

a4 a0 a4 a2 a0 a3 a1 a1 a4 a0 a3 0

Polynom 5.Grades

N z z 5 a4 z 4 a3 z 3 a2 z 2 a1 z a0

N 1 0 , N 1 0 , a0 1 (13.6)

A2 A a0 a4 a1 a3 1 0

a0 a1 a3 a 2 a 4
A 2 mit A
1 a1 a0 a0 a 4
2

DSF 148 Krah WS 13/14


Stabilittskriterien fr Polynome hheren Grades
Die Herleitung des Stabilittskriteriums fr Polynome hheren Grades ber das Mat-
rizenverfahren ist sehr aufwndig. Daher greift man auf ein abgeleitetes Verfahren,
das sog. "Jury's Kriterium" oder "Reduktionsverfahren", zurck.
Wieder wird von der z-bertragungsfunktion

Z z
Gz ; mit GradZ z GradN z
N z

ausgegangen. Das Nennerpolynom hat die Form:

N z an z n an 1 z n 1 . . . a1 z a0

N z a
0 0,n z n a0,n 1 z n 1 . . . a0,1 z a0,0
E. I. Jury hat ein Verfahren hergeleitet, das hnlich dem Horner-Schema das Polynom
schrittweise reduziert. Es wird wie beim Hurwitz-Kriterium eine berprfung von
Bedingungen fr die Koeffizienten der charakteristischen Gleichung ohne eine expli-
zite Berechnung der Pole durchgefhrt. Der Unterschied zum Horner-Schema liegt in
dem Schtzen von Nullstellen. Durch das Verfahren kann man nach der Reduktion an
einer "resultierenden Null in der letzten Spalte" erkennen, ob die geschtzte Stelle
eine Nullstelle ist oder nicht.
zn z n 1 . z1 z0

N 0 z a0,n a0,n 1 . a0,1 a0,0


0
0 a0 , 0 0 a0,1 0 a0, n 1 0 a0, n
.

N1 z a1,n 1 . a1,1 a1,0


. . . . .
. . . . .
. . . . .

Mit dem Jury-Schema wird berprft, ob das gegebene Nennerpolynom Nullstellen


aufweist, die im Bereich von -1 und 1 liegen. Ist dies an irgendeiner Stelle nicht der

DSF 149 Krah WS 13/14


Fall, liegt Instabilitt vor. Nach Jury wird nach jedem Reduktionsschritt geprft, ob
der hchste Koeffizient grer ist als der Betrag des niedrigsten Koeffizienten. Ist
dies an irgendeiner Stelle nicht der Fall, so liegen nicht alle Nullstellen des Nenner-
polynoms im Innern des Einheitskreises.

Dabei gilt:

ai ,0
i ; mit i = 0, 1, 2, ...
ai ,n

Ist nun

a1,n 1 a1,0 ,

so ist G(z) nicht stabil und das Verfahren wird abgebrochen.


Gilt aber

a1,n 1 a1,0 ,

so wird auf die gleiche Weise fortgefahren, bis nur noch zwei Elemente in der Zeile
stehen.
Gilt nun endgltig

an 1,1 an 1,0 ,

so ist G(z) stabil, d.h. alle Polstellen der z-bertragungsfunktion liegen innerhalb des
Einheitskreises in der z-Ebene.

DSF 150 Krah WS 13/14


Beispiel: Stabilitt einer z-bertragungsfunktion
Gegeben sei eine z-bertragungsfunktion, deren Nennerpolynom als N(z) bezeichnet
wird.

N z z 5 2,5 z 4 2,83 z 3 1,819 z 2 0,634 z 0,091

Das Reduktionsverfahren wird wie zuvor beschrieben durchgefhrt. Zur Orientierung


wird in der rechten Spalte das aktuelle i aufgefhrt.

z5 z4 z3 z2 z1 z0 i
N0 1 -2,5 2,83 -1,819 0,634 -0,091 -0,091
-0,008 +0,058 -0,167 +0,261 -0,230 +0,091

N1 0,992 -2,442 2,663 -1,558 0,404 +0,407


-0,165 +0,636 -1,090 +0,996 -0,404

N2 0,827 -1,806 1,573 -0,562 -0,680


-0,382 +1,070 -1,230 +0,562

N3 0,445 -0,736 0,343 +0,771


-0,265 +0,568 -0,343

N4 0,180 -0,168 -0,933


Das Reduktionsverfahren wird nun beendet, da nur noch zwei Elemente in der letzten
Zeile stehen. Diese erfllen die Forderung a4,1 a4,0 (also 0,180 > 0,168) , so dass
dem Stabilittskriterium gengt wird. Damit liegen alle Nullstellen des Nenner-
polynoms N(z) innerhalb des Einheitskreises der z-Ebene [2].

DSF 151 Krah WS 13/14


14 Literaturverzeichnis
[1] Ackermann, J Abtastregelung
Springer Verlag, Berlin Heidelberg, 1988
[2] Fllinger, O. Lineare Abtastsysteme
R. Oldenbourg Verlag, Mnchen, 1990
[3] Skahill, Kevin VHDL for PROGRAMMABLE LOGIC
Addison-Wesley, Memlo Park, CA, 1996.
[4] Smith, Steven W. The Scientist and Enginees Guide to Digital Signal Processing
California Technical Publishing, 1997.
( free download: www.dspguide.com/pdfbook.htm )
[5] Isermann, R. Digitale Regelsysteme, Band I-II
Springer Verlag, Berlin Heidelberg, 1987
[6] Isermann, R. Identifikation Dynamischer Systeme, Band I-II
Springer Verlag, Berlin Heidelberg, 1987
[7] Kammeyer, K. D. Digitale Signalverarbeitung
Kristian, K. Teubner Verlag, Stuttgart, 1989
[8] Leonhard, W. Digitale Signalverarbeitung in der Me- und Regelungstechnik
Teubner Verlag, Stuttgart, 1989
[9] Naslin, P. Essentials of optimal control
Iliffe Books Ltd., London 1968
[10] Ogata, K. Discrete-Time Control Systems
Prentice-Hall International, New Jersey, 1987
[11] Oppenheim,A. V. Signale und Systeme
Willsky, A. S. VCH Verlagsgesellschaft, Weinheim, 1989
[12] Tietze, U. Halbleiter Schaltungstechnik
Schenk, Ch. Springer Verlag, Berlin Heidelberg, 1989
[13] Unbehauen, H. Regelungstechnik II
Vieweg Verlag, Braunschweig, 1989
[14] Krah, J. O. Skript Regelungstechnik, 2004
www.fh-koeln.de
[15] Schultz, G. Regelungstechnik
Oldenbourg Verlag, Mnchen-Wien, 2002
[16] Reichardt, J. VHDL-Syntese, Entwurf digitaler Schaltungen und Systeme,
Schwarz, B. 4. Auflage, Oldenbourg, 2007
[17] Kesel, F. Entwurf von digitalen Schaltungen und Systemen mit HDLs und
Bartholom, R. FPGAs, Oldenbourg, 2006
[18] Meyer-Bse, Uwe Digital Signal Processing with Field Programmable Gate Arrays,
Springer-Verlag, Berlin Heidelberg, 2007
[19] Higgins, Richard R. Digital Signal Processing in VLSI, (eBook ,free download)
Prentice-Hall, (Analog Devices), New Jersy, 1990.

DSF 152 Krah WS 13/14


15 Abkrzungen / Formelzeichen
ADC Analog Digital Converter
API Application Programmer Interface
ASIC Application Specific Integrated Circuit
CPLD Complex Programmable Logic Device
CPU Central Processing Unit
DAC Digital Analog Converter
DFT Discrete Fourier Transformation
DSP Digital Signal Processor
ENOB Effective Number Of Bits
FFT Fast Fourier Transformation
FIR Finite Impulse Filter (nicht rekursives Filter)
FPGA Field Programmable Gate Array
FPU Floating Point Unit
IIR Infinite Impulse Filter (rekursives Filter)
IO Input Output
IP Intellectual Property
IPC Industrial PC
IC Inter-Integrated Circuit
JTAG Joint Test Action Group
K Ordnung des Sigma Delta Modulators / Sinc-Filters
k Index
LAB Logic Array Block
LE Logic Element
LSB Least Significant Bit
LUT Look Up Table
LVDS Low Voltage Differential Signaling
M Oversampling Ratio / Dezimierungsfaktor
MSB Most Significant Bit
PAL Programmable Array Logic
PLD Programmable Logic Device
PLL Phase Locked Loop
PWM Pulse Width Modulation
RAM Random Access Memory
ROM Read Only Memory
SAR Successive Approximation
SNR Signal Noise Ratio
SOPC System On a Programmable Chip
SPI Serial Peripheral Interface
S&H Sample & Hold
Ta Abtastzeit (Sampling time)
tco clock-to-output Zeit (FPGA Output)
th hold Zeit (FPGA Input)
DSF 153 Krah WS 13/14
tsu set-up Zeit (FPGA Input)
tpd propagation delay Zeit (FPGA Input to Output)
TTL Transistor Transistor Logic
UART Universal Asynchronous Receiver and Transmitter
uk Eingangsfolge
USB Universal Serial Bus
VCO Voltage Controlled Oscillator
VHDL Very high speed integrated circuit Hardware Description Language
xk Ausgangsfolge
C Controller auch MCU Micro-Controlling Unit
Sigma-Delta (auch Delta-Sigma)

DSF 154 Krah WS 13/14


16 Index
Abtast-Halte-Glied ............................................................................................................................. 90
Abtasttheorem .................................................................................................................................... 93
Abtastung ........................................................................................................................................... 85
Amplitudendiskret ................................................................................................................................ 7
Analog-Digital-Umsetzer ................................................................................................................... 73
Anfangswertsatz ............................................................................................................................... 134
Anti-Aliasing-Filter ............................................................................................................................ 96
Application Specific Integrated Circuit (ASIC) ................................................................................. 13
Architecture (VHDL) ......................................................................................................................... 45
Clock-to-output time tco ..................................................................................................................... 20
Complex Programmable Logic Devices (CPLD) .............................................................................. 10
Custom Instruction ............................................................................................................................. 62
Dezimierungsfilter ........................................................................................................................... 128
Digital-Analog-Umsetzer ................................................................................................................... 66
Digitale Filter ................................................................................................................................... 107
Digitale Filter hherer Ordnung ....................................................................................................... 125
Down-Sampling ............................................................................................................................... 127
DSP Builder Advanced Blockset ....................................................................................................... 40
Embedded Memory ............................................................................................................................ 23
Embedded Multiplier ......................................................................................................................... 21
Endwertsatz ...................................................................................................................................... 134
Entity (VHDL) ................................................................................................................................... 45
Evaluation Board................................................................................................................................ 24
Field Programmable Gate Array (FPGA) .......................................................................................... 12
Geistiges Eigentum (IP) ..................................................................................................................... 56
Hold-up time th ................................................................................................................................... 20
Input / Output (IO) ............................................................................................................................. 17
Intellectual Property (IP) .................................................................................................................... 56
Logic Element (LE) ........................................................................................................................... 20
Matlab Simulink................................................................................................................................. 39
Megacore IP Library .......................................................................................................................... 57
ModelSim ........................................................................................................................................... 35
Multiraten-Signalverarbeitung ......................................................................................................... 126
Nichtrekursive Digitalfilter (FIR) .................................................................................................... 107
Phase Look Loop (PLL) ..................................................................................................................... 22
Process (VHDL) ................................................................................................................................. 45
Programmable Array Logic (PAL) ...................................................................................................... 9
Propagation-delay time tpd ................................................................................................................. 20
Quartus II (Altera) .............................................................................................................................. 31
Reale Abtastsysteme .......................................................................................................................... 99
Rekonstruktions-Filter ....................................................................................................................... 97
Rekursive Digitalfilter (IIR)............................................................................................................. 112
Set-up time tsu..................................................................................................................................... 20
Signale .................................................................................................................................................. 6
SignalTap II........................................................................................................................................ 38
Soft Core CPU Nios II (Altera).......................................................................................................... 58
Stabilittskriterien ............................................................................................................................ 142
System .................................................................................................................................................. 6
System on programmable Chip (SoPC) ............................................................................................. 54

DSF 155 Krah WS 13/14


Transistor-Transistor-Logik (TTL) ...................................................................................................... 8
VHDL................................................................................................................................................. 41
Wertdiskret ........................................................................................................................................... 7
Zeitdiskret ............................................................................................................................................ 7
z-Transformation .............................................................................................................................. 131
Analog-Digital-Umsetzer ............................................................................................................. 78
Digital-Analog-Umsetzer ............................................................................................................. 69
Modulator ..................................................................................................................................... 79

DSF 156 Krah WS 13/14