Ingenieur-Wissenschaftliches Zentrum. Informations-, Medien- und Elektrotechnik. Digitale Signalverarbeitung mit Fpga. der FH-Köln.

Größe: px
Ab Seite anzeigen:

Download "Ingenieur-Wissenschaftliches Zentrum. Informations-, Medien- und Elektrotechnik. Digitale Signalverarbeitung mit Fpga. der FH-Köln."

Transkript

1 Ingenieur-Wissenschftliches Zentrum der FH-Köln Fkultät für Informtions-, Medien- und Elektrotechnik Skript zur Vorlesung Digitle Signlverrbeitung mit Fpg von Prof. Dr.-Ing. Jens Onno Krh 4. Februr 4 DSF Krh WS 3/4

2 Inhltsverzeichnis Einleitung 5. Theoretische Grundlgen der digitlen Signlverrbeitung 5. Begriffe 6 Progrmmierbre Logikbusteine 8. Trnsistor-Trnsistor-Logik (TTL) 8. Progrmmble Arry Logic (PAL) 9.3 Complex Progrmmble Logic Devices (CPLD).4 Field Progrmmble Gte Arry (FPGA).5 Low Cost FPGA Reihe Cyclone von Alter 5.5. Input / Output (IO) 7.5. Logik Elemente (LE).5.3 Embedded Multiplier (DSP).5.4 Phse Look Loop (PLL).5.5 Embedded Memory 3 3 Nutzung von Evlution Bords 4 3. Ds Drei-Schichten-Modell 5 4 FPGA Tool Chin Vom Algorithmus zur Netzliste 3 4. Qurtus II (Alter) 3 4. ModelSim SignlTp II System Console MATLAB Simulink DSP Builder Advnced Blockset 4 5 VHDL 4 5. VHDL Entity VHDL Architecture VHDL Process Bsis Blöcke in VHDL P-Element I-Element 5 DSF Krh WS 3/4

3 5.4.3 PI-Element Tiefpss erster Ordnung Beobchter zweiter Ordnung 55 6 System on progrmmble Chip Geistiges Eigentum (IP) OpenCore Plus Megcore IP Librry Soft Core CPU Nios II Custom Instruction ein Mittelweg zwischen Hrdwre und Softwre FPGA integrierte Hrd-Core Prozessoren 69 7 Digitl-Anlog-Umsetzer - Digitl-to-Anlog Converter (DAC) 7 7. Schnelle Digitl-Anlog-Umsetzer 7 7. Abzählende Digitl-Anlog-Umsetzer Sigm-Delt Digitl-Anlog-Umsetzer 73 8 Anlog-Digitl-Umsetzer Kenngrößen von Umsetzern Kompenstionsverfhren (Wägeverfhren) Dul-Slope (Zählverfhren) Spnnungs-Frequenz-Umsetzungsverfhren Flsh-Anlog-Digitl-Umsetzer (Prllelverfhren) (Sigm-Delt) Anlog-Digitl-Umsetzer 8 9 Der Abtstvorgng Relisierung eines Abtstgliedes Mthemtische Beschreibung des Abtst-Hlte-Gliedes Ds Abtsttheorem von Shnnon Anti-Alising-Filter 9.5 Rekonstruktions-Filter Rele Abtstsysteme 3. Zeitverhlten eines Abtstsystems 5. Aufbu eines Prozessorbsierten Systems: µc, DSP und IPC 6.3 Aufbu eines FPGA bsierten Signlverrbeitungssystems DSF 3 Krh WS 3/4

4 Digitle Filter. Nichtrekursive Digitlfilter (FIR). Relisierung nicht rekursiver Filter 4.3 Rekursive Digitlfilter (IIR) 6.3. Rekursives Digitlfilter erster Ordnung 8.3. Rekursives Digitlfilter zweiter Ordnung 3.4 Digitle Filter höherer Ordnung 9.5 Relisierung digitler Filter in Festkomm-Arithmetik 9.6 Multirten-Signlverrbeitung 3.7 Dezimierungsfilter (Sinc K -Filter) für -Anlog Digitl Wndler 3 z Trnsformtion 35. Definition der z-trnsformtion 35. Rechenregeln der z-trnsformtion 36.3 Diskrete Grundsignle 4.4 Rücktrnsformtion 4.5 Zusmmenschlten von Übertrgungsgliedern 44 3 Stbilitätskriterien Definition der Stbilität Grundlegende Stbilitätskriterien Algebrische Stbilitätskriterien 47 4 Literturverzeichnis 5 5 Abkürzungen / Formelzeichen 53 6 Index 55 DSF 4 Krh WS 3/4

5 Einleitung Eine nloge Schltung zur Signlverrbeitung ist immer um ein Vielfches schneller ls eine prozessorbsierte Implementierung, z.b. mit einem µcontroller (µc) oder einem Digitlen Signl Prozessor (DSP). Während sich Softwrelösungen durch eine hohe Flexibilität und eine universelle Verwendung uszeichnen, sind Hrdwrelösungen meist uf ein spezielles Problem zugeschnitten und können eine Aufgbe ddurch meist deutlich schneller lösen. Field Progrmmble Gte Arrys (FPGA) vereinen die Vorteile der Ansätze. Einerseits hndelt es sich bei FPGAs um Hrdwre, die digitle Signle mit Bsisblöcken (Gtter, Logikelemente etc.) prllel verrbeitet, zum nderen ist die Konfigurtion der Hrdwrekomponenten per Softwre (z.b. VHDL) progrmmierbr. Drüber hinus können durch den Einstz eines Soft-Core-Prozessors uch weniger zeitkritische Teile eines Algorithmus effizient gelöst werden.. Theoretische Grundlgen der digitlen Signlverrbeitung Im Folgenden werden grundlegende Kenntnisse der klssischen (nlogen) Signlverrbeitung (ASS) und ihrer Methoden (Lplce etc.) vorusgesetzt. In einer kurzen Wiederholung wird uf die zur Beschreibung digitler Systeme (DSS) mit notwendigen theoretischen Grundlgen und mthemtischen Methoden (z-trnsformtion) eingegngen. Diese unterscheiden sich teilweise von denen der nlogen Signlverrbeitung, weil es sich bei einer digitlen Verrbeitung um ein Abtstsystem hndelt. Hierbei werden kontinuierlich blufende Vorgänge zeitdiskret, ds heißt nur zu bestimmten Zeitpunkten, betrchtet. Zeitdiskrete Vorgänge werden nicht mehr durch Funktionen f(t), sondern durch Folgen {x k } beschrieben. Anstelle der vielfch verwendeten Lplce-Trnsformtion wird zur Beschreibung von Abtstsystemen die z- Trnsformtion ls Spezilfll der Lplce-Trnsformtion eingesetzt. Jedoch erfolgt immer wieder der Bezug zur nlogen Signlverrbeitung, um uf Zusmmenhänge zwischen den jeweiligen mthemtischen Verfhren hinzuweisen. Denn obwohl die digitle Signlverrbeitung völlig neue Möglichkeiten bietet, but sie uf dem Erfhrungsschtz der wesentlich älteren zeitkontinuierlichen Technik uf. Nch der Einführung erfolgt eine kurze Beschreibung des Aufbus und der Funktionsweise eines digitlen Systems. Anschließend wird die prinzipielle Struktur von Abtstsystemen betrchtet und mittels Diskretisierung hergeleitet, um dnn den Abtstvorgng mthemtisch zu beschreiben. Abschließend werden grundlegende Implementierungen für zeitdiskrete Systeme behndelt. Auf dieser Grundlge werden Entwürfe von Abtstsystemen im Frequenzbereich vorgenommen. DSF 5 Krh WS 3/4

6 . Begriffe Vorb sollen noch einige wichtige Begriffe, die in der Technik häufig Verwendung finden, genuer erläutert werden. System Im Sinne von DIN 66 stellt ein System eine bgegrenzte Anordnung von ufeinnder einwirkenden Gebilden dr, die sich durch eine Hüllfläche von der Umgebung bgrenzen lssen. Durch zweckmäßiges Zusmmenfügen bzw. Unterteilen eines Gesmtsystems entstehen mehrere Teilsysteme. Bei der Betrchtung dieser Teilsysteme entstehen n den Hüllflächen Schnittstellen zwischen der Umgebung der Teilsysteme und dem System selbst. Über diese Schnittstellen knn ein Mterie-, Energie- oder Informtionstrnsport stttfinden. Signle Der Informtionsustusch in technischen Prozessen erfolgt über Signle. Dbei wirken die physiklischen Größen ls Signlträger. Mit Signlprmeter oder Informtionsprmeter bezeichnet mn diejenigen Kenngrößen des Signls, deren Werte o- der Werteverluf die Informtion drstellen. Signle lssen sich durch ihr Amplituden-Zeit-Verhlten klssifizieren, Bild.. Dbei unterscheidet mn zwischen kontinuierlichem und diskretem Verhlten. Den Übergng von zeitkontinuierlichen Signlen uf zeitdiskrete Signle nennt mn Diskretisierung. Der Übergng von mplitudenkontinuierlichen Signlen uf mplitudendiskrete Signle wird ls Quntisierung bezeichnet. Die Signlformen lssen sich wie folgt unterscheiden: - Signle, deren Werte sich zeit- und mplitudenkontinuierlich ändern und innerhlb eines bestimmten Bereiches beliebige Werte nnehmen können, nennt mn kontinuierliche, nloge Signle. - Signle, deren Werte zeitdiskret und mplitudenkontinuierlich sind, entstehen meistens durch Abtstung (S&H) nloger Signle. - Signle, deren Werte zeitkontinuierlich und mplitudendiskret (wertdiskret) sind, entstehen durch Quntisierung der Amplitude eines nlogen Signls. - Signle, deren Werte zeitdiskret und mplitudendiskret verlufen, nennt mn diskrete Signle. Zur Verrbeitung diskreter Signle in Digitlrechnern müssen die diskreten Werte kodiert werden. Die so entstndenen Signle bezeichnet mn ls digitle Signle. DSF 6 Krh WS 3/4

7 f(t) nlog f(t) bgetstet t t zeitkontinuierlich mplitudenkontinuierlich zeitdiskret mplitudenkontinuierlich f(t) quntisiert f(t) digitl t t zeitkontinuierlich mplitudendiskret (wertdiskret) zeitdiskret und mplitudendiskret (wertdiskret) Bild.: Amplituden-Zeit-Verhlten von Signlen Prozessrechner Entsprechend DIN 66 wird dmit ein Rechner bezeichnet, der mittels Prozessperipherie direkt n einen Prozess zur Erfssung, Verrbeitung und Ausgbe von Dten gekoppelt ist. D moderne Prozessrechner heute fst usschließlich us mikroelektronischen Schltkreisen bestehen, knn mn eine grobe Einteilung nch ihrer Größe und Leistungsfähigkeit vornehmen. So lssen sich - Mikrocontroller (µc) Einzelsysteme, - Industrie-PCs mit multi-core Prozessoren (IPC) für komplexe Systeme, - Digitle Signlprozessoren und spezielle Mikrocontroller (DSP, µc) und - FPGAs für extrem schnelle Systeme einsetzen. DSF 7 Krh WS 3/4

8 Progrmmierbre Logikbusteine. Trnsistor-Trnsistor-Logik (TTL) Die Trnsistor-Trnsistor-Logik (TTL) ist eine Schltungstechnik (Logikfmilie) für logische Schltungen (Gtter), bei der ls ktives Buelement der Schltung plnre npn-bipolr-trnsistoren verwendet werden. Hierbei wird meist ein Multi- Emitter-Trnsistor eingesetzt, so dss für mehrere Eingänge nur ein Trnsistor erforderlich ist. Bild.: 4-fch Nnd 74 TTL-Schltkreise werden üblicherweise mit einer Versorgungsspnnung von 3,3 oder 5 Volt betrieben. Kurzzeitig können llerdings bis zu 7 Volt Betriebsspnnung nliegen. Die untere Grenze ist bei,7 Volt. Eine hohe Spnnung ist ls High-Pegel (eine logische ) definiert, eine niedrige Spnnung wird ls Low-Pegel bezeichnet (eine logische ). Die Schltkreise sind so dimensioniert, dss Eingngsspnnungen U E <,8 V ls Low-Pegel, und U E >, V ls High-Pegel erknnt werden. Die Ausgngsspnnung U A beträgt typisch <,4 V für den Low-Pegel und >,4 V für den High-Pegel. Der sttische Störbstnd beträgt somit sowohl für High- ls uch für Low-Pegel mindestens,4 V. Logische Busteine in TTL-Technik hben den Vorteil, dss sie unempfindlicher gegenüber elektrosttischen Entldungen sind ls CMOS-Busteine. Dennoch sollen unbenutzte Eingänge der TTL-Schltkreise uf ein festes Potentil gelegt werden, dmit der Schltkreis korrekt rbeitet. Mn erkennt den Stndrd TTL-Schltkreis n einer Bezeichnung der Form 74ccxx, wobei "74" uf die Logikfmilie, cc uf die verwendete Technologie (z.b. cc = LS entspricht Low-power Schottky) und xx uf den Gtter-Typ (z.b. xx = "" entspricht NAND) verweist. Bild. zeigt den Aufbu eines TTL-NAND-Gtters. V ist der Multi-Emitter- Trnsistor, U und U sind die Eingngsspnnungen. Eine Besonderheit der TTL- DSF 8 Krh WS 3/4

9 Reihe besteht drin, dss unbeschltete Eingänge wirken, ls lägen sie uf einem High-Pegel (Pull-up defult = ).. Progrmmble Arry Logic (PAL) Bild.: Grundprinzip eines PAL Eine progrmmierbre logische Anordnung, häufig in deutschsprchiger Fchlitertur ls Progrmmble Arry Logic oder kurz PAL bezeichnet, ist ein Hlbleiterschltkreis, der us zwei hintereinnder geschlteten AND- und OR-Mtrizen besteht. Ein PAL wird zur Herstellung von Schltnetzen und -werken für logische Funktionen in disjunktiver Form verwendet. Die AND-Mtrix repräsentiert dbei die Konjunktionsterme. Die Auswhl der Konjunktionsterme erfolgt im Rhmen der Progrmmierung (meist mittels eines speziellen Gerätes) durch ds Entfernen von Schltgliedern us der AND-Mtrix. Die disjunktive Verknüpfung der Konjunktionsterme erfolgt mittels der ODER-Mtrix. Die technische Relisierung beider Mtrizen erfolgt llerdings häufig mittels NAND-Gliedern. 978 kmen die ersten vollständig konfigurierbren Logikbusteine nmens PAL mitsmt der Progrmmiersoftwre PALASM (=PAL Assembler) uf den Mrkt. Heutzutge werden PALs nur noch selten eingesetzt und sind fst vollständig durch CPLDs bgelöst worden. CPLDs besitzen so wie PALs keine Einschränkungen betreffend der Verwendbrkeit der UND-/ODER-Mtrizen im Eingngsbereich, sind elektrisch progrmmierbr und uch wieder löschbr. CPLDs sind wie FPGAs in einheitlichen Hrdwreprogrmmiersprchen wie beispielsweise VHDL zu progrmmieren und umfssen drüber hinus eine bestimmte Anzhl n Registern. Relisierung Ursprünglich wurde eine Mtrix us Sicherungen (engl. fuse) verwendet, wobei beim Progrmmieren entsprechend dem zu progrmmierenden Bitmuster, einzelne Sicherungen mit einem hohen Strom durchgebrnnt wurden. Eines der Probleme dieser Technologie wr, dss sich mit der Zeit - durch Kristllistions-Prozesse - einzelne Sicherungen wieder reprieren konnten. Bei der neueren Antifuse-Technologie besteht ds PAL us einer Diodenmtrix, in welcher jede Diode ein Bit repräsentiert. Im Gegenstz zur Fuse-Technologie, wo DSF 9 Krh WS 3/4

10 eine leitende Verbindung unterbrochen wird, sind hier die Dioden so verschltet, dss sie normlerweise den Strom sperren. Beim Progrmmiervorgng werden nun gezielt bestimmte Dioden mit einem sehr hohen Strom belstet. Diese Dioden werden ddurch zerstört und bilden ddurch eine leitende Verbindung. Nch dem Brennvorgng des PAL werden die geschriebenen Dten durch ein Bitmuster defekter und funktionierender Dioden repräsentiert. Diese Dten lssen sich nun beliebig oft uslesen (wobei der Lesestrom selbstverständlich unterhlb dessen liegt, welcher zur Progrmmierung verwendet wird). PALs gehören in die Gruppe der OTP-Buelemente (one time progrmmble). Die Anzhl der Ein- und Ausgänge muss dbei nicht identisch sein. Ein einml progrmmierter Bustein knn nicht mehr geändert werden, ws bei der endgültigen Serienfertigung nicht weiter störend ist. Als Weiterentwicklung der PALs kmen zuerst durch die Firm Lttice Semiconductor die wiederbeschreibbren Generic Arry Logic (kurz GAL gennnt) Busteine uf den Mrkt. Während der Entwicklungsphse elektronischer Schltungen wurden gerne GALs eingesetzt, d sie sich mehrfch löschen und neu progrmmieren lssen..3 Complex Progrmmble Logic Devices (CPLD) Heutzutge werden PALs und GALs kum noch eingesetzt und sind fst vollständig durch CPLDs bgelöst worden. CPLD steht für Complex Progrmmble Logic Device. CPLDs besitzen keine Einschränkungen betreffend der Verwendbrkeit der UND-/ODER-Mtrizen im Eingngsbereich, sind elektrisch progrmmier- und löschbr, sind wie FPGAs in einheitlichen Hrdwreprogrmmiersprchen wie beispielsweise VHDL progrmmierbr und umfssen drüber hinus eine bestimmte Anzhl n Registern. Bild.3: Complex Progrmmble Logic Device (CPLD) von Alter DSF Krh WS 3/4

11 CPLDs bestehen im Wesentlichen us folgenden Elementen: progrmmierbre AND/OR-Mtrix progrmmierbre Rückkopplung (z.b. für Zähler) Eingbeblock Ausgbeblock Ein-/Ausgbeblöcke können schnelle Speicher, wie Ltches, D-Flipflops oder Register, sein. Viele moderne CPLDs stellen progrmmierbre Ausgänge bereit, denen mn definierte Zustände (ctive low, ctive high, tri-stte) zuweisen knn. Der AND/OR-Mtrix ls Kern knn jede beliebige kombintorische Verknüpfung zugewiesen werden. Ein CPLD setzt sich us vielen Mkrozellen zusmmen. Die einzelnen Mkrozellen werden wiederum über Busse miteinnder verbunden. Der homogene Aufbu ermöglicht eine exkte Bestimmung der Durchlufzeiten, ws den wesentlichen Unterschied zu den FPGAs usmcht. Ein weiterer, llerdings nicht grundlegend notwendiger Unterschied ist die Konfigurtion: Durch Fertigung in EECMOS electroniclly ersble complementry metl oxide semiconductor bleibt nch der Konfigurtion ds Progrmm im CPLD und muss nicht bei jedem Strt neu gelden werden. Dieses Kriterium der Konfigurtion ist kein wesentliches Unterscheidungsmerkml zwischen CPLDs und FPGAs: So gibt es uch FPGA-Busteine m Mrkt welche ebenflls wie CPLDs EEPROM-Zellen zur Speicherung ihrer Konfigurtion beinhlten und keinen externen Speicher benötigen (z.b. Actel). Durch die hohe Anzhl von Eingängen pro Logikblock bieten sich CPLDs vor llem für die Lösung komplexer, prlleler kombintorischer AND/OR-Logik n wo viele Ein- bzw. Ausgänge vorhnden sind. Gleichzeitig sollte die Anzhl der notwendigen Speicher (Flipflops) bei der Anwendung von CPLDs eher gering sein, d pro Einbzw. Ausgbepins meist nur ein einziges Flipflop ls Register zur Verfügung steht. Digitle Schltungen welche viele Register erfordern, wie beispielsweise Schieberegister oder digitle Zähler, lssen sich dher nur bis zu einem gewissen Grd in CPLDs effizient relisieren. Bei steigender Zhl der Zellen werden die Mkrozellen mit loklen Leitungen zu übergeordneten Strukturen wie Logic Arry Blocks, LABs zusmmengefsst. Diese Bezeichnungen vriieren llerdings je nch Hersteller. Hersteller sind beispielsweise: Xilinx, Alter, Lttice, Actel, Lucent, Cypress, Atmel oder Quicklogic. DSF Krh WS 3/4

12 .4 Field Progrmmble Gte Arry (FPGA) Ein FPGA (Field Progrmmble Gte Arry) ist ein progrmmierbrer Hlbleiterbustein bzw. IC. Er beinhltet progrmmierbre logische Komponenten (LE: Logic Element), meist mit einer Pfdbreite von Bit, weshlb FPGAs ls feinkörnig rekonfigurierbr gelten und progrmmierbre Verbindungen zwischen diesen Komponenten. Ds Gnze ist ls Feld (field) bzw. Mtrix gefertigt. Die Komponenten können zu grundlegenden logischen Busteinen wie AND, OR, NOR, NOT und NAND, progrmmiert werden. Sie können ber uch zu komplexerer Logik wie Decoder, Encoder oder mthemtischen Funktionen progrmmiert und verknüpft werden. Ds FPGA wird nch der Herstellung vom Anwender progrmmiert. Er knn meist uch im System, lso in einer voll bestückten Pltine, progrmmiert werden, um Firmwre-Updtes einzuspielen. D die Funktion des FPGAs usschließlich durch die Konfigurtion festgelegt wird, knn der gleiche Bustein für viele verschiedene Schltungen verwendet werden. Er knn deshlb in großen Stückzhlen produziert werden, ws ihn bei Prototypen bis hin zu mittleren Stückzhlen kostengünstig im Vergleich zu einer nwendungsspezifischen integrierten Schltung (ASIC) mcht. FPGAs sind im Allgemeinen lngsmer ls ASICs und sie sind nicht beliebig tief bzw. kompliziert progrmmierbr. Vielmehr ist die Tiefe der progrmmierbren Logik von der Vorbereitung des Herstellers bhängig. Gemessen wird dies n der Anzhl der logischen Komponenten, der I/O Ports, der Flipflops, der Gtes usw. Bild.4: Ein FPGA der Firm Alter Aufbu und Struktur Bild.5: Logik-Element eines FPGAs, mit Look-Up-Tble (LUT) und Flipflop Die zentrlen Elemente eines FPGAs sind progrmmierbre Logikelemente. In diesen können logische Opertionen wie AND, OR, NOT, XOR relisiert werden. Außerdem ist ihnen ein Speicherelement nchgeschltet, ds ls Flipflop oder Ltch verwendet werden knn bzw. überbrückt wird, wenn eine rein kombintorische Funktion benötigt wird. Die kombintorische Logik wird meist durch sog. LUTs (Look- Up-Tble) gebildet, ds heißt in einem kleinen Speicher wird für jeden Zustnd der DSF Krh WS 3/4

13 Eingänge der Wert bgelegt, den der Ausgng nnehmen soll. Der LUT-Speicher knn uch ls Teil von Rechenfunktionen eingesetzt werden. An die Logikelemente sind Schltmtrizen ngeschlossen, mit denen über Leitungen die Verbindung zu nderen Elementen des FPGAs hergestellt wird. #Eingngs-/Ausgngs-Blöcke dienen der Kommuniktion mit der Außenwelt, über sie werden die Pins des FPGAs mit der Schltmtrix verbunden. Auch diese Blöcke können n die jeweilige Anwendung ngepsst werden, z.b. knn die Ausgngsspnnung n den jeweiligen I/O-Stndrd ngepsst werden (TTL/CMOS usw.). Anwendungsgebiete Reprogrmmierbre FPGA hben einen speziellen Bereich der Computertechnik erst in nutzbrem Umfng relisierbr gemcht: Selbst konfigurierende Systeme. Diese konfigurieren sich zur Lufzeit entsprechend der geforderten Eigenschften (z. B. spezielle mthemtische Algorithmen) um und erreichen dmit bisher unerreichte Verrbeitungsgeschwindigkeiten und Prllelität. Als besondere Herusforderung knn mn hierbei die Compiler-Entwicklung sehen. Ziel ist es, objektorientiert Logik-Kpzitäten bei Bedrf zur Benutzung zu konfigurieren und nch der Benutzung freizugeben. FPGAs werden gerne zur Echtzeit-Verrbeitung einfcher Algorithmen genutzt, speziell zur Signlverrbeitung (z. B. FFT, FIR), Protokoll-Abrbeitung (Ethernet MAC- Lyer, GPRS etc.), Kodierung, Fehlerkorrektur usw., ds heißt immer dnn, wenn die Berbeitung eines Dtenstroms nicht mehr von einer CPU bewältigt werden knn (Ausgngsdtenstrom gleich groß wie Eingngsdtenstrom, in der Regel mit einer gewissen Ltenz). Besonders in Bereichen, in denen Algorithmen bzw. Protokolle einer schnellen Weiterentwicklung unterliegen, ist die Verwendung rekonfigurierbrer FPGAs sttt ASICs ngebrcht (schnelle Mrktreife, nchfolgende Fehlerbehebungen, Anpssung n neue Entwicklungen), weil dnn nur noch die Firmwre ktulisiert werden muss, nsttt der Neunfertigung bzw. dem Austusch eines ICs. Die inzwischen erreichte Anzhl von Logikblöcken erlubt die Integrtion mehrerer eingebetteter Computersysteme in einen einzigen FPGA-Bustein inklusive CPU(s), Bussystem(en), RAM, ROM, RAM-Controller, Peripherie-Controller etc. FPGAs werden uch ls Entwicklungsplttform für den digitl-teil von ASICs und für Prozessoren verwendet. Unterschiede zu Prozessoren FPGAs bieten die Möglichkeit Informtionen mssiv prllel zu verrbeiten. Ddurch benötigen FPGAs nicht so hohe Tktfrequenzen wie Prozessoren, welche einen Progrmmfluss sequentiell verrbeiten. In einem FPGA können hunderte Additionen und Multipliktionen zur gleichen Zeit usgeführt werden, während selbst moderne Prozessoren mit SIMD-Befehlen nur einige wenige Opernden prllel verrbeiten können. DSF 3 Krh WS 3/4

14 Die Unterschiede zu CPLDs sind im Wesentlichen: durch Blockrchitektur und frei progrmmierbren Signlfluss ist bei FPGAs keine Abschätzung der Gtterlufzeiten möglich bei FPGAs, die uf SRAM-Technologie bsieren, erfolgt eine Konfigurtion bei jedem Strt (heutzutge meist vi JTAG oder vom Prozessor her us dem Flsh), bei CPLDs die uf Flsh- oder Antifuse-Technologie bsieren entfällt logischerweise die Konfigurtion. Vorteile gegenüber ASICs deutlich geringere Entwicklungskosten (im Gegenstz zu ASICs keine Msken mit sehr hohen Fixkosten benötigt) sehr kurze Implementierungs- und Updtezeiten einfch korrigier- und erweiterbr (rekonfigurierbr) geprüftes Silizium geringeres Designrisiko, d es nicht mehrere Monte vor der Hrdwreuslieferung fertiggestellt sein muss Nchteile gegenüber ASICs b höheren Stückzhlen höherer Stückpreis geringere Tktrten (ktuell verfügbr bis c. 6 MHz) geringere Logikdichte (c. -fcher Flächenbedrf gegenüber einem ASIC gleicher Technologie) höherer Energiebedrf (Stromverbruch) weniger Flexibilität ws Ausstttung z.b. mit eingebettetem Speicher oder nlogen Elementen ngeht, ber uch bei IO-Buffern. der kürzere Designzyklus und die Möglichkeit sehr spät noch Fehler korrigieren zu können, verleitet dzu, im Vorfeld weniger funktionle Tests durchzuführen. SRAM-bsierte FPGAs (ds sind z.b. die von den Mrktführern Xilinx und Alter ngebotenen) müssen nch jedem Systemstrt gelden werden. Es sind lso zusätzliche externe Komponenten notwendig, z.b. ein herstellerspezifischer Konfigurtionsbustein (EEPROM) oder ein Mikrocontroller mit zusätzlichem Flsh-Speicher, der den Initilisierungsvorgng durchführt. Ds bedeutet uch, dss die Funktionlität eines FPGAs nicht direkt nch dem Einschlten zur Verfügung steht, sondern erst nch dem Lden, ws je nch eingesetzter Technik einige Zeit duern knn. Dieser Nchteil gilt nur für einige FPGAs. DSF 4 Krh WS 3/4

15 .5 Low Cost FPGA Reihe Cyclone von Alter CPLDs Low-Cost FPGAs High-Density, Med-Performnce FPGAs With Trnsceivers High-Performnce, High-Density FPGAs With High-Speed Trnsceiver Options Structured ASICs Intellectul Property (IP) Design Softwre Embedded Soft Processors Development Kits Bild.6: Alter offers complete progrmmble logic portfolio [Alter] Integrted trnsceivers Up to 3% lower power Only power supplies K K logic elements (LEs) 95 Kbits embedded RAM DDR support Nios embedded processor 5K 7K LEs. Mbits embedded RAM 5 8 x 8 multipliers for DSP DDR support Nios II embedded processor 5% lower power 5K K LEs 4 Mbits embedded RAM 88 8 x 8 multipliers for DSP Higher performnce DDR support Nios II embedded processor Complete security solution Integrted PCIe Hrd IP 6K 5K LEs 6.5 Mbits of embedded RAM Up to 36 multipliers Nios II embedded processor Bild.7: Fetures to Meet the Needs of High-Volume Applictions (Quelle: Alter) DSF 5 Krh WS 3/4

16 FPGA Vlue Proposition Flexibility Updte your product immeditely to dd new fetures or increse performnce by re-progrmming the FPGA Cost reduction Integrte your digitl logic into one device Support mny products for one bse hrdwre design Esy mintennce/upgrde of products in the field Protection from obsolescence FPGA devices hve long lifetimes IP design cn esily be re-trgeted to new FPGA fmily Up to 5K LEs Up to 8 trnsceivers, up to 3.5 Gbps Up to 4-Mbps externl memory interfces Up to 36 embedded multipliers PCIe hrd IP block Up to 6.5-Mbits embedded memory Up to 475 flexible user I/O pins Up to 4 MPLLs Up to 4 PLLs MPLL multi-purpose phse-locked loop for trnsceivers Bild.8: Cyclone IV GX: key rchitecturl fetures [Alter] DSF 6 Krh WS 3/4

17 .5. Input / Output (IO) Single-ended I/O stndrds Cyclone IV GX & Cyclone IV E (.V) mx. clock rte Cyclone IV E (.V) mx clock rte Usge.5-V SSTL Clss I nd II.8-V SSTL Clss I nd II.8-V/.5-V/.-V HSTL I nd II 3.3-V PCI comptible 3.3-V PCI-X. comptible 3.3-V LVTTL, LVCMOS 3.-V/.5-V/.8-V LVTTL 3.-V/.5-V/.8-V/.5-V/.-V LVCMOS 67 MHz MHz 67 MHz 66 MHz MHz MHz 67 MHz 67 MHz 67 MHz 67 MHz 67 MHz 66 MHz MHz MHz 67 MHz 67 MHz DDR SDRAM DDR/DDR SDRAM QDR I/II SRAM Embedded Embedded System interfce System interfce System interfce Differentil I/O stndrds Cyclone IV GX & Cyclone IV E (.V) mx dt rte Cyclone IV E (.V) mx dt rte Comment LVDS Rx LVDS Tx RSDS/Mini-LVDS trnsmission LVPECL 875 Mbps 84 Mbps 44 Mbps 5 MHz 64 Mbps 64 Mbps 3 Mbps 5 MHz High-speed seril High-speed seril High-speed seril High-speed clocks * IP cores vilble, requires externl PHY devices ** ll dt rtes re subject to chnge pending chrcteriztion. Bild.9: Supported I/O Stndrds QN48 F69 F34 F484 F67 F896.5 mm x. mm 4 x 4. mm 9 x 9. mm 3 x 3. mm 7 x 7. mm 3 x 3 Device I/Os XCV Rs I/Os XVC Rs I/Os XCV Rs I/Os XCV Rs I/Os XCV Rs I/Os XCV Rs EP4CGX5 7 7 EP4CGX EP4CGX EP4CGX EP4CGX EP4CGX EP4CGX Bild.: Cyclone IV GX Pckge Pln DSF 7 Krh WS 3/4

18 Bnk Bnk Vriety of I/O Stndrds HSTL, SSTL Clss I nd II LVDS, RSDS, Mini-LVDS, PPDS LVCMOS LVTTL LVPECL PCI, PCI-X V comptible - On-chip termintion (On-chip Abschlusswiderstnd) - Adjustble slew rtes (Einstellbre Anstiegszeiten) - Eight bnks of every device in the fmily Ech cn implement ny supported I/O stndrd - Dedicted memory interfces QDR II, DDR, nd DDR Bnk 3 Bnk 4 Bnk 5 Bnk 6 Bnk 8 Bnk 7 Bild.: I/O Pin Fetures Complete flexibility to implement wide vriety of I/O stndrds In der Regel knn bei jeder der meist 8 Bänke ein I/O Stndrd genutzt werden. Ds muss beim Lyout berücksichtigt werden, d einige Pins der Bänke die entsprechende Spnnungsversorgung benötigen. DSF 8 Krh WS 3/4

19 Output Enble REG Dt Out Reg Dt Out Comb REG Pin Output Clock Dt In Comb Dt In Reg REG Clock Bild.: Blockschltbild eines I/O Elementes Im Rndbereich der FPGAs (Bild.8) befinden sich die sogennnten Ein- /Ausgngsblöcke. Diese sind uf dem Silizium-Chip jeweils mit einem Pd verbunden. Die Pds wiederum sind über Bonddrähte mit den Pins des IC-Gehäuses verbunden, Bild.. Die Input/Output-Blöcke (IOB) stellen die Verbindung zwischen den internen Signlen des FPGAs und den externen elektrischen Eingngs- und Ausgngssignlen dr. Es hndelt sich in der Regel um bidirektionle I/O Blöcke. Ein Ausgngssignl (Output) knn ktiv-high, ktiv-low oder tri-stte (hochohmig) sein. Im Flle von tri-stte knn ein Eingngssignl von ußen eingelesen werden (Input). In der Regel verfügen IOBs über Ltch-Flipflops, die optionl überbrückt werden können. Bild.3: Drstellung der Timing-Constrins für die I/Os DSF 9 Krh WS 3/4

20 Wenn ein Eingngssignl z.b. über ein D-Flipflop mit dem FPGA-Tkt synchronisiert werden soll, können mit einem Flipflop im IOB sehr kurze set-up- und hold- Zeiten (t su, t h ) erreicht werden (z.b. weniger ls 5 ns). Wird ein Ausgngssignl mit synchroner Logik generiert, so knn mit einem Flipflop im IOB eine sehr kurze clock-to-output Zeit (t co ) erreicht werden (z.b. weniger ls 5ns). Wird nur kombintorische Logik (gnz ohne Tkt!) verwendet, so werden die Flipflops im IOB überbrückt und es ergibt sich eine meist lngsmere (z.b. 5 ns) propgtion-dely-zeit (t pd ). Bei LVDS-Signlen ist druf zu chten, dss diese immer prweise verwendet werden müssen. Einige Signle, wie zum Beispiel Clock oder die Konfigurtion betreffende nutzen spezielle festgelegte Pins. Bei der Progrmmierung (VHDL bzw. BDF) wird festgelegt, ob es sich um einen Eingng (input OE = ), Ausgng (output OE = ) oder um einen Bidirektionlen I/O (bidir, OE =?) hndelt. Über Pin Assignment (Pin-Plnner) wird der gewünschte physiklische Pin zugeordnet..5. Logik Elemente (LE) LUT Chin Crry In Crry In Register Chin Locl Routing In In In3 In4 LUT REG Generl Routing Clock Generl Routing Crry Out Crry Out Register Chin Bild.4: Cyclone II Logic Element (Alter) Ein FPGA besteht us sehr vielen Logikelementen durch deren vielseitige Konfigurtion nhezu jedes beliebige Hrdwredesign relisiert werden knn, Bild.4. Die logischen Blöcke mit ihren Verbindungen sind mtrixförmig ngeordnet und können zu logischen Busteinen, wie AND, OR, NOR, NOT und NAND, progrmmiert werden. Die Progrmmierung von FPGAs in SRAM Technik erfolgt mit Hilfe so gennnter Look-Up-Tbles (LUT). Dbei wird der Speicher durch die Eingngssignle DSF Krh WS 3/4

21 Input Registers Output Registers dressiert und der hinterlegte Wert n dieser Speicherdresse entspricht dnn dem zum Eingngssignl gehörigen Ergebnis. In den Dtenblättern werden die LUTs in der Regel ls Red-Only-Memory (ROM) drgestellt. Die Umsetzung und Optimierung von (VHDL) Progrmmen in FPGA Logic Elemente erfolgt utomtisch, z.b. durch Qurtus II von Alter..5.3 Embedded Multiplier (DSP) Sign_X X Y 8 Sign_Y Clock Cler Bild.5: Embedded Multiplier Detils - 5-MHz Performnce Vor llem für Aufgben der digitlen Signlverrbeitung sind DSP-Blöcke (Multiplizierer) integriert, die resourcenschonender und schneller sind, ls solche, die us Logikzellen zusmmengesetzt sind. Die Nutzung von DSP-Blöcken erfolgt utomtisch durch den VHDL-Compiler. Ab Cyclone V stellt Alter Multiplizierer mit vribler Genuigkeit zu Verfügung. Mximl sind können zwei integer Zhlen mit 7-Bit plus Vorzeichen multipliziert werden. Ddurch können die Mntissen zweier Fließkommzhlen einfcher Genuigkeit (flot) in einem Schritt multipliziert werden. DSF Krh WS 3/4

22 .5.4 Phse Look Loop (PLL) Reference Clock N Lock Detect CP PFD VCO G LF G I/O & Globl Routing Globl Clock Network M EG I/O Buffer Bild.6: Cyclone II PLL Detils So gennnte PLLs besitzen einen internen, nlogen spnnungsgesteuerten Oszilltor (Voltge Controlled Oscilltor) VCO. Ein Phsendetektor vergleicht den Referenztkt mit dem vom VCO generierten Tkt. Ein Regler glättet dieses Signl und steuert dmit den VCO so n, dss die VCO-Frequenz dem Referenztkt nchgeführt wird. Werden Referenztkt und/oder VCO-Tkt vor dem Vergleich geteilt, so schwingt der VCO mit einer synchronen bgeleiteten Frequenz: Eine Tktufbereitung sorgt dfür, dss überll uf dem Chip EIN synchroner Tkt zu Verfügung steht, zusätzlich knn dieser mit Hilfe von Phse Locked Loop (PLL) Regelkreisen oft noch in der Phse verändert (verschoben) werden. Dmit ds Phsenruschen möglichst gering ist, besitzen die PLLs in den FPGAs üblicherweise eine seprte,5 V Spnungsversorgung (nlog & digitl). Die Einbindung der konfigurierbren PLL erfolgt über den MegWizrd Plug-In Mnger (Alter). Beim Design von Signlverrbeitungslgorithmen in VHDL sollten möglichst wenige Tkte verwendet werden. Am besten nur einer, zum Beispiel 5 MHz. Geringere Tktrten sollen über entsprechende synchrone Clock-Enble Signle generiert werden. Zum Beispiel knn für MHz jeder 5-te Clock enbled werden. DSF Krh WS 3/4

23 Embedded Memory Blocks.5.5 Embedded Memory 4-Kbit Blocks Identicl to to Strtix II Devices 5-MHz Performnce Fully Synchronous True Dul-Port Mode Simple Dul-Port Mode Flexible Cpbilities Mixed-Clock Mode Mixed-Width Mode Shift Register Mode Red-Only Mode Byte Enbles Initiliztion Support Port A DATA ADDR WREN CLK CLKENA OUT CLR Port B DATA ADDR WREN CLK CLKENA OUT CLR Bild.7: Cyclone II Embedded Memory Blocks In vielen FPGAs sind ußerdem noch zusätzliche fest verdrhtete Funktionen enthlten, wie z.b. Speicher (sog. Block RAM), der sich in vielfältiger Weise konfigurieren lässt. Rein konventionell orgnisierter Speicher knn hier untergebrcht werden und belegt ddurch keine LUTs bzw. Logikzellen. Der interne Speicher wird z.b. für Softcore-Prozessoren und für den FPGA-internen Logic Anlyzer SignlTp II (Alter) genutzt. Die Memory Blocks können uch ls echte dul Port Speicher genutzt werden. Zum Beispiel knn eine VHDL Logik Werte von einem AD-Wnder direkt in ds Memory schreiben, die dnn synchron (optionl uch mit nderem Tkt und einer nderen Dtenbusbreite) von einem Prozessor usgelesen werden können. Die Einbindung der konfigurierbren Memory Blöcke erfolgt z.b. über den Meg- Wizrd Plug-In Mnger (Alter). DSF 3 Krh WS 3/4

24 3 Nutzung von Evlution Bords So wie vor Jhren der Mikrocontroller und der DSP ihre festen Plätze bei den Elektronik-Entwicklern htten, finden sich seit einigen Jhren in den neu entwickelten Schltungen immer mehr FPGAs. FPGAs werden meist in einer Hochsprche zur Hrdwre-Beschreibung progrmmiert, in der Regel in VHDL (Very High-speed integrted circuit Hrdwre Description Lnguge). Die Progrmmierung eines FPGAs ist so ähnlich wie die Erstellung einer Leiterpltte. Sttt der Auswhl und der Verdrhtung entsprechender ICs, werden m Mrkt verfügbre IP-Blöcke usgewählt und verdrhtet. Stndrdbusteine wie z.b. die TTL-Logikfmilie 74XX werden von fst llen Entwicklungssystemen durch eine Bibliothek unterstützt. Für den Aufbu einer Ethernet-Schnittstelle werden dnn noch eine RJ45-Buchse, ein Übertrger zur glvnischen Trennung und ein Leitungstreiber (Trnsceiver: Sender und Empfänger) benötigt, der sogennnte PHY, der dnn mit den I/Os des FPGA verbunden wird, Bild 3.. Hrdwre PDO Softwre Stck SDO MAC Hub / Switch PHY RJ45 Bild 3.: Eine Ethernet Anschltung m MercuryCode, bestehend us RJ45- Stecker mit Übertrger, PHY, MAC und TCP/IP-Protokollstpel. Der Aufbu einer Testschltung uf einer Lochrsterpltine ist dbei llerdings kum noch möglich. Die meisten FPGAs hben sehr viele Anschlüsse, die oft ls Bll Grid Arry (BGA) ngeordnet sind und nicht ohne Hilfsmittel gelötet werden können. Zudem sind zum Betrieb sttt einer einzigen 5-V-Versorgungsspnnung mehrere Spnnungen erforderlich. Hier setzt ds FPGA Development Bord "MercuryCode" von EBV Elektronik n. Alles ws benötigt wird, um ein FPGA-Design rsch ufzubuen, ist uf der etw mm² großen Leiterpltte berücksichtigt, Bild 3.. DSF 4 Krh WS 3/4

25 Bild 3.: Ds FPGA Development Bords "MercuryCode" von EBV bietet uf einer Fläche von mm² lle Elemente für den Aufbu einer komplexen Elektronikschltung mit hoher Verrbeitungsgeschwindigkeit. 3. Ds Drei-Schichten-Modell Ds ngeführte Beispiel und viele ndere Anwendungen lssen sich mit einem Drei- Schichten-Modell beschreiben, Bild 3.3. Auf der untersten Schicht sind die Schnittstellen zur "Außenwelt" definiert. Dzu zählen Ethernet (PHY), RS-485-Trnsceiver oder 4-V-I/O. Hier werden die den jeweiligen Spezifiktionen entsprechenden Buteile verwendet. Die mittlere Schicht setzt sich zusmmen us digitlen Spezilschltungen, wie einem UART (Universl Asynchronous Receiver nd Trnsmitter) für RS 3 o- der dem MAC (Medi Access Controller) beim Ethernet. Diese Schicht wird bei FPGAs in einer Hrdwre Description Lnguge (z.b. VHDL) progrmmiert und knn oft ls IP-Core bezogen werden. Die Soft Core CPU Nios II von Alter gehört ebenflls der mittleren Schicht n. Die im FPGA relisierte mittlere Schicht wird uch ls Konfigurtion bezeichnet. Die oberste Schicht wird in Softwre relisiert, meist in C oder C++. Beim Ethernet gehört der TCP/IP-Protokollstpel dzu. Der Entwickler greift dbei über ein Appliction Progrmmer Interfce (API) uf die Ethernet-Funktionen zu. DSF 5 Krh WS 3/4

26 RMII 3 Schichten Modell Lyer 3 Softwre µcontroller / C TCP / IP stck Softwre IRQ for the UART Init & Config. FPGA IO (3.3 V) Lyer (IP) Progrmmble logic FPGA / VHDL Nios II Soft Core CPU Fst 3-Bit Avlon Bus & IP - IP cross connections MAC UART PIO User logic FPGA IO (3.3V) Lyer Specil hrdwre, Driver & trnsceiver PHY RS V IO Bild 3.3: Die Struktur eines FPGA Development Bords lässt sich in einem Drei- Schichten-Modell bbilden. Dbei beschreibt die erste Schicht die Schnittstellen zum Umfeld, die zweite Schicht zeigt die Hrdwre- Konfigurtion des FPGA, in der dritten Schicht wird die Softwre bgebildet, mit der sich der Funktionsumfng der Gesmtschltung relisieren lässt. 4 Logikelemente zur freien Verfügung Die FPGAs der Cyclone-III-Fmilie von Alter sind in 65-nm-Technologie relisiert und sind in verschiedenen Größen und Gehäusevrinten erhältlich [4]. Bei dem uf dem MercuryCode Bord verwendeten Typ "3C4" stehen 39 6 Logikelemente und 484 Anschlüsse zur Verfügung, dvon mximl 33 I/Os. Dmit lssen sich uch komplexe Anwendungen relisieren. Der FPGA-Bustein enthält einen Speicher mit 34 Kbit und 6 Hrdwre-Multiplizierer. Alle Cyclone FPGAs sind RAMbsierte Logikbusteine. Nch dem Anlegen der Versorgungsspnnungen muss der Bustein noch konfiguriert werden. Bei MercuryCode ist hierfür ein zusätzlicher serieller Speicherbustein (Flsh) mit einer Kpzität von 64 Mbit vorgesehen. Alle erforderlichen Versorgungsspnnungen (, V,,5 V, 3,3 V, 5 V und V) werden uf der Leiterpltte mit entsprechenden Schltreglern erzeugt. Versorgt wird ds MercuryCode Bord mit nur einer Gleichspnnung zwischen 8 und 4 V. DSF 6 Krh WS 3/4

27 5 MHz Systemtkt Ein Tktgenertor erzeugt den Systemtkt mit einer Frequenz von 5 MHz. Aus diesem Tkt lssen sich im FPGA mit mximl vier Phsenregelkreisen (PLL) ndere synchrone und whlweise uch phsenverschobene Frequenzen erzeugen. Diese werden dnn über die bis zu "Globl Clock Networks" uf dem Chip verteilt und den Bugruppen bereitgestellt. Industriegerechte 4-V-I/Os Bei vielen industriellen Anwendungen werden 4-V-Eingänge z.b. für Sensoren und 4-V-Ausgänge zur Ansteuerung von Relis benutzt. Die verwendeten Treiber sind Busteine, die für Anwendungen in der Automtisierungstechnik entwickelt wurden. Die 6 I/Os liegen uf einer Phönix-Klemmenleiste uf und können ls Eingng oder ls Ausgng benutzt werden. Hierfür ist jeweils ein 4-V-I/O mit zwei FPGA- Anschlüssen verschltet. Ein FPGA-Anschluss ist ls Eingng konfiguriert und signlisiert über einen Spnnungsteiler und eine Schmitt-Trigger-Schltung den Pegel des 4-V-I/Os. Der zweite FPGA-Anschluss ist ls Ausgng konfiguriert und ermöglicht ds Einschlten des kurzschlussfesten "High Side"-Schlters, Bild 3.4. Der Sttus des 4-V-I/Os wird zusätzlich mit jeweils einer roten LED hinter der zugehörigen Phönix-Klemme ngezeigt. Ein Schltpln mit den Detils knn bei der Firm Devbords im Internet bgerufen werden [5]. Bild 3.4: Schltung für die Anbindung der industriegerechten 4-V-Technik n die 3,3-V-I/Os eines FPGAs. DSF 7 Krh WS 3/4

28 Benutzerschnittstelle Zur Drstellung von Systemzuständen und zur Beeinflussung der Schltung bzw. zum Testen sind zwei Siebensegmentnzeigen, cht Leuchtdioden, vier Tster und ein Nvigtion-Key (fünf mechnisch verknüpfte Tster) vorgesehen. Weil SMD- LEDs verwendet werden, sind diese uch ls "Debug-I/O" verwendbr, d sich n den Kontkten der LEDs mit einem Tstkopf sehr gut messen lässt. Beispielsweise können Systemrektionszeiten so leicht gemessen werden. Über eine RS-3- Schnittstelle können Dten uf einem Terminl usgegeben werden. Ds Systemprogrmm HyperTerminl eignet sich dfür, benötigt ber bei neuen Lptops einen USB-RS-3-Adpter, weil dort meist die RS-3-Schnittstelle eingesprt wurde. Trnsceiver für USB On The Go (OTG) USB ist heutzutge die Stndrd-Schnittstelle zur schnellen Kommuniktion mit einem PC über kurze Distnzen. Der im MercuryCode Bord eingesetzte Treiberchip ISP54 von NXP unterstützt High-Speed (48 Mbit), Full-Speed ( Mbit), Low- Speed (,5 Mbit) und ds "On The Go"-Supplement (OTG) us der USB. Specifiction Revision.. Je nch Anwendung knn der USB-Treiber-Chip entweder im "USB Host"-Modus, etw zum Anschließen von Memory Sticks oder im "Peripherl"-Modus zur schnellen PC Kommuniktion betrieben werden. Die USB- Signle werden n einem Mini-USB-Stecker bereitgestellt, eine glvnische Trennung ist nicht vorgesehen. Vier RS-485-Trnsceiver Viele Feldbusse bsieren uf dem RS-485-Stndrd, der durch die differentielle Übertrgung eine recht störsichere Übertrgung mit bis zu 6 Mbit uch über größere Distnzen bietet. Der Abschlusswiderstnd hängt vom verwendeten Kbel b und beträgt meist c. Ω. Mit den vier Trnsceivern uf dem Evlution Bord knn z.b. eine Profibus- oder eine Interbus-S-Anschltung (zwei Trnsceiver) und eine digitle Encoder-Schnittstelle (zwei Trnsceiver) relisiert werden. Bei modernen Sin-Cos-Encodern, die EnDAT. oder BiSS unterstützen, sind keine weiteren nlogen Schltungen erforderlich. Ntürlich können die RS-485-Treiber uch für einfche inkrementelle Encoder genutzt werden. Zwei CAN-Trnsceiver CAN bsierte Feldbusse wie CnOpen oder DeviceNet verwenden ebenflls die RS- 485-Pegel. Zur Priorisierung der Nchrichten müssen diese zusätzlich in einer "Open Collector"-Schltung betrieben werden können. Dies bieten die beiden eingesetzten CAN-Trnsceiver "SN65HVD33" von Texs Instruments. Flls ds CAN-Segment m MercuryCode Bord endet, können mit Lötbrücken Abschlusswiderstände zugeschltet werden. DSF 8 Krh WS 3/4

29 Zwei Ethernet Anschltungen Zur Relisierung der Echtzeit-Ethernet-Feldbusse sind zwei vollständige /- Mbit/s-Ethernet-Anschltungen (Vollduplex) vorgesehen. Ddurch lässt sich uch die in der Automtisierungstechnik bevorzugte Linienstruktur relisieren. Die Übertrger zur glvnischen Trennung sind in den RJ45-Stecker integriert. Als Trnsceiver- Bustein (PHY) wird der DP8364 von Ntionl Semiconductor [6] verwendet, der ein "Auto Crossover" bietet. Um FPGA-I/O-Anschlüsse zu spren, wird der Treiber- Bustein im "Reduced Medi Independent Interfce"-Modus (RMII) betrieben. Durch die bereits im Treiber-Bustein implementierten IEEE-588-Funktionen lssen sich IP-Cores für Echtzeit-Ethernet-Feldbusse einfcher relisieren. TFT und Touch-Screen Controller Bei Bedrf knn n MercuryCode ein TFT-LC-Disply ngeschlossen werden. Die Dten werden über ein fünfknliges LVDS-Interfce übertrgen. An der Leiterkrte befindet sich ein -poliger Hirose-Stecker, der in der Regel für Steckverbindungen genutzt wird. Die vom TFT-LC-Disply benötigte Versorgungsspnnung von V wird ebenflls bereitgestellt. Für eine Auswertung der Touch-Screen-Signle wurde der Controller TSC von Texs Instruments vorgesehen. 3 bit Generl Purpose I/O Oft ist noch eine zusätzliche Hrdwre-Erweiterung gewünscht. Hierfür sind zwei doppelreihige Postenleisten vorgesehen. Tochterpltinen können entweder direkt ufgesteckt oder über Flchbndkbel verbunden werden. Genutzt wird der 3,3-V-"Low Voltge"-TTL-Stndrd. D die Stiftleisten direkt mit dem FPGA verbunden sind, muss bei der Verdrhtung sorgfältig gerbeitet werden: Zu hohe Spnnungen können ds FPGA zerstören. Externer Speicher Bei MercuryCode sind folgende FPGA-externen Speicher vorgesehen: 5 kbyte Flsh-Speicher (6-bit-Interfce) 8 kbyte SRAM (6-bit-Interfce) 6 Mbyte SDRAM (3-bit-Interfce) Der Flsh-Speicher ist mit einem 6-bit-Dtenbus versehen und wird huptsächlich vom Nios II ls ROM genutzt. Durch die begrenzte Dtenbreite wird jeder 3-bit- Zugriff in zwei 6-bit-Zugriffe ufgeteilt, wodurch die Systemleistung reduziert wird. Ds sttische RAM benutzt den gleichen Dten- und Adressbus und bremst deshlb den Nios II ebenflls us. Ds dynmische RAM nutzt einen seprten 3-bit breiten Dtenbus und einen gemultiplexten Adressbus. Bei SDRAM-Zugriffen wird der Nios II zwr nicht usgebremst, jedoch benötigt ds SDRAM mehr Strom und im FPGA werden zusätzliche Logikelemente für den erforderlichen Memory Controller benötigt. In der Stndrd- DSF 9 Krh WS 3/4

30 konfigurtion wird über einen Boot Loder zuerst der ROM-Code vom Flsh ins SDRAM gelden, dmit immer mit schnellen 3-bit breiten Zugriffen gerbeitet werden knn. Internet-Links: [] Fchhochschule Köln [] EBV Elektronik GmbH & Co KG [3] Avgo Technologies [4] Alter Corportion [5] devbords GmbH [6] Ntionl Semiconductors DSF 3 Krh WS 3/4

31 4 FPGA Tool Chin Vom Algorithmus zur Netzliste 4. Qurtus II (Alter) Entwurfsschritte und werkzeuge (Alter: Qurtus II / Nios II IDE) Erstellt wird die Konfigurtion für ein FPGA meist entweder mittels einer Hrdwre- Beschreibungssprche, zum Beispiel VHDL (*.vhd) oder Verilog, oder grfisch durch einen Schltpln (*.bdf) oder endlichen Automten. Auch mit den grfischen Progrmmiersystemen LbVIEW oder Mtlb Simulink ist eine Progrmmierung möglich. In den letzten Jhren gb es immer wieder Versuche, FPGAs mit der Progrmmiersprche C zu beschreiben (HrdwreC / SystemC) oder C in VHDL umzusetzen (CtoH-Compiler). Herstellerspezifische Sprchen wie Alter-HDL oder A- BEL-HDL werden ebenso genutzt wie UDL/I (Jpn). ) Schemtic Editor: Block digrm file b) Schemtic Editor: Grphic design file (stte mchine) c) Text Editor AHDL VHDL Verilog -- Qurtus II VHDL Templte -- Signed Adder lbrry ieee; use ieee.std_logic_64.ll; use ieee.numeric_std.ll; entity signed_dder is Bild 4.: Design Entry ) Block Digrm File b) Grphic Design File c) Text Editor DSF 3 Krh WS 3/4

32 Design Specifiction Design entry/rtl coding - Behviorl or structurl description of design LE M4K M5 I/O RTL simultion - Functionl simultion (ModelSim, Qurtus II) - Verify logic model & dt flow (no timing delys) Synthesis - Trnslte design into device specific primitives - Optimiztion to meet required re & performnce constrints - Qurtus II, Precision Synthesis, Synplify/Synplify Pro, Design Compiler FPGA Plce & route - Mp primitives to specific loctions inside Trget technology with reference to re & performnce constrints - Specify routing resources to be used Bild 4.: Schemtische Drstellung eines typischen FPGA Design-Flow bei Qurtus II (Alter) Zur Implementierung eingebetteter Systeme in FPGAs gibt es mittlerweile Werkzeuge, die eine Konstruktion uf Funktionsblockebene nbieten, z.b. der Qsys von Alter. Funktionsblöcke wie FIFOs, Prozessoren, serielle Schnittstellen, Ethernet-MAC- Lyer, RAM-Controller, Prllel-IO etc. werden vom Hersteller zur Verfügung gestellt. Diese Funktionseinheiten Softcore gennnt liegen im Quellcode (ggf. uch verschlüsselt) oder ls Netzliste vor und sind in der Regel prmetrisierbr (z. B. Budrte bei seriellen synchronen Schnittstellen oder FIFO-Tiefe oder -Breite der Prllelschnittstelle). Diese werden über Busse (Alter: Avlon, Network on chip) mit nderen Funktionseinheiten verbunden. Nch der Beschreibung innerhlb des Entwurfsflusses folgen weitere Schritte wie die funktionle Simultion, Synthese, die Implementierung (Plce nd Route) und lufzeitbsierende Simultion. Erst dnch sollte die implementierte Schltung m relen FPGA erprobt werden. DSF 3 Krh WS 3/4

33 MegWizrd Plug-in Mnger Eses implementtion of megfunctions Tools MegWizrd Plug-In Mnger Bild 4.3: Mit dem MegWizrd Plug-in Mnger knn Alter Intellectul Property (IP) konfiguriert und integriert werden.(mermory, PLL, ) Die Progrmmierung der Logikbusteine knn je nch FPGA unterschiedlich gelöst werden. Mn knn zwischen Methoden unterscheiden, die es ermöglichen, ds FPGA mehrmls zu progrmmieren und Methoden, die nur eine einmlige Progrmmierung zulssen. Bei den mehrmls progrmmierbren FPGAs wird die Konfigurtion in Speicherzellen (z.b. SRAM, EPROM, EEPROM, Flsh) gespeichert. Bei den einmlig progrmmierbren FPGAs (OTP: One Time Progrmmble) werden die physiklischen Eigenschften der Verbindungswege permnent festgelegt (Antifuse- Technologie). DSF 33 Krh WS 3/4

34 Design Files Anlysis & Elbortion Constrints & Settings Synthesis Functionl Simultion Constrints & Settings Fitter Functionl Netlist Assembler Progrmming & Configurtion files (.sof/.pof) TimeQuest Timing Anlysis EDA Netlist Writer Gte-Level Simultion *This is the typicl flow. Other module executbles will be dded if dditionl softwre fetures re enbled. Post-Fit Simultion Files (.vho/.vo) Bild 4.4: Signlflusspln eines vollständigen Compiltion-Flow bei Qurtus II FPGAs erfordern beim Schltungsentwurf ein synchrones Schltungsdesign. Ds bedeutet: An llen Flipflops in einer so gennnten Clock-Domin liegt der gleiche Tkt und gesteuert wird die Dtenübernhme in ein Flipflop nur über die zusätzlich vorhndenen Clock Enble-Eingänge (engl. gted clocks) und nicht über geteilte Tktsignle. Dies vermeidet schwer hndhbbre Lufzeiteffekte. Mnche FPGAs bieten spezielle Tktumschlter n, welche ds grntiert störungsfreie Umschlten (glitchfrei) zwischen verschiedenen Tktquellen im Betrieb erluben. DSF 34 Krh WS 3/4

35 4. ModelSim Zum Erstellen und Testen von prozedurlen Progrmmiersprchen wie z. B. C sind Debugger mit Single-Step-Funktionlität üblich. Der Progrmmierer knn die erstellten Progrmme Zeile für Zeile durchsteppen und sich jederzeit den Inhlt der Vriblen nsehen. Eine solche Vorgehensweise ist bei Hrdwre Description Lnguges (HDL) wie VHDL oder Verilog nicht möglich, d vieles unbhängig voneinnder prllel usgeführt wird. Zum Erstellen und Testen von HDL-Progrmmen werden die Signlverläufe üblicherweise simuliert. Ds knn uch mit der Qurtus II Entwicklungsumgebung von Alter erfolgen, ht ber den Nchteil, dss die Zeit zum Kompilieren sehr lng werden knn. Im Rhmen der kostenlosen "Alter Web Edition" gibt es mittlerweile eine ebenflls kostenlose Version von ModelSim mit eingeschränktem Funktionsumfng. ModelSim von Mentor Grphics ist eine mächtige Simultionsumgebung für HDLs. Diese erlubt die tktsynchrone oder timing-genue Verhltenssimultion von digitlen Logikschltungen. Anders ls reine Logiksimultoren erlubt ModelSim zusätzlich ds Berechnen und Drstellen von nlogen Signlen, d Integer und Dezimltypen intern ls normle Vriblen (Rel) gehndhbt und drgestellt werden. Somit lssen sich uch Algorithmen zur digitlen Signlverrbeitung simulieren, wenn mn die Dtentypen Signlbus oder Integer benutzt. Mit ModelSim knn die Funktion von VHDL-Code getestet und unbhängig von Gtterlufzeiten simuliert werden. Hierbei können sowohl einzelne Entitys seprt ls uch mehrere Entitys gemeinsm in einer Simultionsumgebung getestet werden. Alle Portsignle und Signle innerhlb der zu testenden VHDL-Module können hierbei visuell mit einem Zeitverluf (Wveform) drgestellt werden. Die visuelle Drstellung von Vriblen ist prinzipbedingt nicht immer möglich. Weil die Simultion wesentlich weniger Zeit in Anspruch nimmt ls ds Übersetzen eines Projektes in Qurtus II, knn die Entwicklungsgeschwindigkeit bei der VHDL- Progrmmierung durch Nutzung des ModelSim-Simultors erhöht werden. D lle Signle in der Wveform sichtbr sind, können Zusmmenhänge innerhlb einer Entity leichter überblickt werden, ws zur schnelleren Fehlersuche im VHDL-Code und der Erstellung von suberem Quellcode beiträgt. Um eine oder mehrere VHDL-Entitys zu testen, wird in ModelSim zusätzlich zu der zu testenden Entity ein Simultionsquellcode benötigt. Dieser wird uch ls Testbench bezeichnet und ebenflls unter *.vhd bgespeichert. Die Testbench enthält lle Informtionen, die zum Test der vorgegebenen Entity notwendig sind. So müssen lle Portsignle des zu testenden VHDL-Moduls in der Testbench deklriert und vorgegeben werden. Dzu gehören zum Beispiel die Vorgbe von Tktfrequenz, Reset- Signl und oder die Zustndswechsel von diversen Eingngssignlen. Zur Simultion einer VHDL-Beschreibung wir diese in ein binäres, simultorinternes Formt umgewndelt. Dfür wird der ModelSim integrierte VHDL-Compiler genutzt, DSF 35 Krh WS 3/4

36 der gleichzeitig die Syntx des Codes überprüft und die benötigten Bibliotheken einbindet. Nchdem festgelegt wurde, welche Signle betrchtet werden sollen, wird der Simultor gestrtet. Dieser legt eine Wve-Form-Dtei n, welche die Simultionsergebnisse enthält. Wird keine Dtei explizit ngegeben, so wird die Dtei vsim.wlf im ktuellen Verzeichnis ngelegt bzw. überschrieben. Diese Dtei bildet die Grundlge für eine Auswertung der Simultion. In der grfischen Oberfläche von ModelSim wird sie nch einer Simultion utomtisch gelesen. Bild 4.5 soll die grundsätzliche Vorgehensweise verdeutlichen. Bild 4.5: Abluf der Simultion in ModelSim DSF 36 Krh WS 3/4

37 Bild 4.6: Oberfläche von ModelSim Ds Simultionstool ModelSim knn jedoch nicht ls Progmmiererstz für die VHDL-Progrmmiersoftwre Qurtus II dienen. Es dient usschließlich zum besseren Verständnis, zur Fehlersuche und zur Beschleunigung der Projektentwicklung. Es knn jedoch keinesflls den Test eines Projekts unter relen Bedingungen mit relen FPGAs ersetzen. Dzu ist SignlTp II geeignet. DSF 37 Krh WS 3/4

38 4.3 SignlTp II Um FPGA interne Signle nzusehen, gibt es im Wesentlichen zwei Möglichkeiten:. Ds Signl uf einen freien (spre) I/O Pin legen.. Ds Signl mit SignlTp II, dem FPGA internen Logic Anlyzer, nsehen. Wie bei einem Oszilloskop wird eine Trigger-Bedingung festgelegt und der Verluf im FPGA internen RAM gespeichert. Off-line wird der im FPGA gespeicherte Verluf über die JTAG Schnittstelle innerhlb der Qurtus II Entwicklungsumgebung drgestellt. Bild 4.7: SignlTp II ermöglicht die Drstellung der Zeitverläufe von FPGA internen Signlen. Der in Qurtus II integrierte SignlTp II ist ein Logic-Anlyser bzw. ein Oszilloskop, welches uf einem FPGA ls Logik instnziiert werden knn. Als Speicher für die nfllenden Dten, uch Smples gennnt, dient On-Chip-Memory. Die Konfigurtion sowie ds Auslesen der Dten erfolgt über die JTAG-Schnittstelle, wodurch die Signlverläufe schließlich in Qurtus II visulisiert werden können. Der direkte Zugriff uf die FPGA-internen Signle bietet insbesondere dnn einen großen Vorteil, wenn externe Hrdwre ngeschlossen ist, die nicht mit simuliert werden knn. SignlTp II besitzt einige komplexe Funktionen, die sonst nur bei ufwändigen externen Anlysern zu finden sind, beispielsweise mehrstufig verkettete Trigger, die erst dnn die Aufzeichnung der Anlysedten strten, wenn mehrere Bedingungen uf gleichen oder unterschiedlichen Signlen zutreffen. Drüber hinus lssen sich mit Hilfe von Stte-Mchines einfche Protokolle nchbilden und zur Triggerung verwenden. Weiterhin werden uch externe Trigger unterstützt. Der Smple-Speicher lässt sich segmentieren, so dss Dten n mehreren Trigger- Zeitpunkten, die weiter useinnder liegen, ufgezeichnet werden können. Der größte Unterschied im Vergleich zu eigenständigen Logic-Anlysern liegt in der Größenbeschränkung des Smple-Speichers, durch die Verwendung von FPGA On- Chip Memory. DSF 38 Krh WS 3/4

39 4.4 System Console Mit der System Console knn mn über einen n den USB Blster / JTAG Adpter ngeschlossenen Avlon Bus uf Komponenten zugreifen. Optionl können mit einem Script die Vriblen über eine Dilogbox ngesehen bzw. modifiziert werden. DSF 39 Krh WS 3/4

40 4.5 MATLAB Simulink Mit den klssischen Entwurfstools, wie HDL-Compiler und Logiksimultoren, ist es einzelnen Entwicklern oder kleinen Tems kum noch möglich, ds wchsende Potenzil moderner FPGAs uszuschöpfen. Um dies zu ermöglichen, werden neue Genertionen von Entwurfstools entwickelt, die einen höheren Grd der utomtischen Systemsynthese und einfchere Systemsimultionen ermöglichen. Mn knn diese Entwicklung mit dem Übergng von der Assemblerprogrmmierung zur Hochsprchen-Progrmmierung von Prozessoren vergleichen. Die Assemblerprogrmmierung ermöglicht zwr einem erfhrenen Progrmmierer eine gute Ausnutzung der Prozessor-Ressourcen bezüglich Codegröße und Verrbeitungszeit. Der Aufwnd für diese Optimierung steigt jedoch bei komplexen Implementierungsufgben enorm n. Kum ein Progrmmierer übersieht die komplexen Pipelinestrukturen mit den Auswirkungen uf die Ausführungsgeschwindigkeit moderner Prozessoren. Die gleiche Argumenttion trifft inzwischen uch uf die FPGA-Progrmmierung zu. Die Implementierung mit Hrdwre-Beschreibungssprchen, wie VHDL und Verilog, ist für viele Funktionen sinnvoll. Mit steigender Leistungsfähigkeit der Tools ist es jedoch teilweise wirtschftlicher für komplexere Systeme High-Level Tools wie z.b. Mtlb Simulink einzusetzen. Die Nutzung von High-Level Entwurfswerkzeugen für die FPGA-Systemsynthese knn den Implementierungsufwnd drstisch reduzieren. Grundsätzlich existieren zwei Arten des High-Level Hrdwre-Entwurfs:. Bei der ersten Art werden die Funktionsblöcke grphisch miteinnder verbunden. Diese Art der Systembeschreibung ähnelt dem Signlflusspln bzw. dem Blockschltbild.. Die zweite Art bsiert uf Quelltexten. Diese Art der Systembeschreibung ähnelt dem klssischen Progrmmieren. Vertreter dieser Art SystemC (Open Source) und ds kommerzielle Tool Impulse C. MthWorks selbst bietet optionl zu MATLAB Simulink uch einen VHDL- Genertor n, den HDL-Coder. Mit Hilfe von Simulink werden die Funktionsblöcke grphisch editiert und simuliert. Der Coder rbeitet zusmmen mit der Fixed Point Toolbox und dem EDA Simultor Link. Leider rbeitet dieser Compiler noch (Stnd Dez. ) recht ineffizient. In einem Beispielprojekt benötigte ein Resolver Digitl Converter (RDC) c. 5 Logikelemente. Von Hnd in VHDL codiert, benötigte die gleiche Appliktion nur c. 3 Logikelemente. DSF 4 Krh WS 3/4

41 4.6 DSP Builder Advnced Blockset Um die Entwicklungskosten zu senken, ist es von entscheidender Bedeutung, die Entwicklungszeit zu verkürzen und ebenso die Anzhl genutzter Ressourcen (Logik Elemente) zu minimieren. Heute nutzen viele Entwickler eine Evluierungsumgebung für Signlverrbeitungslgorithmen wie Mtlb/Simulink. Aber der Schritt, den gewünschten Algorithmus für die Implementierung in einem FPGA mnuell in VHDL Code umzuwndeln, ist nicht einfch. Oft rbeitet der Simulink Coder nicht usreichend effizient. Hier bietet sich ds Alter-Tool DSP Builder Advnced Blockset n, welches diesen Konvertierungsprozess utomtisiert. Der DSP-Builder ist ein Zustz zu Simulink und erzeugt utomtisch HDL-Code. Dieser wird jedoch nicht Cross-kompiliert (Simulink VHDL), sondern die in einer Librry mitgelieferten DSP-Blöcke werden grfisch konfiguriert (ähnlich einer VHDL generic Anweisung) und verschltet. Im Rhmen dieser Konfigurtion können durch utomtisches Pipelining und Zeitmultiplexing zusätzlich Ressourcen gesprt werden, wenn die eingestellten Prmeter für f mx und Ltenzzeit ds erluben. Alter gibt n, dss die erreichbre Rechenleistung und Implementierungsgröße vergleichbr mit mnuell erstelltem HDL-Code sind. Mit den DSP-Builder Blöcken lssen sich zusätzlich zu Signlen in Festkomm- und Gnzzhlformt uch Floting-Point Signle verrbeiten. Bild 4.8: Der DSP-Builder wird in die Mtlb-Simulink Oberfläche integriert. Verschltet werden Blöcke us der DSP Builder Advnced Blockset Librry. DSF 4 Krh WS 3/4

42 5 VHDL Very high speed integrted circuit Hrdwre Description Lnguge (VHDL) ist eine Hrdwrebeschreibungssprche, vergleichbr mit einer Progrmmiersprche, mit der es einfch möglich ist, komplizierte digitle Systeme zu beschreiben. Geschichte VHDL wurde in den frühen 8er Jhren entwickelt und ist ds Produkt von Normierungsbestrebungen eines Komitees, in dem die meisten größeren CAD-Anbieter und CAD-Nutzer, ber uch Vereinigungen wie die IEEE, vertreten wren. Der größte nordmeriknische Anwender, ds US-Verteidigungsministerium, ht VHDL zum Durchbruch verholfen, indem es die Einhltung der Syntx von VHDL ls notwendige Vorussetzung für die Erteilung von Aufträgen gemcht ht. Es wr ds Ziel, Dokumenttion zu vereinheitlichen und den Dtenustusch von komplexen digitlen Systemen zu ermöglichen. Die erste kommerzielle Version wurde 985 veröffentlicht, sie entstnd us einer Zusmmenrbeit von IBM, Texs Instruments und Intermetrics. VHDL ist durch den IEEE 76 Stndrd von 993 genormt. Gegenüber dem ersten Stndrd von 987 (IEEE ) wurde die Syntx vereinheitlicht und ergänzt, ber uch einige Konstrukte der lten Syntx entfernt sowie sogr die Semntik einzelner Konstrukte verändert. Aktuelle Tools unterstützen derzeit die Version VHDL- und VHDL-8. Funktionsweise Bei VHDL rbeitet mn nicht mit einzelnen elektronischen Buteilen, sondern beschreibt ds gewünschte Verhlten einer Schltung uf einer höheren Abstrktionsebene. VHDL ermöglicht ds schnelle Entwickeln großer und komplexer Schltungen (z.b. eines Mikroprozessors mit über Mio. Trnsistoren), die hohe Effizienz erfordern (zeitlich wie ökonomisch) und unterstützt den Ingenieur bei llen Arbeiten. So knn ein System simuliert, verifiziert und schließlich eine Konfigurtion erstellt werden. Über die Netzliste können durch eine Konvertierung in einen geeigneten Bit- Strem FPGAs oder CPLDs gelden werden. Neben VHDL existieren Verilog und ds seltener genutzt ABEL. VHDL ht sich zum "Qusi-Stndrd" in Europ entwickelt, Verilog ist dgegen die meist verwendete Hrdwrebeschreibungssprche in den USA. DSF 4 Krh WS 3/4

43 Synthesefähiger und funktionler VHDL-Code Es ist notwendig, zwischen synthesefähigem und funktionlem Code zu unterscheiden, weil es Konstrukte gibt, die sich zwr simulieren lssen, ber nicht für eine rele Hrdwre übersetzten lssen. Ws us dem breiten Spektrum n funktionlem VHDL-Code ttsächlich synthesefähiger VHDL-Code ist, bestimmt primär ds zur VHDL-Synthese gewählte Übersetzungsprogrmm (Compiler / Synthesetool), z.b. Qurtus II. Funktionler, nicht synthesefähiger Code wird vor llem im Bereich der Simultion zur Erstellung sogennnter Test-Benches eingesetzt, teilweise uch um neue Verfhren wie beispielsweise ds Verhlten von Schnittstellenprotokollen vorb zu prüfen. Synthesefähigen VHDL-Code herzustellen ist im Regelfll ufwändiger und der Entwickler muss dbei uf große Teile der Sprchmöglichkeiten von VHDL bewusst verzichten und die Zielhrdwre und deren genuen Eigenschften näher kennen. So ist beispielsweise VHDL-Code zur Ausgbe von Texten uf den Bildschirm nicht synthesefähig. Ebenso sind Floting Point Signle (rel) nicht synthesefähig. Beispiel: D-Flipflop (behviourl) nicht synthetisierbr (Testsignle - ModelSim) ENTITY DFlipflop IS PORT(D,Clk : IN Bit ; Q : OUT Bit ); END DFlipflop; ARCHITECTURE Behv OF DFlipflop IS CONSTANT T_Clk_Q: time := 4.3 ns; BEGIN PROCESS BEGIN WAIT UNTIL Clk'EVENT AND Clk'Lst_Vlue='' AND Clk=''; Q<=D AFTER T_Clk_Q; END PROCESS; END Behv; DSF 43 Krh WS 3/4

44 Beispiel: D-Flipflop (behviourl) synthetisierbr (Schltung / FPGA) ENTITY DFlipflop IS PORT( D,Clk, nresetasync : IN Bit; Q : OUT Bit); END DFlipflop; ARCHITECTURE Behv OF DFlipflop IS BEGIN PROCESS(Clk,nResetAsync) BEGIN IF nresetasync = '' then Q <= ''; ELSIF Clk'EVENT nd Clk = '' then Q <= D; END IF; END PROCESS; END Behv; Simultion und Verifiktion von VHDL-Code Mittlerweile ht sich VHDL ls Stndrd für die Simultionsmodelle von IP (Intellectul Property) durchgesetzt. In einem Simultionsmodell wird der eigentlich zu testende und synthesefähige VHDL-Code bzw. VHDL-Modul eingebettet und die Hrdwre drum in einem sogennnten Test-Bench möglichst getreu nchgebildet. Ds Simultionsmodell wird dbei meistens in nicht synthetisierbrem VHDL verfsst, ws ds Modellieren des Zeitverhltens oder bestimmter physiklischer Prmeter der externen Schltungsteile erlubt. Ein Beispiel soll diesen Vorgng erläutern: Bei der Erstellung eines SDRAM-Controllers, einer Schltung zum Ansteuern von SDRAM-Speichermodulen, wird ds SDRAM mit seinem Speicher und sein zeitliches Verhlten im Simultionsmodell möglichst genu wie die rele SDRAM- Hrdwre nchgebildet. Dmit knn der Controller in seiner logischen Funktion simuliert und uch ds Verhlten in den zeitlichen Extrembedingungen verifiziert werden, ohne dss dfür rele Hrdwre notwendig wäre. Bei Bedrf wird der SDRAM- Controller funktionell entsprechend nchgebessert, um die Simultionsrndbedingungen zu erfüllen. Erst wenn diese Simultion erfolgreich wr, wird der so erstellte SDRAM-Controller uf Hrdwre, beispielsweise in einem FPGA, in Kombintion mit relem SDRAM-Busteinen in Betrieb genommen. Dmit ist der Entwicklungsprozess von IP-Cores weitgehend unbhängig von konkreter Hrdwre. Die Erstellung von guten Test-Benches, die entsprechende Aussgen zulssen, ist dbei eine meist unterschätzte Aufgbenstellung, welche c. 5% der gesmten Entwicklungszeit für IP-Cores usmcht. Sie ist ber, neben systemtischem Vorgehen DSF 44 Krh WS 3/4

45 in der Entwicklung, wesentlich effizienter ls frühzeitig mit meist nicht uf Anhieb funktionierenden Schltungsteilen uf rele Hrdwre zu gehen die dnn nur schwer und umständlich in llen ihren Prmetern verifiziert werden können. Weiter unterscheidet mn bei der Simultion unterschiedliche Simultionsrten:. Eine reine Verhltenssimultion (engl. behviorl simultion), zum Beispiel mit Modelsim (Kpitel 4.), des zu implementierenden IP-Core. Dbei werden die funktionellen Zusmmenhänge in der Schltung grundsätzlich geprüft. Beispielsweise ob logische Verknüpfungen einzelner Signle pssen. Der Vorteil besteht im geringen Rechenufwnd, womit zeitlich längere Abschnitte simuliert werden können.. Eine Simultion des fertig pltzierten IP-Core (engl. post-fit simultion). Dbei wird der IP-Core zunächst synthetisiert, geroutet und pltziert, dnn werden us der fertigen Schltungsnordnung z.b. mit Qurtus II die Netzliste und die zugehörigen Lufzeitinformtionen (timing) der Zielhrdwre ermittelt. Die Anwendung der Lufzeitprmeter uf den VHDL-Code (engl. bck nnottion) wird entweder von entsprechenden Werkzeugen übernommen, die drus nicht synthetisierbren VHDL-Code erzeugen, oder sie geschieht unmittelbr im Simultionsprogrmm. Der Vorteil besteht in dem genueren Modell, um beispielsweise Zeitblufprobleme in der Zielhrdwre bereits in der Simultion erkennen zu können. Nchteilig ist der dmit verbundene hohe Rechenufwnd und die uch uf schnellen Rechnern sehr lngen Simultionszeiten, die sich je nch Komplexität der Schltung im Bereich von einigen Tgen bewegen können. Weiter knn zwischen Test-Benches mit eigener Fehlererkennung und Test-Benches, welche nur den reinen Zeitverluf drstellen, unterschieden werden. Im ersten Fll werden im Test-Bench die zu bestehenden Prüfungen ufgrund von fixen Entscheidungen ( Prüfvektoren ) festgelegt und utomtisch durch entsprechende Textusgben festgestellt. Die Erstellung solcher Testbenches ist ufwändiger, ber bietet den Vorteil, bei späteren Änderungen leichter die Veränderungen der Implementierung vollständig und sicher prüfen zu können (engl. regression test). Im zweiten Fll wird die zu simulierende Schltung in ihrem Zeitverhlten (engl. wve digrm) nur drgestellt, ohne dss eine utomtische Bewertung der Ausgbe durchgeführt wird. Die Entscheidung, ob ds Verhlten der Schltung psst oder nicht, obliegt jener Person welche dieses Zeitverhlten mnuell überprüfen muss. Der Vorteil dieser Methode ist die Einfchheit bei der Erstellung der Test-Benches, weshlb sie vor llem bei einfchen Schltungen ngewendet wird. Der Nchteil ist, dss dbei Fehler in der Implementierung durch die mnuelle Prüfung leicht übersehen werden können, vor llem bei komplexen Schltungen. DSF 45 Krh WS 3/4

46 5. VHDL Entity Die Entity (Funktionseinheit, Instnz) beschreibt die Schnittstelle eines VHDL- Funktionsblockes nch ußen ähnlich der PIN-Belegung einer Integrierten Schltung (IC). Deklriert werden die Bezeichnung (ASCII) und Typ der Anschlüsse (IN, OUT, INOUT, BUFFER). Mit einer GENERIC Deklrtion können ähnlich der C #define Anweisung Konstnten definiert werden. Ddurch knn beispielsweise die Dtenbusbreite eines Busteins prmetriert werden. Signle werden in der port-anweisung deklriert. Entspricht dem IC-Gehäuse. Bild 5.: Die Entity beschreibt die Signle nch ußen IC PINs 5. VHDL Architecture Die Architecture (Buweise, Struktur) beschreibt die Funktionlität bzw. ds Innenleben eines VHDL-Funktionsblockes. Es existiert mindestens eine Architecture pro Entity. Lokl definierte Signl-, Konstnten- und Typdeklrtionen sind nur in dem vorliegenden Architekturrumpf gültig. Anweisungen innerhlb einer Architecture sind nebenläufig (werden prllel usgeführt). Einzelne Architectures einer Entity sind ebenflls nebenläufig. Entspricht dem Chip im Gehäuse eines ICs. Bild 5.: Die Architecture beschreibt die Funktionlität 5.3 VHDL Process Eine Architecture knn einen oder mehrere Process beinhlten. Alle Prozesse einer Architecture werden nebenläufig bgerbeitet. Zusätzlich knn kombintorische bzw. sequentielle (tktgesteuerte) Logik verwendet werden. Die Abrbeitung innerhlb eines Prozesses erfolgt sequentiell: Vriblen können für Zwischenrechnungen genutzt werden. Bei flnkengetriggerten Signlen ist die letzte Zuweisung mßgebend. DSF 46 Krh WS 3/4

47 Signle der Sensitivity-List zeigen n, uf welche Ereignisse die Berbeitung des Prozesses regiert. Innerhlb eines Prozesses verwendete Verzweigungen und Schleifen (z.b: if, cse, for, while) werden vom VHDL Compiler in prllel usgeführte Logik umgesetzt. Bild 5.3: Der Process beschreibt Teile der Funktionlität Architekturrumpf: ARCHITECTURE Rumpfnme OF Busteinnme IS - An dieser Stelle können optionl diverse Deklrtionen für Typen, Konstnten und Signle vorgenommen werden. Im Gegenstz zu den Busteindeklrtionen sind diese hier nur für den vorliegenden Architekturrumpf gültig. BEGIN - Anweisungen, die ds Verhlten oder die Struktur des Busteins beschreiben. END Rumpfnme; DSF 47 Krh WS 3/4

48 Bild 5.4: Csting und Conversion mit der Librry ieee.numeric_std.ll DSF 48 Krh WS 3/4

49 -- Qurtus II VHDL Templte -- Binry Counter librry ieee; use ieee.std_logic_64.ll; use ieee.numeric_std.ll; entity binry_counter is Insert Templte Librry generic ( MIN_COUNT : nturl := ; MAX_COUNT : nturl := 55 ) ; Port ( clk : in std_logic ; reset : in std_logic := '' ; enble : in std_logic := '' ; q : out integer rnge MIN_COUNT to MAX_COUNT ) ; end entity; rchitecture rtl of binry_counter is begin end rtl; Filenme.vhd process (clk) vrible cnt : integer rnge MIN_COUNT to MAX_COUNT ; begin if (rising_edge(clk)) then if reset = '' then -- Reset the counter to cnt := ; elsif enble = '' then -- Increment the counter if counting is enbled cnt := cnt + ; end if; end if; -- Output the current count q <= cnt ; end process ; DSF 49 Krh WS 3/4

50 Unterschiede und Gemeinsmkeiten zu klssischen Progrmmiersprchen In einer Hrdwrebeschreibungsprche wird der Aufbu einer physiklischen Schltung modellhft beschrieben. Entgegen der meisten beknnten Progrmmiersprchen, welche einen sequentiellen Abluf einzelner Anweisungen festlegen, die von einem Prozess (meist ein einziger Prozessor) bgerbeitet wird, gleicht VHDL mehr den objektorientierten Sprchen, mit denen Module beschrieben werden, die qusi gleichzeitig existent sind und vollständig simultn rbeiten. Es gibt verschiedene Arten von Modulen: Komponenten (engl. 'Component') welche einzelne Schltungsblöcke mit ihren Ein- und Ausgängen beschreiben, Prozeduren (engl. 'procedure') welche funktionelle Abschnitte ls Anweisungsfolge festlegen und Funktionen welche Anweisungsfolgen zusmmenfssen. Es gibt mehrere Arten der Dtenübertrgung und Speicherung. Unter nderem die bei VHDL wesentlich voneinnder zu unterscheidenden sogennnten Signle, welche der Verknüpfung einzelner, prlleler Module dienen, und die sogennnten Vriblen welche innerhlb von sequentiellen Anweisungsfolgen wie Prozessen und Prozeduren verwendet werden können. Die Typisierung ist dvon unbhängig: So knn sowohl eine Vrible vom Typ integer sein, ls uch ein Signl vom Typ integer. Diese Erweiterung ist deswegen notwendig, weil in Hrdwrebeschreibungssprchen wie VHDL nicht nur sequentielle Abläufe wie in einer Softwre-Progrmmiersprche beschrieben werden. Vriblen können dher in VHDL nur in sequentiellen Abschnitten wie einem Prozess verwendet werden, während Signle der Informtionsübermittlung zwischen einzelnen nebenläufigen (=prllel blufenden) Funktionsblöcken dienen. Der funktionle Unterschied zwischen Signlen und Vriblen besteht des Weiteren drin, dss Signle ihren neuen Zustnd erst m Ende eines sequentiellen Prozesses nnehmen, während Vriblen ein Verhlten ähnlich wie bei Progrmmiersprchen zeigen und Zuweisungen unmittelbr wirken. Dieser Umstnd ist vor llem für Anfänger meist verwirrend. Ds Hinzufügen weiterer Komponenten in VHDL führt primär zu erhöhtem Pltzbedrf (mehr Logikelemente) und beeinträchtigt die zeitliche Abrbeitung bereits existenter Module prktisch nicht. Die zusätzlich generierte Hrdwre rbeitet voll prllel, während Module in C-Progrmmen für Prozessoren immer zusätzliche Rechenzeit benspruchen. DSF 5 Krh WS 3/4

51 Litertur Jürgen Reichrdt: VHDL-Synthese, Entwurf digitler Schltungen und Systeme, München: Oldenbourg 3. ISBN Peter J. Ashenden: The Designer's Guide to VHDL, Sn Frncisco: Morgn Kufmnn Publishers. ISBN Ynnick Herve: VHDL-AMS, München: Oldenbourg 6. ISBN Wikipedi 5.4 Bsis Blöcke in VHDL 5.4. P-Element Bild 5.5: VHDL P-Element (Festkomm Mthemtik) Die FPGA internen DSP Blöcke sind optimiert zur Verrbeitung von Integer-Zhlen. Ohne viel zusätzlichen Aufwnd knn dmit uch eine Festkommverrbeitung erfolgen. Im folgenden Beispiel soll die Eingngsfolge y k mit K P =,7 multipliziert werden. Sttt mit der Fließkommzhl,7 wird die Eingngsfolge mit einer Potenz von K P multipliziert: (5-) Wird Q = 4 gewählt ( 4 = 6384), so ergibt sich: Wird jetzt ds Produkt durch Q geteilt, so erhält mn ds gewünschte Ergebnis. Im FPGA knn diese Division durch Q besonders leicht durch ds rithmetische Schieben um Q-Bit nch rechts erfolgen. Aufgrund der Rundung des Koeffizienten uf eine gnze Zhl ist der rel wirksme Fktor K P jedoch nicht mehr exkt,7: DSF 5 Krh WS 3/4

52 Ds rithmetische Schieben nch rechts bewirkt eine Rundung und erzeugt ddurch ein zusätzliches Quntisierungsruschen des Ausgngssignls I-Element Bild 5.6: VHDL I-Element ( ) ( ) For n input signl step from zero to y follows: For the clcultion of the integrl ction time follows: In VHDL coded integrl element n is equl to the shift fctor shi which divides the integrl sum. To get vrious integrtor times T I, input signl y(t) hs to be multiplied with the integrl ction gin K I (integrl ction gin). An increse of K I will result in decrese of T I. So in the formul K I hs to be set in the denomintor. (5-) DSF 5 Krh WS 3/4

53 Exmple: f = 5 MHz => T = ns ; sh I = => n = integrl ction time of T I = ms: DSF 53 Krh WS 3/4

54 5.4.3 PI-Element Bild 5.7: VHDL PI-Element Anlog to single P-element K P is determined by K P. (5-3) The integrl ction gin K I of the PI-element is given by =>. So eqution (5-) hs to be multiplied with K P, to get the eqution for the PI-element T I. ( ) (5-4) ( ) DSF 54 Krh WS 3/4

55 5.4.4 Tiefpss erster Ordnung Bild 5.8: VHDL PT-Element First order lg elements re normlly implemented with fixed time constnts T, so the first order lg is described with no scling fctor for the configurtion of T. The first order lg cn be implemented in VHDL s feedbck loop with simple integrtor shown in the figure bove. So the time constnt T is clculted nlog to n integrtor time constnt. (5-5) To rech high time constnts > ms it is T cn be clculted to T clk s FPGA system clock. with Beobchter zweiter Ordnung Bild 5.9: Beobchter -ter Ordnung The second order trnsfer function of the observer is given over eqution nd cn be equlized with n oscillting second order lg with resonnce frequency ω nd dmping δ. The feed forwrd gin K V hs no influence to the system prmeters nd is not considered in the trnsfer function! DSF 55 Krh WS 3/4

56 ( ) This leds to the following dependencies for ω nd δ: ω δ ω (5-6) ω, δ (5-7) For fixed time constnts T OV nd T OV, K I is proportionl to ω nd OVC is proportionl to δω. The next figure shows the observer implementtion in VHDL. Bild 5.: In VHDL kodierbrer Beobchter ter Ordnung The Observer prmeter prmeters K P nd K I determine the VHDL prmeter K P nd K I. ; Owing eqution (5-7) the observer prmeters K P nd K I re clculted. δω δ (5-8) ω ( ) (5-9) DSF 56 Krh WS 3/4

57 6 System on progrmmble Chip Unter System on progrmmble Chip (SoPC) versteht mn die Integrtion ller oder eines großen Teils der Systemfunktionen uf einem Stück Silizium, uch monolithische Integrtion gennnt. Eingesetzt werden SoPCs üblicherweise in eingebetteten Systemen. Während Systeme ursprünglich us einem Mikroprozessor- oder Mikrocontroller-IC und vielen nderen ICs bestnden, die uf einer Pltine ufgelötet wren, geht heute der Trend dzu, lle Funktionen uf einem Chip zu relisieren. Dbei werden digitle, nloge und mixed-signl Funktionseinheiten integriert. Vorteile sind vor llem Kosteneinsprung und Miniturisierung. So ist heute beispielsweise bei Mobiltelefonen die digitle Funktion mit Ausnhme des Speichers uf einem IC relisiert. Die Schnittstelle beispielsweise zur Tsttur, zur SIM-Krte oder zum Disply sind bereits uf diesem IC enthlten. Komponenten Die üblichen Komponenten eines SoPCs sind: Prozessor (Nios II, ARM Cortex A9, ) Register ALU (Arithmetik Logic Unit) Speicher RAM (Rndom Access Memory) Schreib- und Lesespeicher ROM (Red Only Memory), z. B. ls Flsh oder OTP (One Time Progrmmble) Interne Einheiten Zeitgeber (Timer / Interrupt), Zähler Interruptcontroller Wtchdog (knn einen Reset uslösen) Debug-Schnittstellen, z.b. JTAG Spezielle Recheneinheiten, wie z. B. in DSP-SoPCs Kryptogrphie Anlog-Digitl- und Digitl-Anlog-Wndler Peripherie-Einheiten Tstturcontroller, z. B. für Tstturen oder Touchpds Grfikschnittstellen, z. B. für LVDS, LCD, VGA, DVI, MPEG, HD/SDMI Serielle Schnittstellen, z. B. USB, RS3, CAN-Bus Prllele Schnittstellen, z. B. nch Centronics, Port-IO Pulsweitenmodultor (PWM), z. B. für DC-DC-Wndler oder Motorsteuerung Weitere Schnittstellen, z.b. Ethernet MAC oder USB Cores DSF 57 Krh WS 3/4

58 Entwurfsvorgng In der Regel bsieren Entwürfe für SoPCs uf bereits vorhndener Intellectul Property, z.b. Mkrozellen für den CPU-Kern oder einen Ethernet-Controller. Je nch geplntem Einstzgebiet fügt mn eigene Komponenten hinzu und entscheidet sich für die vorteilhfteste On-Chip Busstruktur. Einstzgebiet Eingesetzt werden SoPCs vor llem im Mobilfunk, für PDAs, für MP3-Plyer, CDund DVD-Geräte, für eingebettete Anwendungen und überll dort wo es uf kleine Abmessungen bei hoher Leistung und vielfältigen Aufgben nkommt. Es ist norml, dss solche Geräte uch bgesetzte Einheiten hben können, wie etw eine Tsttur oder einen Bildschirm. Ds wesentliche Merkml ist jedoch der minimle innere Zustzufwnd für Buteile uf der oder den Leiterpltten, welche den Kern des Geräts usmchen. SoPCs sind vor llem us Kostengründen, d.h. zur weiteren Kostensenkung bei Gerätepreisen oder überhupt zur mrktfähigen Relisierung von Geräten ein entscheidender Trend im beginnenden. Jhrhundert. DSF 58 Krh WS 3/4

59 6. Geistiges Eigentum (IP) Jede digitle Schltung lässt sich mit elementren Bsisblöcken relisieren und uch entsprechend progrmmieren. Genu wie bei der Softwre-Entwicklung wird us wirtschftlichen Gründen wiederverwendbrer Code gewünscht, der meist von externen Liefernten ls IP (Intellectul Property) bezogen wird. Sttt eines ICs mit einer bestimmten Funktion knn dher uch ein entsprechender IP-Core erworben werden. Ein Beispiel ist der Ethernet Medi Access Controller (MAC), der in Form eines ICs oder uch ls VHDL-IP erhältlich ist. Ntürlich lässt sich ein MAC uch selbst in VHDL codieren, ds ber ist nicht wirtschftlich. Geistiges Eigentum (engl. intellectul property, uch intellektuelles Eigentum) ist ein im Nturrecht wurzelnder Begriff, der Rechte n immteriellen Gütern beschreibt. Immterilgüter sind z. B. Ideen, Erfindungen, Konzepte, geistige Werke, Informtionen. Diese Güter sind jedoch nicht generell rechtlich geschützt, sondern nur wenn die Rechtsordnung einer Person entsprechende Rechte zuweist, z. B. durch Ptent-, Gebruchsmuster-, Geschmcksmuster- oder Urheberrechte. Inhber eines solchen Rechts ist z. B. der Anmelder eines Ptents oder der Schöpfer eines urheberrechtlichen Werks. Die Theorie vom geistigen Eigentum entstnd größtenteils erst in der Neuzeit, vor llem b dem 8. Jhrhundert und dort im Zusmmenhng mit dem Nchdruck von Büchern. Die Bezeichnung Immterilgüterrecht entstnd dgegen erst gegen Ende des 9. Jhrhunderts. Diese Rechte und ihre bgeleiteten Rechtsderivte sind i. d. R. durch interntionle Abkommen geschützt und werden lizenziert, mnchml uch uf ndere Weise übertrgen, ws den Vorgängen Veräußerung, Vermietung entspricht. Meistens unterliegen diese Rechte Einschränkungen durch Rechte der Allgemeinheit, wie etw ds Zitierrecht für urheberrechtlich geschützte Werke, ds Recht, Forschung ohne ptentrechtliche Einschränkungen betreiben zu dürfen, ds Recht von Künstlern uf Prodien oder ds Grundrecht der Informtionsfreiheit. (V)HDL-IP Block sttt Bustein DSF 59 Krh WS 3/4

60 6. OpenCore Plus Alter und usgewählte Prtner bieten IP-Blöcke ls sogennnte Megfunctions n. Diese Blöcke können vor dem Kompilieren so konfiguriert werden, dss Sie nur über die gewünschte Funktionlität verfügen, um Ressourcen (Logikblöcke) zu spren (Stichwort: VHDL generic). Im Gegenstz dzu liegt bei einem Mikrocontroller oft ein Großteil der Peripherie brch und der genutzte Teil wird erst zur Lufzeit per Softwre usgewählt und konfiguriert. OpenCore Plus IP knn ls Testversion kostenlos us dem Internet bgerufen werden. Die Funktionlität knn zunächst mit einem Simultor erprobt werden. Dbei ist zu bechten, dss meistens interne Signle nicht sichtbr sind ähnlich wie bei einem konventionellen IC. Für einen Test innerhlb der Schltung knn der Nutzer zwischen zwei Optionen wählen: Ausführung für eine limitierte Zeit (time limited) Ausführung nur solnge ds FPGA über JTAG (USB-Blster) mit dem PC (Qurtus Progrmmer) verbunden ist Bild 6.: Ds Blockschltbild zeigt schemtisch die Nutzung von OpenCore plus IP DSF 6 Krh WS 3/4

61 6.3 Megcore IP Librry Komplexe IP-Blöcke wie z.b. Signlverrbeitungskomponenten, die in der FPGA- Konfigurtion integriert werden können, gehören zu den Alter Megcores. Mn benötigt teilweise spezielle Lizenzen, um die Megcores verwenden zu können. Megcores können nicht innerhlb des DSP-Builders (Simulink Editor) genutzt werden. Durch Doppelklick uf ds Blocksymbol öffnet sich ein kleines Fenster, von dem us mn sich die Dokumenttion nsehen knn bzw. über die Diloge den Block konfigurieren knn. Bild 6.: Der Alter FIR Compiler II zeigt bei der Konfigurtion der Koeffizienten eines FIR Filters sofort den Frequenzgng n. DSF 6 Krh WS 3/4

62 6.4 Soft Core CPU Nios II Mnche Entwicklungsufgben lssen sich mit nur wenigen VHDL Zeilen effizient lösen. Eine Prozessor-Konfigurtion erfordert hier unter Umständen deutlich mehr Aufwnd. Bei nderen Problemstellungen ist es umgekehrt. Immer mehr FPGA Hersteller bieten deshlb zusätzlich zur Logik eine Soft Core CPU (Schicht ). Bei den Alter-FPGAs ist diese Soft Core CPU zusätzlich sklierbr. Der Entwickler knn bei jedem Design entscheiden, ob er nur wenige Logikelemente für eine lngsmere CPU einsetzten möchte, oder ob es sinnvoll ist, einen schnelleren Prozessor zu konfigurieren, der entsprechend mehr Logikelemente benötigt. Bei besonders zeitintensiven Algorithmen knn der Befehlsstz des Nios II uch durch sogennnte "Custom Instructions" Nios erweitert II Block werden. Digrm JTAG interfce to Softwre Debugger High Speed Connection to Trce Pod reset clock irq[3..] Custom I/O Signls Hrdwre- Assisted Debug Module Trce port Custom Instruction Logic Nios II Processor Core Progrm Controller & Address Genertion Trce Memory Exception Controller Interrupt Controller Instruction nd Dt Trce HW Brekpoints Arithmetic Logic Unit Generl Purpose Registers r to r3 Control Registers ctl to ctl4 Instruction Cche Tightly Coupled I-Memory Tightly Coupled D-Memory Dt Cche Instruction Mster Port Dt Mster Port = Optionl = Configurble = Fixed = Debug Options Bild 6.3: Ds Blockschltbild des Nios II zeigt, dss im Systementwurf die Integrtion der Elemente für ds Debugging eine besondere Rolle spielt. (Quelle: Alter) (mit Custom Instruction) Bei einfchen Anwendungen ohne Cche-Speicher für Dten und Befehle reichen die FPGA-internen Memory-Blöcke ls Arbeitsspeicher (bis c. 8 kbyte) us. Ein Teil des internen Speichers knn us dem Konfigurtionsbustein initilisiert werden und dmit ls ROM (Red Only Memory) verwendet werden. Wenn der FPGA-interne Speicher nicht usreicht oder beispielsweise für den Cche benutzt wird, ist zusätzlicher externer Speicher (RAM / ROM) erforderlich. DSF 6 Krh WS 3/4

63 Cche Avlon Switch Fbric Konfigurtionen mit zwei Nios-II-Prozessoren sind ebenflls möglich. Die Kombintion eines Prozessors und eines FPGAs ist eine Lösung, die wesentlich flexibler und sklierbrer ist ls die trditionellen CPUs plus ASIC. Die flexible Systemrchitektur erlubt es den Entwicklern, eine optimle Hrdwre/Softwre-Aufteilung zu wählen, um die beste Ausgewogenheit zwischen Leistungsfähigkeit, Kosten und Verlustleistung zu erzielen. Die Flexibilität der FPGA-Hrdwre erlubt es den Entwicklern, sich von den Einschränkungen eines festgelegten Funktionsumfngs zu lösen und ds Risiko der Verltung von Komponenten zu vermeiden. Nios II CPU Debug UART GPIO On-Chip ROM On-Chip RAM Timer SPI SDRAM Controller FPGA Bild 6.4: Die Soft-Core-CPU Nios II ermöglicht es, ein vollständiges System (SoPC) in ein FPGA zu integrieren (mit wenig RAM und Flsh-Speicher). DSF 63 Krh WS 3/4

64 Nios II /f Fst Nios II /s Stndrd Nios II /e Economy Code is Binry Comptible MIPS / MHz,.5.5 Pipeline 6 Stge 5 Stge None H/W Multiplier & Brrel Shifter Cycle 3 Cycle Emulted in Softwre Brnch Prediction Dynmic Sttic None Instruction Cche Configurble Configurble None Dt Cche Configurble None None Logic Usge (Logic Elements) Custom Instructions (FPGA) Up to 56 Bild 6.5: Die Soft-Core-CPU Nios II steht in drei Versionen zur Verfügung. Je mehr Logikelemente mn investiert umso schneller verrbeitet die CPU die Instruktionen. Alter unterstützt effizientes Hrdwre/Softwre-Co-Design, indem verschiedene Konfigurtionen von Nios II ngeboten werden, welche sich in der Hrdwrerchitektur unterscheiden, jedoch softwrekomptibel sind. Dies ermöglicht zum Beispiel zwischen einem schnelleren oder einem kompkteren Design zu wählen. Weiter besteht die Möglichkeit, den Prozessor mit weiteren Modulen, wie zum Beispiel einer Floting Point Unit (FPU) zu konfigurieren, um die Leistungsfähigkeit für eine bestimmte Aufgbenstellung zu optimieren. Zusmmen mit nderen, nwendungsspezifischen Schltungsteilen wie RAM oder IO-Interfces, die ebenflls in den Bustein einprogrmmiert werden, giert dieser Prozessor dnn einerseits ls spezifische Hrdwre, knn ber nderseits wie ein normler Prozessor mit Softwre (z.b. in C oder C++) gelden und betrieben werden. So können vorhndene ursprünglich rein prozessorbsierte Systeme erweitert und existierende Softwre knn eingebunden werden. DSF 64 Krh WS 3/4

65 Processor Librry SOPC Builder GUI Configure Processor Custom Instructions Peripherl Librry Hrdwre Development HDL Source Files Testbench Select & Configure Peripherls, IP Connect Blocks Generte System.h IP Modules Softwre Development Nios II IDE C Heder files Custom Librry Peripherl Drivers Synthesis & Fitter User Design Other IP Blocks Qurtus II Hrdwre Configurtion File Verifiction & Debug Alter PLD JTAG, Seril, or Ethernet Executble Code On-Chip Debug Softwre Trce Hrd Brekpoints SignlTp II Compiler, Linker, Debugger User Code Librries RTOS GNU Tools Bild 6.6: Ein Nios II System wird in drei Arbeitsschritten entwickelt: (Versuch 3). Erstellen eines µc Systems mit dem Qsys (grfisch) Output: - encrypted (V)HDL Files (für Qurtus) - C-Heder Files (system.h für die NiosII EDS). Qurtus II: Kompiltion ller VHDL-Quellen zu einer FPGA Konfigurtion 3. Nios II EDS: Kompiltion ller C-Quellen zu einem usführbren Progrmm Ds Nios II-System wird über den SoPC-Builder (System-on--Progrmmble-Chip) zusmmengestellt. Ein SoPC-Projekt besteht us einzelnen Logikblöcken die Senken oder Quellen für Dten bilden. Die einzelnen Logikblöcke werden mittels der Avlon Switch Fbric miteinnder verbunden. Der SoPC-Builder bietet eine grfische Benutzeroberfläche, um ds Zielsystem grphisch zu beschreiben. Ds konfigurierte System us Prozessor und Hrdwre wird dnn in einen Stz von VHDL oder Verilog- Dteien exportiert, mit denen dnn ein FPGA der Firm Alter konfiguriert werden knn. DSF 65 Krh WS 3/4

66 6.4. Custom Instruction ein Mittelweg zwischen Hrdwre und Softwre Wenn Algorithmen zur Signlverrbeitung in VHDL implementiert werden, sind diese meist sehr schnell und benötigen proportionl zur Komplexität der Algorithmen entsprechende Ressourcen vom FPGA (Logikelemente bzw. DSP Blöcke). Bei ufwändigen Algorithmen knn ds durchus nennenswerte Kosten verurschen. Eine Relisierung mit einer Soft-Core-CPU benötigt zwr weniger Ressourcen ist ber uch deutlich lngsmer. Spezielle Instruktionen zur Begrenzung von Signlen bieten nur wenige DSP Hersteller. Bei einem Soft-Core Prozessor knn mn einen solchen Befehl ber oft selbst implementieren. Bild 6.8 zeigt den C-Code, den die neue Instruktion ersetzt und den dhinterstehenden VHDL-Code. Diese bsmx Instruktion wird ohne Wit-Sttes in nur ns berechnet ( MHz CPU). Durch diesen selbstgebuten Befehl benötigt der Soft-Core Prozessor zwr 59 zusätzliche Logikelemente (Cyclone IV), ber die Zeit zur Berechnung eines robusten PI-Reglers sinkt deutlich. Der C-Compiler unterstützt Custom Instructions insoweit, dss diese Assembler Befehle mit symbolischen Vriblen us dem C-Quelltext herus ufgerufen werden können. Auch die Berechnung von Sinus und Cosinus z.b. für eine feldorientierte Regelung von Servontrieben ist bei einem Controller ohne Floting Point Unit (FPU) sehr zeitufwändig. Oft wird die Berechnung von Sinus und Cosinus durch einen Tbellenzugriff ersetzt, ws ber die Genuigkeit strk limitiert oder sehr große Tbellen erfordert. Ein kundenspezifischer Befehl berechnet den Sinus bzw. Cosinus über zwei Tbellen und eine Tylor Approximtion erster Ordnung. Berechnet wird nur der erste Qudrnt, die drei nderen werden über Symmetriebedingungen umgerechnet. Die Berechnung erfolgt mit einem Wit-Stte und benötigt ddurch bei MHz ns. Diese Custom Instruktion erfordert für Sinus und Cosinus zusmmen zwei DSP Blöcke und 4 Logikelemente (Alter Cyclone II). control error e(t) commnd w(t) % K P ctuting vrible y(t) % (-) K P % controlled vrible x(t) % K P K T P N e( t) dt - % Anti-Wind-Up - % Bild 6.7: Zur Relisierung eines robusten PI-Reglers sind viele Signl- Begrenzungen erforderlich. (Anti-Wind-Up ist nur schemtisch drgestellt. Die Begrenzung erfolgt innerhlb des Blocks.) DSF 66 Krh WS 3/4

67 mx. vl - mx. C Code: int bsmx(int vl,int mx) { if ( vl > mx ) { // pos. limit? return mx ; } else if( vl < -mx ) { // neg. Limit? return -mx ; } else { return vl ; } } Custom Instruction: ( C Aufruf) (Kombintorisch) ALT_CT_ABSMAX_INST(vl,mx) ; // ns t MHz DSF 67 Krh WS 3/4

68 -- Qurtus II VHDL Code -- Signed Adderlibrry ieee; use ieee.std_logic_64.ll; use ieee.numeric_std.ll; entity bsmx is port ( clk : IN STD_LOGIC; dt : in signed (3 downto ) ; -- vl dtb : in signed (3 downto ) ; -- mx result : out signed (3 downto ) ; -- output ); end entity; rchitecture rtl of bsmx is begin process(clk) is vrible : integer rnge to ; vrible mx : integer rnge to ; begin if (clk'event AND clk = '') THEN := TO_INTEGER(dt) ; mx := TO_INTEGER(dtb) ; if ( > mx ) then result <= dtb ; elsif ( - > mx ) then result <= -dtb ; else result <= dt ; end if ; end if ; end process; end rtl; Bild 6.8: Absmx Funktion: Symbol (oben), C-Code (mitte) und VHDL Code (unten) Neben der Soft Core CPU ARM Cortex M bietet Alter seit Anfng zusätzlich den MP3 von MIPS n, mit dem Alter im Kommuniktions-Bereich Kunden gewinnen möchte. DSF 68 Krh WS 3/4

69 6.5 FPGA integrierte Hrd-Core Prozessoren Für noch höhere Performnce bietet Alter einen integrierten ARM Cortex A9 Dul- Core Prozessor n SoC. Diese Prozessoren sind deutlich leistungsfähiger ls der Nios II. Stt der c. MHz und, MIPS pro MHz (= MIPS) erreicht der SoC bei 8 MHz und,5 MIPS pro MHz bis zu 4 MIPS. Jede CPU verfügt über 3-KB Level Dten- und 3-KB Level Instruktionscche. Der 5-KB Level Cche wird von beiden Cores genutzt. Eingebunden wird ds Hrd-Core Prozessorsystem wie der Nios II mit Qsys. Besonderer Vorteil der ARM Architektur ist der niedrige Energieverbruch. Fst lle Smrtphone Hersteller setzen ARM Prozessoren ein. Ab 4 bietet Alter high Performnce FPGAs (Strtix in 4 Nnometer Technologie) mit ARM Cortex A53 qud-core (64-Bit) n, die bei Intel gefertigt werden. Bild 6.9: SoC: Cyclone V und Arri V FPGAs (8 nm) werden optionl mit einem Cortex A9 bsierten Hrd-Core Prozessorsystem ngeboten. [Alter] DSF 69 Krh WS 3/4

70 7 Digitl-Anlog-Umsetzer - Digitl-to-Anlog Converter (DAC) 7. Schnelle Digitl-Anlog-Umsetzer Mit einem Digitl-Anlog-Umsetzer wird ein digitler Wert in eine nloge Spnnung umgesetzt. Bild 7. zeigt den schemtischen Aufbu eines D/A-Umsetzers durch Summtion gewichteter Ströme. R u S. G V u. G S. G S n-. G S n- Bild 7.: Schemtischer Aufbu eines D/A-Umsetzers S bis S n- sind elektronische Schlter, die durch ds v-te Bit eines Wortes des Rechners gesteuert werden. Die Widerstände, die durch die Schlter gesteuert werden, sind im Dulcode gewichtet, so dss eine entsprechende Stellung der Schlter die Übertrgung des zugehörigen nlogen Spnnungswertes bewirkt. n v A u R G S v v u mit G = / R R= k u S R= 4 k V u S R= k S R= k Bild 7.: Schemtischer Aufbu eines 3 Bit D/A-Umsetzers Die Schltfunktion S v (t) stimmt mit dem Wert der v-ten Bits überein und knn ihre Wertigkeit im Rhythmus der Abtstzeit t = k T ändern. Dzu wird üblicherweise der von dem Algorithmus berechnete Wert für die Abtstzeit T in einem Hlteregister (D-Ltch) gespeichert. DSF 7 Krh WS 3/4

71 S v für geschlossenen Schlter v tes Bit gesetzt für offenen Schlter v tes Bit Beispiel: Ausgngsspnnung eines 3-Bit D/A-Umsetzers nicht gesetzt Mit R = k, G und u 4k = -4 V lässt sich entsprechend den Schlterstellungen S bis S eine Tbelle für die Ausgngsspnnung u eines 3-Bit D/A- Umsetzers ermitteln. v s s s s v u /V v Bei der Herstellung integrierter Schltungen ist es sehr ufwändig genue Widerstände mit strk unterschiedlichen Werten herzustellen. Bei Verwendung eines R-R- Leiternetzwerkes ist ds nicht notwendig. Allerdings müssen hier die Schlter ls Umschlter relisiert werden, dmit sich die Kettenbschwächung des Spnnungsteilers nicht ändert. DSF 7 Krh WS 3/4

72 u ref ½u ref ¼u ref R R R u ref R R R R S3 S S S R R + u Bild 7.3: Schemtischer Aufbu eines R-R Digitl-Anlog-Umsetzers Beide bisher diskutierten Verfhren hben den Vorteil, dss die Umsetzzeit nur von der Whl der Schltungskomponenten bhängt. Deshlb können diese DAC prinzipiell sehr schnell usgelegt werden (t << s). 7. Abzählende Digitl-Anlog-Umsetzer Für geringe Umsetzgeschwindigkeiten können uch PWM-Konverter (Pulsweitenmodultion) eingesetzt werden. Ds digitle Dtenwort wird in ein Register gelden und ein Komprtor vergleicht ds Dtenwort mit dem Stnd eines Zählers. Solnge der Zählerstnd kleiner ls ds Dtenwort ist, ist der Ausgng des Konverters (ktiv high), sonst (ktiv low). Ddurch ht ds rechteckige Ausgngssignl ein dem Dtenwort proportionles Tstverhältnis. Dieses Signl wird mit einem Tiefpss gefiltert, der m Ausgng den rithmetischen Mittelwert ls Ausgngsspnnung bereitstellt. In der Prxis wird dieses Verfhren oft benutzt, wenn eine Stellgröße nicht stetig einstellbr ist. Beispielsweise knn die Helligkeit von Glühlmpen mit einer Phsennschnittsteuerung eingestellt werden. Dies entspricht durch die sinusförmige Spnnung einer nichtlineren PWM. DSF 7 Krh WS 3/4

73 Reset Set -Bit-Counter PWM Output Tiefpss Crry R S Anlog output - Bit DAC Dt = - Counter DAC Dt Clock t T PWM t Bild 7.4: PWM Digitl Anlog Umsetzer (Zählverfhren) Bei einem -Bit ( Stufen) PWM-Umsetzer mit MHz ( 6 ) Tktfrequenz beträgt die Periodenduer des Ausgngssignls T PWM s,496ms. 6 Es ist offensichtlich, dss ein Rechtecksignl mit der doppelten Frequenz mit einer hlb so großen Filterkonstnte uskommt. Ohne die Tktfrequenz zu verändern, würde sich jedoch die Auflösung um ein Bit uf -Bit verschlechtern. 7.3 Sigm-Delt Digitl-Anlog-Umsetzer Wenn die Schlfrequenz des Stellgliedes nicht begrenzt ist, knn durch Modifiktion der PWM die Zeitkonstnte des Filters verringert und dmit die Bndbreite vergrößert werden. Bei einem (Delt-Sigm)-Modultor tritt dieses Problem nicht uf. Der Modultor erzeugt einen deutlich höherfrequenten -Bit Dtenstrom, der so gestltet ist, dss der Mittelwert dem einer PWM entspricht. In Bild 7.5 ist der C - Code eines -Bit Digitl-Anlog Modultors drgestellt. DSF 73 Krh WS 3/4

74 C-Beispiel eines -Bit -DAC int DAC_dt; // Dtum sttic int sum ; // Hilfsvrible for(;;) { sum += DAC_dt ; if ( sum >= 496 ) { // ** bit_strem_dt = ; sum -= 496 ; } else { } } bit_strem_dt = ; Bild 7.5: C -Code für einen -Digitl-Anlog-Modultor (. Ordnung) Wenn die for-schleife n ml durchlufen wird, wird uch die globle Vrible DAC_dt n ml ufsummiert. In jedem Zyklus, in dem die Summe 496 überschreitet, wird bit_strem_dt gesetzt und der Wert 496 bgezogen. Es ist leicht ersichtlich, dss die Vrible sum ohne ds systemtische Abziehen um ds Produkt n DAC_dt nsteigen würde. Umgekehrt sieht mn uch, dss der Wert 496 genu n DAC_dt/496 ml bgezogen wird. Von n Durchläufen ist bit_strem_dt lso n DAC_dt/496 ml gesetzt. DSF 74 Krh WS 3/4

75 librry ieee; use ieee.std_logic_64.ll; use ieee.numeric_std.ll; entity delt_sigm_d is generic ( WIDTH : integer := ); -- input dt width port ( clk : in std_logic ; -- System clk reset_n : in std_logic ; -- reset low ctive dt : in unsigned(width- downto ); --Sigm Delt Dt bit_out : out std_logic -- bit strem output ); end entity; rchitecture rtl of delt_sigm_d is begin process (clk,reset_n) vrible sum : unsigned(width downto ) ; -- one dd. bit(crry) begin if reset_n='' then sum := to_unsigned(,width+) ; bit_out <= '' ; elsif ( rising_edge(clk) ) then sum(width) := '' ; -- reset crry bit sum := sum + dt ; -- dd dt end if; end process; end rtl; bit_out <= sum(width) ; -- use crry bit Bild 7.6: -Digitl-Anlog-Umsetzer VHDL-Listing Ds VHDL Listing zeigt einen prmetrierbren -Digitl-Anlog-Umsetzer. Ordnung. Besonderes Kennzeichen dieses Modultors ist, dss er sehr wenig Logikelemente benötigt. DSF 75 Krh WS 3/4

76 -Bit -Bit Ltch bit strem Crry ( ) D Anlog output -Bit DAC Dt - Bit Sum Tiefpss - Bit Clock Bild 7.7: -Digitl-Anlog-Umsetzer Blockschltbild (. Ordnung) In Bild 7.7 ist eine mögliche -Bit -DAC Relisierung mit digitler Logik drgestellt. Ds Crry (Übertrg) Signl entspricht dem bit-strem Dtum. Ds Subtrhieren erfolgt implizit durch die fehlende Auswertung des Crry bei der nächsten Addition. Im Vergleich zu einer gleich getkteten PWM digitl nlog Umsetzung ist ds Quntisierungsruschen unverändert, ber in einen höheren Frequenzbereich verschoben. Der Tiefpss zur Glättung der Spnnung knn jetzt einfcher und höherfrequenter usgelegt werden. Ds senkt die Kosten und verbessert die Dynmik. Bei einer Implementierung des -Modultors in einem FPGA werden nur wenige Ressourcen benötigt. Als Tiefpss ist meist ein einfches RC-Glied (PT ) usreichend. DSF 76 Krh WS 3/4

77 8 Anlog-Digitl-Umsetzer Aufgbe eines Anlog-Digitl-Umsetzers ist die Umsetzung einer nlogen Größe in eine ihrem Betrg entsprechende codierte Zhl. Bild 8. zeigt die Abhängigkeit zwischen der nlogen Eingngsgröße x und der digitlen Ausgngsgröße x Q für einen A/D-Umsetzer mit einer Wortlänge von 4-Bit. e Q = x - X Q ; mit -½ Q e Q ½ Q (8.) ) x Q /Q overflow underflow x/q b) Q. Q. e Q x Bild 8.: ) Quntisierungskennlinie eines 4-Bit-AD-Umsetzers mit Rundung und Zweierkomplementdrstellung (MSB negiert) b) Verluf des Quntisierungsfehlers e Q Die Anlog-Digitl-Umsetzung erfolgt in zwei Schritten. Im ersten Schritt wird ein wertekontinuierlicher Abtstwert erzeugt und im zweiten Schritt wird der numerische Wert von x k durch eine endliche Anzhl Bits digitl drgestellt. Der Quntisierungsfehler ist bhängig von der Art und Weise, wie die Quntisierung durchgeführt wird. Am häufigsten wird die Quntisierungschrkteristik mit Rundung ngewendet. Der kleinste Quntisierungsschritt ist Q. DSF 77 Krh WS 3/4

78 Der vorliegende nloge Messwert der kontinuierlich verlufenden Eingngsspnnung wird in einen dzu proportionlen Digitlwert umgesetzt. Dbei ergibt sich infolge der endlichen Anzhl von n-bits, die der ADC zur Drstellung eines Digitlwertes zur Verfügung ht, ein endliches Auflösungsvermögen. Für den nlogen Messwert lässt sich nur ein Näherungswert us einer Anzhl von n verschiedenen Werten ngeben. Somit ergibt sich ds kleinste Quntisierungsintervll Q, in dem der volle Eingngsbereich (full scle, FS) durch die Anzhl der möglichen Werte dividiert wird. Durch den Vorgng der Quntisierung erhält mn die in Bild 8. drgestellte Quntisierungskennlinie. Die Differenz zwischen dem ttsächlichen nlogen Messwert X und dem durch die Quntisierung entstndenen Näherungswert X Q bezeichnet mn ls Quntisierungsfehler e Q, der bei einem idelen ADC mximl einem hlben Bit entspricht. Bild 8.b gibt den Verluf des Quntisierungsfehlers über den Eingngsbereich wieder. Zwr ist der Quntisierungsfehler unvermeidbr, doch knn mn ihn oft bei entsprechend hoher Auflösung vernchlässigen. So ergibt sich für einen vollen Eingngsspnnungsbereich des A/D-Umsetzers von U FS = V und einer Auflösung von -Bit eine Spnnungsuflösung von: U U LSB = n FS, (8.) U LSB = V =,5 mv / Bit. Bit Eine drus resultierende Änderung im niederwertigsten Bit (Lest Significnt Bit, LSB) entspricht dher einem Quntisierungsfehler von,5mv. Digitl-Anlog- und Anlog-Digitl-Umsetzer sind fst immer unipolr usgeführt (z. B V Eingngsspnnung). Mit Hilfe von einfchen Opertionsverstärkerschltungen können ber uch bipolre Spnnungen umgesetzt werden (+/- V). Dnn muss jedoch ds Most Significnt Bit (MSB) invertiert werden, um eine Zweierkomplementdrstellung zu erhlten. Bei ADCs muss zusätzlich vor der Verrbeitung uf eine eventuelle Vorzeichenerweiterung gechtet werden. DSF 78 Krh WS 3/4

79 8. Kenngrößen von Umsetzern Auflösung Die Auflösung gibt n, in wie viele Intervlle der Bereich des Eingngssignls ufgeteilt werden knn. Die Auflösung wird üblicherweise in [n]-bit ngegeben. Der Signl- Ruschbstnd (Signl Noise Rtio, SNR) knn drus wie folgt bgeschätzt werden: SNR =,76 db + n 6, db (8.3) Übertrgungskennlinie Die Übertrgungskennlinie beschreibt den Zusmmenhng zwischen der Größe des Eingngssignls und der Größe des Ausgngssignls. Umsetzzeit Die Gesmtzeit von Beginn einer Umwndlung bis zu dem Zeitpunkt, zu dem ds Ausgngssignl mit voller Genuigkeit zur Verfügung steht. Lineritätsfehler Der Lineritätsfehler gibt die Abweichung von einer lineren Übertrgungskennlinie n. Offset-Fehler Der Offset-Fehler beschreibt den Eingngswert, bei dem ein ADC den Wert Null usgibt bzw. den Wert, den ein DAC usgibt, wenn ls Eingngswort der Wert Null ngegeben wurde. Der Offset ist oft temperturbhängig. Quntisierungsfehler(Quntisierungsruschen) Mximle Abweichung von der idelen Trnsferfunktion, die durch Umwndlung der stetigen nlogen Werte in diskrete digitle Werte durch die begrenzte Auflösung entsteht (vergleichbr mit einem Rundungsfehler). Verstärkungsfehler (Gin-error) Ein Verstärkungsfehler tritt uf, wenn die Steigung der Übertrgungskennlinie von der Steigung der idelen Trnsferfunktion bweicht. Ds führt z.b. dzu, dss bei einem Eingngswert, der kleiner ls der mximl mögliche Eingngswert ist, bereits ds mximl mögliche Ausgngssignl usgegeben wird. Es gibt im Wesentlichen fünf Anlog-Digitl-Umsetz-Verfhren: Sukzessive Approximtion (SAR) Dul-Slope (Zählverfhren, Digitlvoltmeter, ältere Produkte) Spnnungs-Frequenz-Umsetzungsverfhren Flsh-Anlog-Digitl-Umsetzer (Prllelverfhren, sehr schnell) DSF 79 Krh WS 3/4

80 (Sigm-Delt)-Umsetzer (neuere Produkte) 8. Kompenstionsverfhren (Wägeverfhren) x(t) Bit Tkt Zähler DAU X Q Bild 8.: Schemtischer Aufbu eines A/D-Umsetzers nch der sukzessive Approximtion (SAR) Hier soll zunächst die sukzessive Approximtion (SAR) nch Bild 8. betrchtet werden. Ds Verfhren beruht druf, dss mn m Eingng eines D/A-Umsetzers die digitlen Vergleichswerte über einen Zähler solnge systemtisch verändert (pproximiert), bis die Ausgngsspnnung des D/A-Umsetzers bis uf den Quntisierungsfehler gleich der Messspnnung ist. Der letzte Vergleichswert entspricht dem digitlen Wert der nlogen Eingngsgröße. In fst llen µcontrollern werden SAR Anlog Digitl Wndler verwendet. Die Wndlungszeit inkl. S&H beträgt c. 5 µs. 8.3 Dul-Slope (Zählverfhren) Der Dul-Slope (Doppel-Sägezhn) Konverter integriert ds Eingngssignl zuerst für eine feste Zeitspnne (z.b. ms) uf, um dnn die negtive Referenzspnnung n den Eingng zu legen. Die Zeit bis zur Entldung des Integrtors ist proportionl zum Integrl der Eingngsspnnung. Zur Festlegung der Integrtionsduer ls uch zur Messung der Zeit bis zur Entldung wird ein Zähler benutzt, der die Frequenz eines Tktoszilltors zählt. Durch eine entsprechende Whl ist der Zählerstnd direkt der ngezeigte Messwert. Mit geringem Buufwnd verbindet der Dul-Slope Konverter gute Genuigkeit und Linerität. Integrierende Wndler bewerten ds Integrl der Eingngsgröße über einen bestimmten Zeitrum. Ds ht den prinzipiellen Vorteil der Absenkung von Ruschen und hohen Frequenzen mit 6 db/oktve uf Kosten einer längeren Wndlungszeit. Wählt DSF 8 Krh WS 3/4

81 mn die Integrtionszeit gleich der Duer einer Netzschwingung oder einem vielfchen dvon, so werden die Netzfrequenz und lle Oberwellen sehr strk unterdrückt. Die lnge resultierende Umwndlungszeit stört z.b. bei Digitlmultimetern nicht. Ds Verfhren ist preisgünstig, benötigt nur wenig Leistung und weist eine sehr gute Linerität uf. 8.4 Spnnungs-Frequenz-Umsetzungsverfhren Dieses Verfhren wird nur noch selten verwendet. Hupteinstzgebiet ist heute der Voltge Controlled Oscilltor (VCO) für Phsenregelkreise (PLL). 8.5 Flsh-Anlog-Digitl-Umsetzer (Prllelverfhren) Die kürzeste überhupt mögliche Umwndlungszeit erreichen die Flsh- (=Blitz) Konverter. Hier ist für jedes mögliche digitle Ausgngswort ein eigener Komprtor vorgesehen. Ein ADC mit 6 Bit Auflösung ht 64 Ausgngszustände, 63 Umschltpunkte und dementsprechend 63 Komprtoren. Jedes weitere Bit Auflösung erfordert eine Verdopplung der notwendigen Komprtoren. Jeder Komprtor hängt mit einem Eingng n der Eingngsspnnung und mit dem nderen n einer Spnnungsteilerkette us luter gleich großen Widerständen. Alle Komprtoren mit einer Vergleichsspnnung oberhlb der Eingngsspnnung schlten m Ausgng nch, lle drunterliegenden m Ausgng nch. Ds Verknüpfungsnetzwerk erkennt die Stelle des Übergngs und gibt ds entsprechende Binärwort zum Ausgng. Die Umwndlungszeit besteht us der Schltzeit der Komprtoren und des Netzwerks und knn weniger ls ns betrgen. Die vielen Komprtoren belsten den Eingng kpzitiv und nehmen viel Verlustleistung uf. Die Auflösung beträgt zwischen 4 und 8 bit. Auf Kosten eines hohen Schltungsufwnds glänzt der Flsh ADC mit äußerst kurzen Umwndlungszeiten. Höhere Auflösungen erreicht mn oft durch Hintereinnderschltung von mehreren Flsh Wndlungen (Pipelined Flsh) unter Einstz von DAC s. Die Mehrstufigkeit erhöht llerdings die Ltenzzeit, ber vermindert die Abtstrte nicht wesentlich. Die Pipeline-Architekturen hben einstufigen Flshwndler ußer bei extrem zeitkritischen Anwendungen ersetzt. Z.B. Digitl-Oszilloskope DSF 8 Krh WS 3/4

82 8.6 (Sigm-Delt) Anlog-Digitl-Umsetzer [ Frnco Contdini] Obwohl -Wndler für viele Appliktionen besser geeignet sind ls herkömmliche ADCs, greifen Entwickler häufig nur" zum Stndrd. Anlog/Digitl-Wndler wurden vor llem für Anwendungen mit sehr hohen Auflösungen entwickelt und sind us diesem Grund besonders für Wgen oder Multimeter geeignet. Doch sehr häufig setzen Entwickler eine ndere, weniger gut geeignete Architektur wie z.b. SAR-ADC ein, weil ds Verfhren oft nicht verstnden wird. Dbei ist insbesondere der nloge Teil des -ADCs sehr einfch ufgebut, d es sich hier nur" um einen -Bit ADC, einen Integrtor und einen Komprtor hndelt. Die digitle Seite ist mit ihrer Filterung und Dezimierung dgegen komplexer, lässt sich mit etws Know-how in den Bereichen Oversmpling, Noise Shping und digitler Filterung jedoch ebenflls einfch beherrschen. Der wichtigste Punkt beim Einstz eines -ADCs ist ds Oversmpling. Um die mit dem Oversmpling verbundenen Effekte besser erläutern zu können, wird zunächst die Übertrgungsfunktion im Frequenzbereich eines trditionellen Multibit ADC mit sinusförmigem Eingngssignl betrchtet. Dieses Signl wird mit der Frequenz f bgetstet, die nch dem Nyquist-Theorem mindestens doppelt so groß sein muss wie die höchste zu erwrtende Eingngsfrequenz. Eine schnelle Fourier-Trnsformtion (FFT), ngewendet uf ds digitle Ausgngssignl des ADC, zeigt dnn die einzelne Huptfrequenz des Eingngssignls und zufälliges Ruschen im Bereich DC bis f /. Beknnt ls Quntisierungsruschen lässt sich dieser Effekt wie folgt beschreiben: m ADC-Eingng liegt ein kontinuierliches Signl mit einer unbegrenzten Anzhl von möglichen Zuständen, ber der digitle Ausgng ist ein diskretes Signl, bei dem die Anzhl der Zustände von der Auflösung des Wndlers (N-Bit) bestimmt wird. So verliert mn bei der Wndlung von nlog nch digitl Informtionen und bewirkt dmit eine Verzerrung des Signls. Die Größe dieses Quntisierungsfehlers ist zufällig und erreicht mximl ±/ LSB. Dividiert mn die Huptmplitude der FFT durch den Effektivwert ller Ruschfrequenzen, erhält mn den Signl-Ruschbstnd (SNR). Für einen N-Bit ADC ist: SNR =,76 db + 6. db N (8.4) Um den SNR und dmit die Genuigkeit in einem ADC zu verbessern, muss demnch die Anzhl der Bits N erhöht werden. Jetzt wird im gennnten Beispiel die Abtstfrequenz (m fs) um die Oversmpling- Rte m vergrößert. Die FFT Anlyse zeigt dnn, dss der Ruschnteil nch dieser Mßnhme eine geringe Amplitude ufweist. Der SNR ist hierbei jedoch der gleiche wie vorher, ber die Ruschenergie ist uf einen größeren Frequenzbereich verteilt. -Wndler nutzen diesen Effekt, in dem sie nch dem -Bit Wndler ein digitles Filter folgen lssen, ds den größten Teil des Ruschnteils usmskiert, Bild 8.3. DSF 8 Krh WS 3/4

83 Bild 8.3: Spektrum eines Sigm Delt Modultors erster Ordnung [Ti] Der Effektivwert des Ruschens ist jetzt kleiner, weil ein großer Anteil des Ruschens digitl herusgefiltert wird. Diese Methode ermöglicht es -Wndlern, einen großen dynmischen Bereich mit einem niedrig uflösenden ADC zu erreichen. Der SNR für einen -Bit ADC beträgt 7,78 db (6, +,76 = 7,78). Jedes Fktor-- Oversmpling steigert den SNR um 6 db und ist gleichbedeutend mit dem Gewinn eines Bits. Dmit erreicht ein -Bit ADC mit 6-fchem Oversmpling eine Auflösung von + 4 = 5 Bit. Um 6 Bit Auflösung zu erreichen, müsste mn entsprechend 5 -fch oversmpeln, ws prktisch kum relisierbr ist. Aber -Wndler umgehen diese Einschränkung mit der Technik des sog. Ruschformens ( Noise Shping"), wodurch eine Verbesserung von mehr ls 6 db pro -fchem Oversmpling ermöglicht wird. Integrtor clk u e Anlog Input (-) K I s Komp. u ref u bit strem Bit DAC Bild 8.4: Modultor. Ordnung: K = ( Integrtor) Um Noise Shping zu verstehen, hilft ds Blockdigrmm eines -Modultors erster Ordnung, Bild 8.4. Es enthält einen Integrtor, einen getkteten Komprtor mit einem -Bit DAC in der Rückführungsschleife. Dieser DAC ist hier einfch ein DSF 83 Krh WS 3/4

84 Schlter, der den invertierenden Eingng des Differenzverstärkers mit einer positiven oder negtiven Referenzspnnung verbindet. Bild 8.5: Eingngs- und Ausgngssignl eines -Modultors [Ti] Über den DAC wird ds Ausgngssignl des Integrtors nhe n der Komprtor Referenzschwelle gehlten. Die Anzhl der Einsen" m Modultor-Ausgng ist proportionl zum Eingngssignl. Für ein steigendes Eingngssignl erzeugt der Komprtor eine steigende Anzhl von Einsen und sie nimmt b für ein fllendes Signl, Bild 8.5. Durch ds Summieren der Fehlerspnnung rbeitet der Integrtor ls Tiefpss für ds Eingngssignl und ls Hochpss für ds Quntisierungsruschen. Ddurch wird ein großer Teil des Quntisierungsruschens in Richtung höherer Frequenzen verschoben. U U A A KI ( s) U E ( s) U A ( s) Q( s) (8.5) s K s I ( s) U E ( s) Q( s) (8.6) s s K I K I Die Ruschübertrgungsfunktion Q(f) eines Modultors K-ter Ordnung knn wie folgt beschrieben werden: f LSB f S fs K u f Q sin (8.7) Dmit ht der Modultor ds Quntisierungsruschen zwr nicht vermindert, ber nders verteilt. Wird ein ideler Tiefpss n den --Modultor mit Noise Shping ngehängt, entfernt dieser mehr Ruschen ls bei einfchem Oversmpling, weil ds Ruschen in Richtung höherer Frequenzen geschoben wird, Bild 8.6. Dieser Modultortyp (erster Ordnung) erreicht ddurch eine 9 db SNR-Verbesserung pro Ver- DSF 84 Krh WS 3/4

85 dopplung des Oversmpling. Für eine Quntisierung höherer Ordnung knn Noise Shping uch durch die Verwendung von mehr ls einer Summier- und Integrtionsstufe pro -Modultor erfolgen. So liefert z.b. ein -Modultor zweiter Ordnung (Bild 8.7) bereits eine 5dB Verbesserung des SNR für jede Verdopplung des Oversmpling. Bild 8.6: Ruschspnnung ls Funktion der Frequenz [Ti] ) erster Ordnung b) zweiter Ordnung u. Integrtor. Integrtor K I (-) s (-) K I s clk Comp. bit strem u ref Bit DAC Bild 8.7: -Modultor. Ordnung: K = ( Integrtoren) Bild 8.8 zeigt den Zusmmenhng zwischen der Ordnung des -Modultors, dem gewählten Oversmpling und der Auflösung (SNR) - in Kombintion mit einem idelen Tiefpss. Mit dem Oversmpling Fktor M knn die Bndbreite des Übertrgungssystems wie folgt beschrieben werden: DSF 85 Krh WS 3/4

86 (8.8) Die Ruschspnnung innerhlb der Bndbreite B knn dnn durch Kombintion der Gleichungen (8.7) und (8.9) berechnet werden (Noise shping): ( ) K B u f LSB U Q, rms sin df f f (8.9) S S Durch Auflösen des Integrls erhält mn: SNR [db] 3. Ordnung. Ordnung 8 6. Ordnung M Bild 8.8: Sigm Delt Anlog Digitl Umsetzer Modultor:. bis 3. Ordnung Signl to Noise Rtio bei ideler Tiefpssfilterung ls Funktion des Oversmpling Fktors M K LSB U Q,RMS u K K (8.) M SNR u / P IDEAL db log (8.) UQ,RMS SNR IDEAL K,76 6, N log K log MdB (8.) K DSF 86 Krh WS 3/4

87 N=, K=:,6 3 log MdB SNR IDEAL N=, K=: 5, 5 log MdB (8.3) SNR IDEAL N=, K=3: 3,6 7 log MdB SNR IDEAL Digitler Dezimierungsfilter Der Ausgng des -Modultors liefert einen -Bit Dtenstrom mit einer sehr hohen Abtstrte, die üblicherweise im MHz-Bereich liegt. Die Aufgbe des digitlen Dezimierungsfilters ist es, (.) die Informtionen us dem Dtenstrom uszulesen und (.) die Dtenrte uf den gewünschten Wert zu reduzieren. In einem -Wndler mittelt ds digitle Filter den -Bit Dtenstrom und vermindert ddurch ds Quntisierungsruschen (verbessert die ADC-Auflösung). Es legt die Signlbndbreite, die Einschwingzeit und die Stoppbnd-Unterdrückung fest. Bild 8.9: Sigm Delt Anlog Digitl Ums. mit Tiefpssfilter und Dezimierung ) Blockschltbild b) und c) Erstzschltbilder. Der Tiefpss reduziert ds Quntisierungsruschen (rot) und knn gleichzeitig ls nti-alising Filter für die nchfolgende Abtstung dienen (blu). DSF 87 Krh WS 3/4

88 Idel Filter Sinc Filter 64 8 M Bild 8.: Effektive Auflösung eines Umsetzers. Ordnung bei Verwendung div. reler Tiefpssfilter (sinc K ) ls Funktion des Oversmplingfktors M [Ti] DSF 88 Krh WS 3/4

89 9 Der Abtstvorgng 9. Relisierung eines Abtstgliedes Eine mögliche Schltung eines nlogen Abtstgliedes ist in Bild 9. drgestellt. Die Ausgngsspnnung u(kt ) folgt bei geschlossenem Schlter S (meist durch einen Feldeffekttrnsistor (FET) relisiert) der Eingngsspnnung u(t) (Prinzip des Spnnungsfolgers). Öffnet der Schlter, so wird der gerde nliegende Eingngsspnnungswert u(t) im Kondenstor C H gespeichert. Am Ausgng des Abtst-Hltegliedes liegt dieser Wert solnge n, bis der Schlter wieder schließt und ein neuer Wert ufgenommen wird. Durch die Gegenkopplung werden die Gleichspnnungsfehler (Offsetspnnungs- und Verstärkungsfehler sowie der Fehler des Schlters) reduziert. u(t) - - S V V + T + C H u c (t) u (kt ) Abtstsignl Bild 9.: Schemtischer Aufbu eines Abtst-Hltegliedes (S&H) Eine wichtige Kenngröße des nlogen Abtst-Hltegliedes ist die Driftrte. Sie gibt n, wie schnell sich der Kondenstor bei offenem Schlter entlädt. Typische Werte der Driftrte sind, mv/s bis mv/s. Niedrigere Driftrten werden durch FET-Eingngsstufen erreicht. Die Zeit, die benötigt wird, um einen Eingngsspnnungswert zu erfssen, die Messwerterfssungszeit, hängt von der Größe des Kondenstors C H sowie von dem inneren Widerstnd des Verstärkers V b. Typische Werte für die Messwerterfssungszeit liegen in der Größenordnung einer Mikrosekunde. DSF 89 Krh WS 3/4

90 u(kt ) u kt Bild 9.: Ausgngsfunktion eines S&H-Gliedes k t / T k t / T Aus einer kontinuierlichen Zeitfunktion u(t) entsteht m Ausgng des S&H-Gliedes eine Treppenfunktion u kt ), Bild 9.. ( In hochwertigen Systemen ist jedem Knl ein seprter Smple & Hold zugeordnet, dmit die Signle zeitgleich genu bgetstet werden. 9. Mthemtische Beschreibung des Abtst-Hlte-Gliedes Um eine mthemtische Beschreibung von Abtstsystemen zu erleichtern, wird eine einheitliche Signldrstellung ngestrebt. Ausgngspunkt ist dbei die Treppenfunktion f (t), die us der zeitkontinuierlichen Funktion f(t) durch den Abtst-Hlte- Vorgng entsteht. Entsprechend Bild 9.3 knn f (t) ls Folge von Rechteckimpulsen konstnter Breite T und vribler Höhe f k = f(kt ) ufgefsst werden. f(t) f k = f( k. T ) k = t / T Bild 9.3: Aufbu einer Treppenfunktion us Rechteckimpulsen Mit Hilfe des Einheitssprungs ; fürt ( t) (9.) ; fürt DSF 9 Krh WS 3/4

91 knn mn jeden einzelnen dieser Rechteckimpulse ls Überlgerung von zwei um T gegeneinnder verschobenen und mit f k bzw. mit -f k bewerteten Einheitssprüngen drstellen (siehe Bild 9.4). f k (t-kt ) f k f k k T (k+)t t -f k (t-(k+)t ) t Bild 9.4: Rechteckimpuls ls Überlgerung zweier Sprungfunktionen Somit lässt sich die Treppenfunktion f (t) durch eine Reihe beschreiben: f ( t) fk ( tk T ) ( t(k) T ) (9.) k Die Lplce-Trnsformierte von f (t) ergibt den Ausdruck F ( s) L{ f ( t)} k kt s (k ) T s e e fk, (9.3) s s der sich in ein Produkt zweier Fktoren ufsplten lässt: T s e kt s F ( s) fk e (9.4) s k = G h (s) F * (s). (9.5) Mit diesen beiden Fktoren ist eine für den Abtst-Hlte-Vorgng wichtige mthemtische Beschreibung gefunden, deren Interprettion zu den folgenden Übertrgungsgliedern führt. Der -Abtster Zunächst wird der Fktor F*(s) betrchtet. Nch den Korrespondenzen der Lplce- Trnsformtion erhält mn für eine um T verschobene -Impulsfunktion (Dirc- Stoß) nch Bild 9.5. DSF 9 Krh WS 3/4

92 Bild 9.5: Drstellung der um k T verschobenen -Impulsfunktion (t-k T ) kt s e (9.6) Wendet mn diese Korrespondenz nch Gleichung (4.7) uf F * (s) n, erhält mn us * k T k s * F s f e t k k f f ( t k T ) (9.7) die Originlfunktion f * (t), die mn ls -Impulsfolge bezeichnet. Die -Impulsfunktion (t) (streng mthemtisch keine Funktion, sondern eine Distribution) ist definiert ls Grenzwert eines Rechteckimpulses der Höhe / und der Breite mit. Für die Impulsfläche gilt: t dt k (t) / t Bild 9.6: Definition des -Impulses mit. Beim Übergng von f(t) zu f * (t) werden dher nicht nur die Funktionswerte us f(t) entnommen, sondern es entsteht eine Folge von bewerteten -Impulsen der Fläche f k, die jeweils um T nch rechts verschoben sind. Entsteht eine -Impulsfolge ufgrund eines Abtstvorgnges, so spricht mn von einem Abtstsignl. DSF 9 Krh WS 3/4

93 Um us der kontinuierlichen Zeitfunktion f(t) ein Abtstsignl f * (t) zu bilden, wird ein Pseudo-Übertrgungsglied (siehe Bild 9.7) eingeführt, ds mn ls -Abtster (smpler) bezeichnet. Hierbei hndelt es sich um ein lineres Übertrgungsglied, ds jedoch nicht mit dem in Bild 9. drgestellten Abtster identisch ist, d die einzelnen Abtstwerte jeweils mit einem -Impuls multipliziert werden. Zur grfischen Drstellung des Abtstsignls werden die -Impulse durch Pfeile repräsentiert, deren Höhe jeweils dem Gewicht des zugehörigen -Impulses entsprechen. Die Pfeilhöhe ist dbei gleich dem Wert des bzutstenden Signls f(t) zum Zeitpunkt t = kt. f(t) ) b) f * (t) t k = t / T c) f(t) F(s) T f *(t) F*(s) Bild 9.7: -Abtster ) Eingngssignl (kontinuierliches Signl) b) Ausgngssignl (Abtstsignl) c) Blockschltbild des -Abtsters Ds Hlteglied nullter Ordnung G h (s) Mit dem Fktor G h (s) wird die Übertrgungsfunktion eines Übertrgungsgliedes beschrieben, dessen Impulsntwort g h (t) einem Rechteckimpuls der Höhe und der Breite T entspricht: G h s st e gh ( t) t t Τ (9.8) s Wird nun ein bewerteter -Impuls f k (t-kt ) einem solchen Übertrgungsglied ufgeschltet, entsteht m Ausgng ein Rechteckimpuls, der sich jedoch uf ds Zeitintervll T usdehnt und so die Höhe von f k und die Breite von T nnimmt (siehe Bild 9.8). DSF 93 Krh WS 3/4

94 f*(t) = f k (t-k T ) f (t) f k f k k T (k+) T t f*(t) k T (k+) T t f*(t) G h (s) f (t) Bild 9.8: Ausgngsgröße des Übertrgungsgliedes bei einem mit f k bewerteten Eingngsimpuls Der Bewertungsfktor f k wird über die gesmte Abtstperiode T gehlten. Mn spricht dher von einem Hlteglied, ds zur Unterscheidung von nderen hier nicht behndelten Hltegliedern ls Hlteglied nullter Ordnung bezeichnet wird. f *(t) f(t) ) k = t / T b) k = t / T c) f *(t) F *(s) T s e s f (t) F(s) Bild 9.9: Hlteglied nullter Ordnung ) Eingngssignl (Abtstsignl) b) Ausgngssignl (Treppenfunktion) c) Blockschltbild des Hltegliedes Wie in Bild 9.8 vernschulicht, erzeugt ds Hlteglied nullter Ordnung us einem Abtstsignl f * (t) ein entsprechendes stufenförmiges Ausgngssignl f (t). Es unter- DSF 94 Krh WS 3/4

95 scheidet sich dher vom Speicherglied nch Bild 9., welches ds Signl f (t) us einer Zhlenfolge bildet. Ds Hlteglied nullter Ordnung ist ein lineres Übertrgungsglied. Durch die mthemtische Zerlegung der Treppenfunktion gelngt mn so zu einer weiteren in Bild 9.9 ngegebenen Beschreibung des Abtst-Hlte-Gliedes. f(t) f *(t) f(t) t k = t / T k = t / T f(t) F (s) T f *(t) F *(s) T s e s f(t) F(s) f(t) F (s) Smple & Hold f(t) F(s) Bild 9.: Drstellung des Abtst-Hlte-Vorgngs, der us der mthemtischen Zerlegung folgt. Ein Vergleich mit Bild 9. mcht deutlich, dss die mthemtische Zerlegung des Abtst-Hlte-Gliedes zu einer einheitlichen Drstellung der Signle zwischen Abtstung und Speicherung geführt ht. Für die weitere Betrchtung von Abtstsystemen ist dies von großer Bedeutung. Anhnd des Frequenzgnges wird nun die Phsenverschiebung untersucht, die ds Hlteglied nullter Ordnung erzeugt. Mit s = j gilt für den Frequenzgng des Hltegliedes: G h jt e (j) j e jt / e j jt / e jt / sin( T / ) jt / e DSF 95 Krh WS 3/4

96 DSF 96 Krh WS 3/4 / j e / ) / sin( T T T T / j e ) si( T T T (9.9) Ds Hlteglied nullter Ordnung führt somit eine Phsenverschiebung von = t = T / ein. Dies entspricht einer Zeitverschiebung (Totzeit) von t AH = T /.

97 9.3 Ds Abtsttheorem von Shnnon Je nch Rechengeschwindigkeit des digitlen Systems ergibt sich eine mximl mögliche Abtstfrequenz. Dbei lässt sich mit Hilfe des Abtsttheorems von Shnnon die erforderliche Mindest-Abtstfrequenz ngeben. Ds Abtsttheorem soll hier nicht usführlich mthemtisch hergeleitet, sondern nur kurz drgestellt werden. Dzu wird von einem bndbegrenzten Signl f(t) mit der höchsten im Signl vorkommenden Signlkreisfrequenz mx usgegngen. In der nchfolgenden Betrchtung wird im Zusmmenhng mit der Kreisfrequenz = f vereinfcht von der Frequenz gesprochen. Der Gebruch von der Frequenz f wird vermieden, um eine Verwechslung mit den Funktionswerten f(kt ) = f k zu verhindern. Bild 9. zeigt ds Signl und sein Amplitudenspektrum. ) f(t) b) F( j) t mx mx Bild 9.: zeitkontinuierliches Signl ) Zeitverluf b) Amplitudenspektrum DSF 97 Krh WS 3/4

98 ) f(t) b) F( j) t = k T - mx mx Bild 9.: Abtstsignl ) zeitlicher Verluf b) Amplitudenspektrum Im Frequenzspektrum des bgetsteten Signls treten neben dem Originlspektrum, uch Grundspektrum gennnt, zusätzliche höherfrequente Abbilder des Originlspektrums bei nf uf, die mn ls Seitenspektren bezeichnet. Dbei enthält ds Grundspektrum die volle Informtion, obwohl nur wenige Funktionswerte bgetstet werden (siehe Bild 9.). Soll die im ursprünglichen Signl f(t) enthltene Informtion nicht verfälscht werden, so muss die Abtstfrequenz f mindestens so hoch gewählt werden, dss sich die periodisch wiederkehrenden Seitenspektren nicht mit dem Grundspektrum überlppen. Aus dieser Überlegung herus folgt ds Shnnonsche Abtsttheorem: Ist f(t) ein bndbegrenztes Signl mit der höchsten im Signl vorkommenden Frequenz mx, dnn ist f(t) durch sein Abtstsignl f * (t) eindeutig bestimmt, wenn für die Abtstfrequenz folgendes gilt: f f mx, (9.) bzw. für die Abtstzeit: T mx f mx. (9.) Die mximl mögliche Signlfrequenz, die ein Abtstsystem verrbeiten knn, nennt mn Shnnon-Frequenz (Nyquist-Frequenz). s (9.) T DSF 98 Krh WS 3/4

99 Somit liefert ds Shnnonsche Abtsttheorem eine mindestens erforderliche Abtstfrequenz (Abtstrte) von = mx, (9.3) die im Allgemeinen ls Nyquist-Rte bezeichnet wird. Treten im Frequenzspektrum des zeitkontinuierlichen Signls Anteile oberhlb der Shnnon-Frequenz uf ( mx > /), dnn werden diese bei der Abtstung in ds ursprüngliche Frequenzbnd des Originlspektrums zurückgefltet (siehe Bild 9.3). Dort überlgern sie bereits vorhndene Signlnteile oder treten ls völlig neue Signlfrequenzen uf. Dieses Phänomen wird uch ls Überlppung (Alising) bezeichnet. In einem solchen Fll wird die ursprüngliche Informtion verfälscht, und ds zeitkontinuierliche Signl lässt sich nicht mehr us dem Abtstsignl rekonstruieren. DSF 99 Krh WS 3/4

100 9.4 Anti-Alising-Filter Bei einem Anti-Alising-Filter hndelt es sich um ein Tiefpss-Filter zur Bndbegrenzung der zeitkontinuierlichen Signle. Gemäß dem Abtsttheorem von Shnnon können nur Signlfrequenzen bis zur hlben Abtstfrequenz ohne Verlust der Signlinformtion erfsst werden. Dieses Tiefpss-Filter stellt sicher, dss keine höheren Frequenzen bgetstet werden. ) f(t) b) F( j) t = k T mx mx Bild 9.3: Abtstsignl bei Verstoß gegen ds Abtsttheorem ) zeitlicher Verluf b) Amplitudenspektrum Diese meist nloge Vorfilterung mit einem so gennnten Anti-Alising-Filter muss in den meisten Fällen durchgeführt werden, d technische Signle im llgemeinen nicht uf den interessierenden Frequenzbereich bndbegrenzt sind. DSF Krh WS 3/4

101 9.5 Rekonstruktions-Filter Um ds ursprüngliche Signl f(t) wieder zurück zu gewinnen, müssen die im Frequenzspektrum des Abtstsignls F * (j) vorhndenen Seitenspektren oberhlb von mx bgeschnitten werden. Dzu benötigt mn ein Tiefpss-Filter, ein so gennntes Rekonstruktionsfilter, ds die Signlnteile oberhlb von mx usblendet (siehe Bild 9.3). Prktisch wird durch ds Rekonstruktionsfilter us der Stufenfunktion wieder ein kontinuierlicher Zeitverluf. D ein reles Tiefpss-Filter einen endlich steilen Verstärkungsbfll ufweist, muss für eine prktische Relisierung die Abtstfrequenz größer ls mx gewählt werden, um die Seitenspektren vom Grundspektrum sicher trennen zu können. In Audio-Systemen werden hierfür Tiefpssfilter höherer Ordnung verwendet, um einen möglichst steilen Verluf des Amplitudengngs zu erhlten. In der Regelungstechnik wird mehr Wert uf eine geringe Phsenverschiebung gelegt. Oft ist die Strecke selbst ein genügend großer Tiefpss. F *( j) Ideler Tiefpss - - mx Bild 9.4: Rekonstruktion des ursprünglichen Originlspektrums mit Hilfe eines idelen Tiefpss-Filters Unmittelbr us den Forderungen, die sich us dem Abtsttheorem von Shnnon ergeben, lässt sich somit ein diskontinuierliches Übertrgungssystem für kontinuierliche Signle nch Bild 9.4 ngeben. mx DSF Krh WS 3/4

102 ~ f(t) ~ F(s) Anti-Alising-Filter f(t) F(s) Smple-Glied - T f * (t) F * (s) Hold & Rekonstr. Filter f(t) F(s) Bild 9.5: Diskontinuierliches Übertrgungssystem für kontinuierliche Signle Überträgt mn diese Struktur uf den oben beschriebenen Abtstvorgng, so ist die Forderung nch einem bndbegrenzten Eingngssignl durch ds dem Digitlrechner vorgeschltete Anti-Alising-Filter erfüllt. Aber uch ds geforderte Rekonstruktions-Filter, welches ds Originlspektrum us dem periodisch verlufenden Spektrum des Abtstsignls herusfiltern soll, ist näherungsweise durch ds Hlteglied nullter Ordnung vorhnden. Um dies zu verdeutlichen, wird noch einml der Frequenzgng des Hltegliedes nullter Ordnung nch Gleichung (-.) betrchtet: G (j) T h sin( T T / ) e jt / Der Betrg des Frequenzgnges ist in Bild 9.6 drgestellt. G h j Kennlinie eines idelen Tiefpsses - Bild 9.6: Betrg des Frequenzgnges des Hltegliedes nullter Ordnung im Vergleich zu dem eines idelen Tiefpsses Der Betrg des Frequenzgngs zeigt zwr nur in grober Näherung Tiefpsschrkter, doch ist dies für den Fll usreichend, wenn ds Rekonstruktionsfilter zusätzlich hohe Frequenzen dämpft. DSF Krh WS 3/4

103 Rele Abtstsysteme Um die nlogen Prozesssignle verrbeiten zu können, müssen diese bgetstet und digitlisiert werden. Dzu werden us dem kontinuierlichen Werteverluf x(t) zu den Abtstzeitpunkten Messwerte (Abtstwerte) entnommen. Erfolgt die Abtstung zu äquidistnten Zeitpunkten, lso mit einer konstnten Abtstperiode T (Abtstfrequenz f ), so entsteht us der Funktion x(t) ein zeitdiskretes Signl, ds durch die Wertefolge {x(k T )} drgestellt werden knn. {x(k T )} = { x() ; x(t ) ; x( T ) ;... ; x(k T ) ;...} (.) Durch die begrenzte Wortbreite von n-bit, die ein Digitlrechner zur Verfügung ht, können die Amplituden nur mit endlich vielen Quntisierungsstufen (m= n ) drgestellt werden. Es entsteht, wie in Bild. ngedeutet, ein mplitudenquntisiertes und zeitdiskretisiertes Signl, lso ein digitles Signl, ds mit der Wertefolge {x k } den Zeitverluf des Signls beschreibt. {x k } = { x ; x ; x ;... ; x k ;...} (.) x(t) nlog {x k } digitl t T k = t /T t x(t) Abtsten & Digitlisieren {x k } Bild.: Digitlisieren (Zeit und Wert) eines kontinuierlichen Signls Der Ausgngsgrößenverluf wird dnn über einen in Softwre codierten Algorithmus G(z) gebildet. Dzu berechnet der Digitlrechner zyklisch us der Wertefolge {x k } die Ausgngsgrößenfolge {y k }. Die berechneten Ausgngsgrößen dienen dnn ls Stützwerte, us denen wieder ein kontinuierliches Stellsignl gebildet wird. Dies erfolgt m einfchsten ddurch, dss mn einen ermittelten Stützwert über die gesmte Abtstperiode T speichert bis der nächste Wert zur Verfügung steht. So wird us der Stellgrößenfolge {y k }, wie in Bild. gezeigt, eine Treppen- oder Stufenfunktion erzeugt, die mit y (t) bezeichnet werden soll. DSF 3 Krh WS 3/4

104 {y k } T t y(kt ) Speichern Bild.: Umwndlung eines digitlen Signls in eine Stufenfunktion (Hlteglied) Bild.3: Äquivlentes Blockschltbild eines Abtstsystems Der Vorgng des Abtstens mit nschließendem Speichern lässt sich dnn durch ein neues Übertrgungsglied ds Abtst-Hlte-Glied beschreiben. Es ist demnch in erster Linie ein us der theoretischen Betrchtung entstndenes Übertrgungsglied. Zwr lässt sich ein solches uch verwirklichen, doch sei in diesem Zusmmenhng uf die oben ngeführte Beschreibung des Abtstsystems verwiesen. [,, 3, 5,,, 3]. DSF 4 Krh WS 3/4

105 . Zeitverhlten eines Abtstsystems u(t) x k x(t) x (t) y(t) y k Filter S&H im ADC ADC Algori. DAC Filter S&H ADC Algori. DAC ) y(t) T Quntisierungsruschen Filter S&H Algori. Filter u(t) x(t) x(t-t t ) x(t) y(t) e st t t b) e st t S&H Algori. y(t) T t Bild.4: Zeitverhlten der digitlen Signlverrbeitung ) Reles System b) Mthemtisches Erstzsystem Die Hlteeigenschft des DAC (T ) dominiert. Die AD / DA Wndlung wird nur noch ls Quntisierungsruschen berücksichtigt. Ds Abtsten und die Berechnung des Algorithmus erfolgen unendlich schnell. DSF 5 Krh WS 3/4

106 PC-Bus Interfce. Aufbu eines prozessorbsierten Systems: µc, DSP und IPC Zur prozessorbsierten digitlen Signlverrbeitung werden Mikrocontroller (µc), Digitle Signlprozessoren (DSP) und Industrie-PCs (IPC) eingesetzt. Im Folgenden wird ein kurzer Überblick über den prinzipiellen schltungstechnischen Aufbu eines digitlen Systems gegeben, um zu einem für die Signlverrbeitung wesentlichen Blockschltbild des Abtstsystems zu kommen. Bild.5: Prinzipieller Aufbu einer digitlen Signlverrbeitung mit einem IPC Der Trend zur dezentrlen Struktur in der Prozessutomtisierung ht zu einer Vielflt von unterschiedlichsten Prozessrechnern geführt. Dies ist vor llem durch die schnelle Entwicklung der Mikroelektronik und der dmit verbundenen Integrtion von Hlbleiterbuelementen zu begründen. So lssen sich DDC-Systeme uch mit IPCs ufbuen, Bild.5. Dbei ermöglicht deren hohe Rechenleistung zusätzlich den Einstz von Softwre-Werkzeugen, sog. CAE-Pketen (CAE, Computer-Aided Engineering). Diese unterstützen den Ingenieur in llen Entwurfsphsen, von der Modellbildung bis zur Erprobung und Simultion von Systemen. Dmit der PC die Signle erfssen und Ausgngssignle erzeugen knn, benötigt er eine zusätzliche Schnittstelle. Eine beispielhfte Drstellung einer solchen Ein- /Ausgbekrte (I/O-Interfce) ist in Bild.6 mit den wichtigen Komponenten wiedergegeben. DSF 6 Krh WS 3/4

107 Filter Anloge Eingänge Filter MUX S&H ADC Filter Interfce Steuereinheit DAC # Anloge Ausgänge DAC # DAC #n BUS - Buffer PC - BUS Bild.6: Ein-/Ausgbekrte (I/O-Interfce) Um mehrere Messgrößen zu erfssen, benötigt der Digitlrechner wegen seiner sequentiellen Arbeitsweise einen Messstellenumschlter. Ddurch lssen sich die Eingngssignle in einer zeitlich festgelegten Reihenfolge dem PC zuführen. Mikrocontroller Mikrocontroller (uch µcontroller, µc, MCU) sind Ein-Chip-Computersysteme, bei welchen nhezu sämtliche Komponenten (wie z. B.: der Prozessor (Centrl Processing Unit, CPU), der Progrmmspeicher (meist uf Red-Only-Memory- (ROM-) o- der Flsh-Bsis), der Arbeitsspeicher (uf Sttic Rndom Access Memory-Bsis (SRAM)), Ein-/Ausgbe-Schnittstellen) uf einem einzigen Chip (Integrierter Schltkreis) untergebrcht sind. Auf modernen Mikrocontrollern finden sich häufig uch speziellere Peripherieblöcke wie z. B.: Tktgenertoren, EEPROM-Speicher (Electriclly Ersble Progrmmble Red Only Memory), CAN (Controller Are Network), LIN (Locl Interconnect Network), USB (Universl Seril Bus), I²C (Inter-Integrted Circuit), SPI (Seril Peripherl Interfce), serielle bzw. Ethernet-Schnittstellen, LCD-Controller und -treiber und DSF 7 Krh WS 3/4

108 hochuflösende Anlog-Digitl-Wndler (mit bis Bit Auflösung und bis zu 6 Knälen). Bild.7: PIC8F87 Mikrocontroller in einem 8-pin TQFP-Gehäuse Einstzbereiche Diese Form eines Computers tritt in Gestlt von eingebetteten Systemen im Alltg oft unbemerkt in technischen Gebruchsrtikeln uf, zum Beispiel in Wschmschinen, Chipkrten (Geld-, Telefonkrten), Unterhltungselektronik (Videorekordern, CD/DVD-Plyern, Rdios, Fernsehgeräten, Fernbedienungen), Büroelektronik, Krftfhrzeugen (ABS, Airbg, Motorsteuerung, ESP usw.), Mobiltelefonen und sogr in Uhren und Armbnduhren. Drüber hinus sind sie in vielen Computer- Peripheriegeräten enthlten (Tsttur, Mus, Drucker, Monitore, Scnner uvm.). Mikrocontroller sind meist nspruchslos im Energiebedrf und in der Serienfertigung äußerst preiswert herzustellen. Dieses ist uf die hohen Stückzhlen, meist eher geringen Tktfrequenzen von bis zu Meghertz und uf die im Vergleich zu leistungsstrken Mikroprozessoren geringere Komplexität zurückzuführen. Abgrenzung zu Mikroprozessoren Die Grenze zwischen Microcontrollern und Mikroprozessoren ist mehr oder weniger fließend, ws sich uch drin zeigt, dss oft nch einiger Zeit uch Mikrocontroller- Vrinten einer neuen Mikroprozessor-Architektur erschienen sind. Im einfchsten Fll geschieht dies, indem die bei einem klssischen Mikroprozessor ls Unterstützungs- und Peripheriebusteine relisierten Komponenten wie Tkt- und Reset- Erzeugung, Interruptcontroller, Zeitgeber, Schnittstellenbustein und zum Teil uch Speichercontroller in den Chip selbst integriert werden, so dss für ein funktionsfähiges Prozessorsystem oft nur noch ein Qurz (für den Tkt) und Speicherbusteine nötig sind. Typische Vertreter dieser Gttung sind z. B. der 886 von Intel (vom 886 bgeleitet), die ARM-Fmilie sowie ColdFire (MC68xx) von Freescle (vormls Motorol). Diese Controller-Bureihen werden oft uch noch dnn weitergeführt, wenn die betreffende Minstrem-CPU schon längst nicht mehr produziert wird. Die Hrdwre solcher um Peripheriebusteine ergänzter Prozessorkerne ist mnchml in Form eines Multi Chip Modules (MCM) relisiert. DSF 8 Krh WS 3/4

109 Dem gegenüber gibt es ber uch klssische Microcontrollerrchitekturen, die von Anfng n nicht ls reines Mikroprozessorsystem gedcht wren, sondern primär uf Steuerungsufgben gezielt hben. Diese zeichnen sich z. B. ddurch us, dss mit ihnen uch ein Single-Chip-Betrieb völlig ohne externe Speicherbusteine möglich ist, ebenso wie der Befehlsstz der CPU meist spezilisierte Befehle für ds Steuern einzelner Signlleitungen (mittels sogennnter Bitmnipultionen) bietet. Ebenflls wichtig ist für solche Controller eine möglichst kurze Interrupt-Ltenzzeit, lso die Zeitspnne, die der Controller brucht, um uf die Unterbrechungsnforderung einer Signlquelle (Zeitgeber, Peripheriebustein etc.) zu regieren. Typische Vertreter dieser Gttung sind z. B. der 85 von Intel sowie der C66 von Siemens (heute Infineon) und TriCore von Infineon. Architekturen Die Anzhl der verbuten Mikrocontroller überschreitet bei weitem die Geräte, die mn sich unter einem Computer eigentlich vorstellt. Die überwiegende Mehrzhl der verwendeten Mikrocontroller bsiert uf 8-Bit-Prozessoren, deren grundlegende Architektur teilweise noch us der ersten Hälfte der 97er Jhre stmmt. Es gibt jedoch uch 4-, 6- und 3-Bit-Mikrocontroller, wobei die 3- und 6-Bitter mittlerweile mengenmäßig zu den 8-Bittern ufholen. Prktisch gibt es zu jedem Mikroprozessor mehr ls ein Pendnt bei den Mikrocontrollern. Außerdem gibt es Mikrocontroller, die keinem Mikroprozessor nchgefolgt sind, wie Atmel AVR, PIC-Mikrocontroller oder TI MSP43, Infineon TriCore, (X)C6x und viele weitere. Benutzte Progrmm-Speicher Für Hobbynwendungen, bei Stückzhlen bis zu einigen tusend pro Jhr und bei Anforderungen nch hoher Flexibilität (z. B. wegen geplnter nchträglicher Progrmmupdtes) werden Mikrocontroller mit Progrmmspeicher in Flsh- oder EEPROM-Technologie eingesetzt. Für größere Stückzhlen, d. h. im Bereich von mehr ls einigen tusend pro Jhr, werden dgegen zumeist mskenprogrmmierte Mikrocontroller eingesetzt. Der einzelne Mikrocontroller ist hierbei preisgünstiger, jedoch entstehen Initilkosten für die Herstellung einer Mske mit dem jeweiligen Progrmmcode, die dnn uch nicht mehr geändert werden knn, ds heißt, mn ht dnn einen Mikrocontroller mit einem festen Progrmm im (internen) ROM. Des Weiteren gibt es Mikrocontroller, deren Progrmm in einem EPROM (Erseble Progrmmble Red Only Memory) bgelegt wird. Ds erforderliche Qurzgls-Fenster verteuert ds Gehäuse und verlngt zum Löschen etw Minuten lng strk ozonbildende UV-C-Strhlung. EPROM-Typen sind dher fst vollständig durch funktionsgleiche Flsh-bsierte Mikrocontroller ersetzt worden. Typische Speichergrößen heutiger Mikrocontroller liegen zwischen KB und MB für ds Progrmm und zwischen 3 Bytes und 48 KB für die Dten. Viele Modelle können ber uch wesentlich größeren externen Speicher nsprechen. DSF 9 Krh WS 3/4

110 Progrmmierung Mikrocontroller werden meist in der Progrmmiersprche C oder C++ progrmmiert. Andere Sprchen werden seltener eingesetzt. Zur Funktionsüberwchung von Mikrocontrollersteuerungen werden in der Regel so gennnte Wtchdog-Schltungen eingesetzt, die teilweise ber uch schon in den Mikrocontroller integriert sind. DSP Flschenhls -> Prozessorbus.3 Aufbu eines FPGA bsierten Signlverrbeitungssystems Alles prllel, schnell, -> viel I/O DSF Krh WS 3/4

111 Digitle Filter Bei der Synthese von Digitlfiltern greift mn meist uf die umfngreichen Erfhrungen und Algorithmen zur Synthese von Anlogfiltern zurück. Die berechneten Anlogfilter können dnn durch geeignete Trnsformtion in Digitlfilter überführt werden. Dbei muss berücksichtigt werden, dss in Abtstsystemen der relevnte Frequenzbereich durch die gewählte Abtstfrequenz f begrenzt ist. In diesem Kpitel werden die Eigenschften von Digitlfiltern bei der Verrbeitung bgetsteter Signle betrchtet. Der Abtst-Hlte-Vorgng (Kpitel 9) eines Systems wird hier nicht explizit betrchtet. u k G(z) x k Bild.: Filterung der Eingngsfolge {u k } mit einem Digitlfilter mit der Übertrgungsfunktion G(z) zur Ausgngsfolge {x k }. Nichtrekursive Digitlfilter (FIR) Nichtrekursive Digitlfilter werden in der deutschsprchigen Litertur uch ls Trnsverslfilter und in der ngelsächsischen Litertur ls Finite Impulse Response Filter oder kurz FIR-Filter bezeichnet ( endliche Impulsntwort). Die Ausgngsfolge {x k } eines FIR-Filters berechnet sich usschließlich us der Eingngsfolge {u k }. Eine Rückführung der Ausgngsfolge findet nicht sttt ( nicht rekursiv). Deshlb sind FIR-Filter immer stbil. x k x k b m i u i k b b u ki u k- b u k- b m u k-m (.) Es gibt eine einfche und nschuliche Möglichkeit, um die Koeffizienten eines FIR- Filters zu berechnen. Wird uf ein Filter ein Einheitsimpuls k gegeben, so erscheint m Ausgng eine Impulsntwort. Die Werte dieser Impulsntwort entsprechen genu den gesuchten Filterkoeffizienten b i. In der Prxis wird ber üblicherweise nicht die Impulsntwort sondern der Frequenzgng des Filters vorgegeben. Mit der Diskreten Fourier-Trnsformtion (DFT) knn us dem Frequenzgng direkt die Impulsntwort berechnet werden. Als Beispiel soll mit einem FIR-Filter (näherungsweise) ein ideler Tiefpss relisiert werden. DSF Krh WS 3/4

112 H(f ) -f g f g f T i f g h h t sin f g f g t t -T i T i T i t f g 4 f S T 4T i T Bild.: Die Fourier-Trnsformtion liefert us dem vorgegebenen Frequenzgng (oben) die FIR-Koeffizienten (unten) Die Funktion der Impulsntwort ist vom sin(x)/x (Sinc) Typ und besitzt n der Stelle Null den Grenzwert,. Die Anzhl der Filterschritte (m+), oft uch Tps gennnt, ist us Symmetriegründen meist ungerde. Weil in der Prxis nur endlich viele Koeffizienten verwendet werden können, wird der idele Frequenzgng nur näherungsweise erreicht: Der Übergng vom Durchlss- in den Sperrbereich erfolgt stetig, lso mit einer endlich steilen Flnke. Je mehr Koeffizienten verwendet werden, umso steiler ist die Flnke. Im Durchlss- wie im Sperrbereich ergeben sich Ripple (Welligkeit). Dieses Abschneiden von Koeffizienten bewirkt ein Überschwingen des Frequenzgngs kurz vor dem Übergng vom Durchlssbereich in den Sperrbereich. Dieses Überschwingen wird in der Nchrichtentechnik ls Gibbs sches Phänomen bezeichnet. Durch eine Fensterung (Windowing) knn dieser sehr störende Einfluss verringert oder sogr beseitigt werden. Fenster sind bestimmte Funktionen, mit denen die Fourier-Koeffizienten (bzw. Filterkoeffizienten) multipliziert werden, um die nur endliche Anzhl von Koeffizienten uszugleichen. Sehr gebräuchlich ist ds Hmming-Window: HWk,54,46 cos k (.) m DSF Krh WS 3/4

113 Alterntiv werden z.b. uch Hnn, Tukey, Cosinus, Blckmn, Guss und Kiser Window verwendet. Ein solches FIR-Filter weist (näherungsweise) den gewünschten Frequenzgng uf und verurscht keine Phsenverschiebung. Leider ist es so jedoch nur eingeschränkt relisierbr, d zur Berechnung von der Ausgngsfolge {x k } uch der zukünftige Verluf von der Eingngsfolge {u k } beknnt sein muss. Bei der Off-line Berbeitung von Signlverläufen ist ds keine Beschränkung. Bei der On-Line Berechnung knn ds jedoch nur durch ein Verzögern der Eingngsfolge erreicht werden. Diese Verzögerung (Totzeit) bewirkt den für FIR-Filter chrkteristischen lineren Phsengng, Bild.3. b k m Bild.3: Koeffizienten eines ngenäherten idelen Tiefpss-FIR-Filters T t = 7 T (Symmetriechse) Beispiel: Bei einem Trnsverslfilter mit m =, b =,5, b =,5 sollen Phsengng und Amplitudengng berechnet werden: G z b b z k=t/t Mit z st und s = j ergibt sich e G G jt j b b. e jt / jt / jt / j e b e b e Mit den vorgegebenen Koeffizienten b = b =,5 ergibt sich j j / cos / G T e T ( Phse) ( Amplitude) Jetzt ist ersichtlich, dss diese Berechnung eines gleitenden Mittelwertes einen lineren Phsengng ( = - T / ) ufweist und der Amplitudengng kosinusförmig verläuft mit dem ersten Nulldurchgng bei Shnnonfrequenz. DSF 3 Krh WS 3/4

114 . Relisierung nicht rekursiver Filter Es ist leicht ersichtlich, dss ein FIR-Filter schnell sehr viele Koeffizienten benötigt und dmit uch viel Rechenleistung erfordert, Bild.4. Andererseits besitzt es den Vorteil, dss eine beliebige Impulsntwort vorgegeben werden knn und immer stbil ist. u k u z - k- u k- u k-3 z - z - b b b b 3 x k Bild.4: Blockschltbild eines FIR-Filters (Trnsverslfilter) mit m = 3 Stndrdform / Direktform geeignet zur Implementierung uf einem DSP mit MAC (Multiply ACcumulte) Ein nicht rekursives Filter knn mit einem Digitlrechner sehr leicht progrmmiert werden. Bei digitlen Signlprozessoren wird die Ausgngsgröße x n durch ufddieren (kkumulieren) der einzelnen Produkte (u i b i ) in einem Akkumultor gebildet. Durch eine Erhöhung der Ordnung (mehr Koeffizienten) erhöht sich nhezu proportionl die notwendige Verrbeitungszeit des Prozessors. double u,u,u,u3; // Eingngsfolge const double b =... ; // Koeffizient const double b =... ; // Koeffizient const double b =... ; // Koeffizient const double b3 =... ; // Koeffizient double x ; // Ausgngsfolge for ( k=; ;k++ ) { // Schleife zur Berechnung u3 = u ; // Verzögerung von u n u = u ; u = u ; u = ADC_Input() ; // Neues (k tes) u einlesen x = u * b + u * b + u * b + u3 * b3 ; DAC_Output(x) ; // Neues (k tes) x usgeben } // Ende der Schleife C Progrmm eine FIR-Filters DSF 4 Krh WS 3/4

115 u k b 3 b b b x A z - x B z - x C z - x k Bild.5: Blockschltbild eines FIR-Filters (Trnsverslfilter) mit m = 3 in trnsponierter Form geeignet zur Implementierung in einem FPGA Der in Bild.5 drgestellte Signlflusspln ist gut geeignet zur Implementierung in einem FPGA insbesondere bei hohen Dtenrten. In dieser Drstellung ist die Berechnung besser prllelisierbr, weil Teile des Algorithmus (VHDL Zeilen) durch die Verzögerungsglieder (z - ) entkoppelt werden. Insbesondere bei FIR-Filtern hoher Ordnung knn ds ein entscheidendes Kriterium sein. Durch eine Erhöhung der Ordnung (mehr Koeffizienten) erhöhen sich nhezu proportionl die notwendigen Ressourcen des FPGAs (Logikelemente / DSP-Blöcke). librry ieee; use ieee.std_logic_64.ll; use ieee.numeric_std.ll; entity FIR is port ( clk : in std_logic ; -- Filter clock reset : in std_logic ; clk_en : in std_logic ; -- Clock enble u : in signed(5 downto ) ; -- Input b,b,b,b3 : in signed(5 downto ) ; -- Koeffizienten ); end entity; x : out signed(3 downto ) -- Output rchitecture rtl of FIR is signl x,xb,xc : signed(3 downto ) ; begin process(reset, clk) is begin if( reset = '') then -- Asynchronous Reset Sttements elsif( rising_edge(clk)) the -- clk Synchronous Sttements if ( clk_en = '') then - Filter lngsmer tkten? x <= u * b3 ; -- Signle, keine Vriblen! xb <= x + u * b ; xc <= xb + u * b ; x <= xc + u * b ; end if; end if; end process; end rtl; VHDL Progrmm eines FIR-Filters in trnsponierter Form DSF 5 Krh WS 3/4

116 Vorteile von nicht rekursiven (FIR) Filtern: Linerer Phsengng ω Die Werte dieser Impulsntwort entsprechen genu den Filterkoeffizienten b i Können über eine DFT für nhezu jeden Frequenzgng entworfen werden Besitzen immer eine Bounded-Input-Bounded-Output (BIBO) Stbilität Robust gegenüber Quntisierungsfehlern bei der Berechnung von Festkomm- Koeffizienten Nchteile von nicht rekursiven (FIR) Filtern: Benötigen oft eine sehr hohe Ordnung und ddurch eine hohe Rechenleistung / -zeit (DSP) bzw. viele Ressourcen (FPGA) Oft ist ds Entwurfsverfhren komplex (meist Off-Line).3 Rekursive Digitlfilter (IIR) Wenn mn zusätzlich zu der Eingngsfolge {u k } uch noch (lte) Werte der Ausgngsfolge {x k } für die Berechnung des ktuellen Wertes hernzieht ( Rekursiv), spricht mn von einem rekursiven Digitlfilter. In der ngelsächsischen Litertur werden rekursive Digitlfilter ls Infinite Impulse Response Filter oder kurz IIR- Filter bezeichnet, Bild.6. u k u k- u k- u k-3 z - z - z - b b b b 3 x k x k-3 z - z - z - x k- x k- Bild.6: Schem der Berechnung eines IIR-Filter (Rekursiv) mit m = n = 3 und = Stndrdform / Direktform geeignet zur Implementierung uf einem DSP mit MAC Beschränkt mn sich uf IIR-Filter. und. Ordnung, so knn mn zur Digitlfiltersynthese die notwendigen Koeffizienten uch ohne Umweg über Anlogfilter und Biliner-Trnsformtion mit Hilfe von tbellrischen Formeln bestimmen. DSF 6 Krh WS 3/4

117 Vorteile von rekursiven (IIR) Filtern: Oft wird nur eine geringe Ordnung benötigt. Deshlb wird nur eine geringe Rechenleistung / -zeit benötigt (DSP) bzw. nur wenig Ressourcen (FPGA). Können ähnlich den klssischen (zeitkontinuierlichen) Filtern entworfen werden. Nchteile von rekursiven (IIR) Filtern: Der Phsengng ist im Durchlssbereich (wie bei zeitkontinuierlichen Filtern) üblicherweise nichtliner. IIR-Filter können durch flsche Auslegung und durch die Quntisierung der Koeffizienten instbil werden. IIR-Filter weisen üblicherweise bei Relisierung in Fixed-Point Arithmetik ein stärkeres Quntisierungsruschen uf. DSF 7 Krh WS 3/4

118 .3. Rekursives Digitlfilter erster Ordnung Ds sicherlich beknnteste Digitlfilter ist der Tiefpss erster Ordnung. Die Eingngsfolge {u k } soll mit der Tiefpss-Übertrgungsfunktion G(z) zur Ausgngsfolge {x k } gefiltert werden. Die (kontinuierliche) Übergngsfunktion eines Tiefpsses erster Ordnung lutet: G s s s g s f g. ( ) (.3) Entsprechend ergibt sich im Zeitbereich die in Bild.7 gezeigte Übergngsfunktion (Sprungntwort), bei der ideler Weise lle Werte der Ausgngsfolge uf der Kurve liegen: h(t) h t e t b T t Bild.7: Übergngsfunktion (Sprungntwort) eines Tiefpsses erster Ordnung Durch den Anstz einer Differenzengleichung zur Berechnung von y ergibt sich der Koeffizient b : x x b u b u b u ( ) (.4) T e ; b = b Wenn T wesentlich kleiner ls ist, knn folgende Näherung benutzt werden: T x b mit e x für x DSF 8 Krh WS 3/4

119 Durch Koeffizientenvergleich mit der llgemeinen Differenzengleichung ergibt sich: x k x b u b u (.5) k k k- b e T G TP z b z z z z (.6) In der Prxis wird Gleichung (.4) oft verwendet, d nur eine Multipliktion erforderlich ist, und weil sich diese Version besonders gut in Festkommrithmetik relisieren lässt. Oft wird sttt x n- der unverzögerte Wert x n verwendet (b sttt b ), ws einer Verschiebung entspricht. Ds vermindert die Phsenverschiebung des Filters, ws insbesondere in der Regelungstechnik oft erwünscht ist. G( j f ) - db - S & H digitl -3 nlog rg G(j f ) Hz f S f digitl b digitl mit S & H nlog Bild.8: Vergleich von Amplitudengng und Phsengng eines digitlen Tiefpsses erster Ordnung mit und ohne S&H mit einem nlogen Tiefpss T = ms, f g = 5 Hz DSF 9 Krh WS 3/4

120 DSF Krh WS 3/4 Beispiel: Tiefpss erster Ordnung (PT ) Filterzeitkonstnte: = ms Abtstzeit: T = 5 s =,5 ms,4,5 e e b T (oder b ),9876,5 e b Die z-übertrgungsfunktion von einem Hochpss erster Ordnung lässt sich jetzt leicht us der z-übertrgungsfunktion des Tiefpsses berechnen. Die Koeffizienten des Tiefpsses sind hier zu Unterscheidung mit einer Schlngenlinie gekennzeichnet: z G z G TP HP ~ HP ~ ~ ~ ~ ~ z z b z b z z b b z G (.7) Durch Koeffizientenvergleich ergibt sich: ~ T e ~ T e b (.8) ~ T e b b HP z z z G Auch beim digitlen Hochpss erster Ordnung lässt sich der Algorithmus zur Verrbeitung vereinfchen: (wirkt wie die AC-Tste m Oszilloskop) n- n n n u b u b x x n- n n n u e u e x e x T T T n- n n n u u x e x T (.9)

121 Phsenkorrekturglied erster Ordnung (PD-T ): In der Regelungstechnik werden oft Phsenkorrekturglieder sttt eines Tiefpsses eingesetzt. Bei einem Phsenkorrekturglied werden Frequenzen deutlich oberhlb der Grenzfrequenz um einen Fktor gedämpft (oder verstärkt). Oft reicht diese Dämpfung us. Die Phsenverschiebung wird im Bereich konstnter Verstärkung zu Null, ws oft die Stbilität des Systems verbessert. Mit > wird us dem Phsenkorrekturglied ein Phsennhebendes (Phse-Led) Korrekturglied: G s s s s s s (.) Mit = wird us dem Phsenkorrekturglied ein Tiefpss, < < ergibt sich ein Phsenbsenkendes (Phse-Lg) Korrekturglied, = > werden weder Phse noch Amplitude verändert (G(s) = ) und bei ergibt sich ein Phsennhebendes (Phse-Led) Korrekturglied. Die Koeffizienten werden us den vorhergehend hergeleiteten (digitler Tiefpss bzw. Hochpss) berechnet: e T T e b (.) T e b e T b Beispiel: Zeitkonstnte = ms Bypss =,5 Abststzeit (Zykluszeit) T = 6,5 s,65 e,9394 oder DSF Krh WS 3/4

122 DSF Krh WS 3/4,778 e e,5,65,65 b,7 e,5,65 b b Filter Übertrgungsfunktion G(z) Algorithmus X(z) = G(z) U(z) i, b i Tiefpss uch b sttt b z b ( ) k k k k x u b x x T e T b e Hochpss z z b b k- k k k u u x b x T e T b e T b e Phsen- korrektur- glied z z b b x k = x k- + b u k + b u k- T e e e T T b e b b T Tbelle.9: Übersicht Digitlfilter erster Ordnung und ihrer Prmeter

123 .3. Rekursives Digitlfilter zweiter Ordnung Mit der in Bild. gezeigten universellen Struktur zweiter Ordnung knn durch Konfigurtion der fünf Prmeter (,, b, b, b ) festgelegt werden, ob ds Digitlfilter sich wie ein Tiefpss (. oder. Ordnung), Hochpss (. oder. Ordnung), Bndpss, Bndsperre oder wie ein Phsenkorrekturglied (. oder. Ordnung) verhlten soll. Bei einem Filter. Ordnung werden die Koeffizienten und b identisch Null. Mn nennt diese universelle Struktur zweiter Ordnung uch Biqud. u k u z - k- u k- z - b b b x n - - z - z - x k- x k- Bild.: Berechnung eines IIR-Filters (Rekursiv) mit m = n = (Biqud) Zur Relisierung eines Tiefpsses zweiter Ordnung G s K s g g s, g f g werden die fünf Koeffizienten us den Prmetern Grenzfrequenz f g, Dämpfungsgrd (Thet) und Abtstzeit T wie folgt berechnet: DSF 3 Krh WS 3/4

124 DSF 4 Krh WS 3/4 g g g 4 cos sin sin b b K b b T f T f T f (.) (sin(..) und cos(..) in Rdint) Mit Anwendung des Endwertstzes folgt K b b b h k k lim. Bei einem Hochpss zweiter Ordnung g g g g, f s s s K s G sind die Koeffizienten des Nenners identisch mit denen des Tiefpsses. Die Zähler- Koeffizienten b, b und b berechnen sich wie folgt: g g g 4 cos sin sin b b K b b T f T f T f (.3) Wenn die Grenzfrequenz wesentlich kleiner ls die Shnnonfrequenz ist, geht gegen und gegen -. Mit Anwendung des Anfngswertstzes folgt K K K b h 4 4 lim k k.

125 DSF 5 Krh WS 3/4 Der Bndpss ist chrkterisiert durch seine Mittenfrequenz f, bei der die Verstärkung mit ihr Mximum erreicht, und durch die Güte Q, welche die Steilheit des Filters bestimmt. Die Filterkoeffizienten lssen sich mit folgenden Formeln berechnen: cos tn tn b b b K b T f Q T f Q T f (.4) Die Bndsperre (Notch-Filter) filtert Frequenznteile bei der Mittenfrequenz f vollständig herus. Die Filterkoeffizienten werden mit folgenden Formeln berechnet: cos tn tn b T f b b b Q T f Q T f (.5)

126 Phsenkorrekturglied zweiter Ordnung In der Litertur findet mn diesen Filtertyp uch ls Cuer-Filter oder ls Elliptischen Filter. Phsenkorrekturglieder zweiter Ordnung werden in der Antriebsregelung (Motion Control) benutzt, um ds Abkoppeln des Lstträgheitsmomentes eines Zweimssenschwingers zu kompensieren. Im Nenner erkennt mn sofort den Tiefpss zweiter Ordnung (mit konjugiert komplexen Polen), der hier im Zähler zusätzlich mit einem inversen Tiefpss (/x) ähnlich einem Hochpss ergänzt wird (mit konjugiert komplexen Nullstellen). Prmetriert werden Dämpfungsgrd und Grenzfrequenz von Zähler (Hochpss = Nullstellen) und Nenner (Tiefpss = Pole). Die Übertrgungsfunktion des llgemeinen Bi-Qud -ter Ordnung lutet: G s HP HP TP TP s s HP TP s s Hier berechnen sich die Koeffizienten wie folgt: e e TPTP T TPTP T cos cosh TP TP TP TP T T für für TP TP TPTP T e ~ b e ~ b e HPHP T HPHP T cos cosh HP HP HP HP T T für für HP HP ~ HPHP T b e Die Sklierung der Zählerkoeffizienten erfolgt mit dem Endwertstz der z-trnsformtion: b ~ ~ K b b i i ~ ~ i,, b b DSF 6 Krh WS 3/4

127 F db Hz 65 Hz - 7 db - 34 db -8-7 f k Hz k Bild.: Bode-Digrmm von Phsenkorrekturgliedern. und. Ordnung f TP = 38 Hz, f HP = 65 Hz und HP = LP =,5 Beispiel Bi-Qud: Tiefpss-Eckfrequenz: Tiefpss-Dämpfungsgrd: Abtstzeit: f TP = Hz ( TP = 68,3 /s) TP T =,5 ms,8949,9938,7787,88 Hochpss-Eckfrequenz: Hochpss-Dämpfungsgrd: ~ b f HP = Hz ( HP = 56,64 /s) HP ~ b,88,9754,563 DSF 7 Krh WS 3/4

128 ~ b,643 Sklieren von b i : b b b,,79,797,,563,79,,643,79,437,794 DSF 8 Krh WS 3/4

129 .4 Digitle Filter höherer Ordnung Werden mehrere FIR-Filter hintereinnder (in Reihe) geschltet (kskdiert), so entsteht ein neues Filter höherer Ordnung. Kskdierungen erhöhen in der Regel die Flnkensteilheit und verringern gleichzeitig die Bndbreite. Bei der Implementierung von kskdierten FIR-Filtern ist es immer sinnvoll, die resultierende Übertrgungsfunktion höherer Ordnung durch Ausmultiplizieren der Polynome zu berechnen. Ds verringert die notwendige Rechenleistung sowie ds Quntisierungsruschen. Kskdierte FIR-Filter sind in der Regel nicht optiml für die gegebene Ordnung. Wie bei nlogen Filtern können uch IIR-Digitlfilter höherer Ordnung durch eine Reihenschltung von Filtern erster Ordnung bzw. Filtern zweiter Ordnung mit konjugiert komplexen Polen / Nullstellen zusmmengebut werden. Bei der Implementierung können die Filter entweder einzeln implementiert und in Reihe geschltet werden z.b. zwei IIR Filter zweiter Ordnung oder es wird ein Filter höherer Ordnung berechnet (usmultipliziert) und implementiert. Vorteile einer Implementierung von mehreren kskdierten Filtern niedriger Ordnung: Einfche, wiederverwendbre Algorithmen Einfchere Stbilitätsbetrchtung Vorteile einer Implementierung von einem digitlen Filter höherer Ordnung: Geringeres Quntisierungsruschen bei Algorithmen mit Festkomm- Arithmetik Benötigt etws weniger Rechenleistung.5 Relisierung digitler Filter in Festkomm-Arithmetik DSF 9 Krh WS 3/4

130 .6 Multirten-Signlverrbeitung In modernen digitlen Systemen werden Signle häufig mit verschiedenen Abtstfrequenzen verrbeitet. Die Huptopertionen der Multirten-Signlverrbeitung sind die Dezimierung (Dezimtion) und die Interpolierung (Interpoltion). Die Dezimierung reduziert die Abtstfrequenz (Down-Smpler) und mit der Interpolierung knn die Abtstfrequenz erhöht werden (Up-Smpler), Bild.. u k x k M k k Bild.: Down-Smpler mit einem Dezimierungsfktor von 3 (M = 3) (jeder M-te Wert wird verwendet/weiterverrbeitet) Wenn mn ein nloges Signl viel höher ls es ds Abtsttheorem vorschreibt btstet, knn mn ein weniger ufwändiges nloges Anti-Alising-Filter einsetzen. Ds Signl knn ddurch mit einem digitlen Filter hoher Ordnung bndbegrenzt werden und dnch über ein Down-Smpling (Dezimtion) uf die gewünschte Abtstrte gebrcht werden. Zum Beispiel knn mn ein Audiosignl mit 44, khz 4 = 76,4 khz btsten. Mit einem digitlen Tiefpss knn ds Anti-Alising einfcher und genuer relisiert werden. Nch der Tiefpss-Filterung wird nur jeder vierte Wert us der Werte-Folge verwendet = digitl bgetstet. Ein besonders einfches Dezimierungsfilter ist ds Sinc K -Filter. Ordnung: Zur Dezimierung wird einfch der Mittelwert berechnet und verwendet. In dem ngeführten Beispiel würde us jeweils 4 Abtstwerten der Mittelwert berechnet. Mn nennt ds uch eine gleitende Mittelwertbildung. Die Umsetzung knn z.b. mit einem FIR- Filter 3. Ordnung erfolgen: 3 z z z z G (.6) Alterntiv knn dieser Mittelwertfilter uch mit einem IIR-Filter 4. Ordnung relisiert werden: 4 z G z 4 (.7) z DSF 3 Krh WS 3/4

131 Mit Hilfe der Polynomdivision knn gezeigt werden, dss die rekursive Form in die nicht rekursive Form überführt werden knn. Der IIR-Filter knn vorteilhft in drei Teilübertrgungsfunktionen ufgeteilt werden:. Summierung: z 4. Differenzbildung: z 3. Dämpfung: ¼ Wird jetzt nch der Summierung ds Signl durch Down-Smpling mit der gewünschten, um den Fktor 4 geringeren Abtstfrequenz weiterverrbeitet (jeder 4. Wert), so wird bei der Differenzbildung nicht ein um 4 (kurze) Abtstzeiten verzögertes Signl sondern ein um nur (lnge) Abtstzeit verzögertes Signl verrbeitet. Ds verringert den Aufwnd bei der Implementierung erheblich, Bild.3. ) ¼ b) M ¼ Bild.3: Sinc-Filter. Ordnung (K = bzw. Sinc M = 4) ) ohne Down-Smpling b) mit Down-Smpling Dezimierungsfilter Oft werden Sinc K -Filter höherer Ordnung verwendet, die einfch durch entsprechende Kskdierung von K-Sinc -Filtern erster Ordnung gebildet werden. Bei der Relisierung werden erst die K-Summierer hintereinndergeschltet, dnn wird ds Signl mit der gewünschten (niedrigeren) Abtstrte digitl bgetstet (Down-Smple = jeder M-te Wert). Die Differenzbildung erfolgt ddurch mit deutlich geringerem Aufwnd, d nur eine lngsme Verzögerung sttt M schnellen Verzögerungen benötigt wird. Bei Implementierungen mit Festkommrithmetik ist es von Vorteil, ( weniger Quntisierungsruschen) erst nch der Differenzbildung den Fktor (¼) K zu berücksichtigen. Diese Kombintion us Filter und Down-Smpling (Dezimierung) wird Dezimierungsfilter gennnt. DSF 3 Krh WS 3/4

132 .7 Dezimierungsfilter (Sinc K -Filter) für -Anlog Digitl Wndler In -Wndlern sind Sinc K -Dezimierungsfilter eine weit verbreitete Filtertopologie für die Tiefpssfilterung und ds gleichzeitige Down-Smpling. Der Huptvorteil dieses Filters ist seine einfche Relisierbrkeit ohne Multipliktionen, Bild.4. Die Notch-Antwort knn bei richtiger Dimensionierung z.b. die Netzfrequenz vollständig unterdrücken. Die Position der Bndsperre (Notch) ist direkt bhängig von der Ausgngs-Dtenrte. Ds Sinc K -Filter ist nch K Tktperioden eingeschwungen (Setling Time). Mit einer 5 Hz-Bndsperre (5 Hz-Dtenrte) beträgt die Einschwingzeit eines Filters dritter Ordnung 3/5 Hz, lso 6 ms. Für Anwendungen, die bei geringerer Filterwirkung eine schnellere Einschwingzeit erfordern, knn ein Sinc- Filter niedrigerer Ordnung verwendet werden. Die Einschwingzeit eines Sinc -Filters beträgt eine Tktperiode. Bei 5 Hz lso /5 Hz, oder ms. Integrtor I Integrtor II Integrtor III MDAT MCLK Der Anfngswert der Sprungntwort h ist bei jeder Konfigurtion, und bei mchen Implementierungen bedingt durch zusätzlich verzögernde Tktzyklen identisch null. Der Endwert h beträgt ohne weitere Sklierungen M K. Ein Sinc³ (K = 3 3. Ord- Down- Smpling MCLK / M Differentitor I Diffrentitor II Diffrentitor III Bild.4: Ein Sinc³ Filter besteht us 3 Summierern, einem Down-Smpler (D- Ltch) und 3 Differenzierern [Ti] Die Übertrgungsfunktion eines wie drgestellt relisierten Sinc K Filters mit der Dezimierungsrte M lutet: ( ) ( ) (.8) DSF 3 Krh WS 3/4

133 nung) und einer Dezimierungsrte von M = 64 weist demnch einen Endwert von 64³ = 8 uf. Durch eine Sklierung mit M -K erhält mn eine Tiefpss- Übertrgungsfunktion mit dem Endwert (Übertrgungsbeiwert K S = ): ( ) ( ) (.9) sinc³ step response..8.6 SRD step response.4. sinc³ pulse response / weighting function M M.5 M 3 M M = 64 ; f s = MHz 3. µs 6.4 µs 9,6 µs T Σ LPF = 4.8 µs Bild.5: Sprungntwort eines Sinc³ Filters (K=3) [Ti] Idel Filter Signl Dmping Insufficient Quntiztion Noise Rejection M = 3 Bild.6: Amplitudengng eines Sinc³ Filters[Ti] DSF 33 Krh WS 3/4

Schaltungsdesign mit VHDL. Gunther Lehmann, Bernhard Wunder, Manfred Selz

Schaltungsdesign mit VHDL. Gunther Lehmann, Bernhard Wunder, Manfred Selz Schaltungsdesign mit VHDL Gunther Lehmann, Bernhard Wunder, Manfred Selz Vorwort 4 G. Lehmann/B. Wunder/M. Selz Vorwort VHDL 1 ist ein weltweit akzeptierter Standard zur Dokumentation, funktionalen Simulation

Mehr

, den Ort Datum Unterschrift des Autors

, den Ort Datum Unterschrift des Autors i Ich erkläre hiermit an Eides statt, dass ich die vorliegende Diplomarbeit selbstständig ohne unzulässige fremde Hilfe angefertigt habe. Die verwendeten Quellen und Hilfsmittel sind vollständig zitiert.,

Mehr

VBA Programmierung mit Excel

VBA Programmierung mit Excel Universitätsrechenzentrum Johannes Gogolok Abt. Wiss. Anwendungen URZ B/012/9911 VBA Programmierung mit Excel Grundlagen REIHE: INTEGRIERTE SYSTEME VBA Programmierung mit Excel Grundlagen FernUniversität

Mehr

Datenaustauschprozesse zwischen Bibliotheken im deutschsprachigen Raum vor dem Umstieg auf MARC 21 mit besonderer Berücksichtigung von MARCXML

Datenaustauschprozesse zwischen Bibliotheken im deutschsprachigen Raum vor dem Umstieg auf MARC 21 mit besonderer Berücksichtigung von MARCXML Datenaustauschprozesse zwischen Bibliotheken im deutschsprachigen Raum vor dem Umstieg auf MARC 21 mit besonderer Berücksichtigung von MARCXML Inhaltsverzeichnis Vorwort... 3 A Ausgangssituation... 4 A.1

Mehr

Acronis True Image 11 Home

Acronis True Image 11 Home Benutzerhandbuch Acronis True Image 11 Home ACR07.ATI11H-08.31.1F4A Die einmalige Seriennummer als Nachweis für den legalen Erwerb und die Verwendung von Acronis True Image 11 Home auf Ihrem Computer ist

Mehr

Einführung in die Programmierung des NXT Brick mit NXC

Einführung in die Programmierung des NXT Brick mit NXC Angewandte Informationstechnologie BRG Kepler Einführung in die Programmierung des NXT Brick mit NXC Johannes Zenz 2010/11 robotik.brgkepler.at Inhaltsverzeichnis 1. Grundlagen & Vorbereitung... 4 1.1

Mehr

Musterlösung zu Aufgabe 1 (Klassenstufe 9/10)

Musterlösung zu Aufgabe 1 (Klassenstufe 9/10) Musterlösung zu Aufgbe 1 (Klssenstufe 9/10) Aufgbe. Drei Freunde spielen mehrere Runden eines Spiels, bei dem sie je nch Rundenpltzierung in jeder Runde einen festen, gnzzhligen Betrg x, y oder z usgezhlt

Mehr

LANCOM TM. Wireless L-11/IL-11. LANCOM Wireless L-11/IL-11

LANCOM TM. Wireless L-11/IL-11. LANCOM Wireless L-11/IL-11 LANCOM TM Wireless L-11/IL-11 2002 LANCOM Systems GmbH, Würselen (Germany) Alle Angaben in dieser Dokumentation sind nach sorgfältiger Prüfung zusammengestellt worden, gelten jedoch nicht als Zusicherung

Mehr

Informationsverlust durch die Digitalisierung

Informationsverlust durch die Digitalisierung Informationsverlust durch die Digitalisierung Diplomarbeit zur Erlangung des Magistergrades der Philosophie an der Fakultät für Sozialwissenschaften der Universität Wien eingereicht von Balázs Bárány Wien,

Mehr

Von der Idee zum Chip. EDA Electronic Design Automation

Von der Idee zum Chip. EDA Electronic Design Automation Von der Idee zum Chip EDA Electronic Design Automation Impressum Herausgeber Bundesministerium für Bildung und Forschung (BMBF) Referat Publikationen; Internetredaktion 11055 Berlin Bestellungen schriftlich

Mehr

Kurzeinführung in. Matlab/Simulink/Stateflow

Kurzeinführung in. Matlab/Simulink/Stateflow Kurzeinführung in Matlab/Simulink/Stateflow Version 2.6 vom 5.02.2007 2 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einführung in Matlab 3 1.1 Erste Schritte und Bedienungshilfen............................

Mehr

next BIG 10 Bridge Kurzbedienungsanleitung Short Operating Instructions Business IP Gateway ELCON Systemtechnik GmbH 2013 Art.-Nr.

next BIG 10 Bridge Kurzbedienungsanleitung Short Operating Instructions Business IP Gateway ELCON Systemtechnik GmbH 2013 Art.-Nr. next BIG 10 Bridge Business IP Gateway Kurzbedienungsanleitung Short Operating Instructions ELCON Systemtechnik GmbH 2013 Art.-Nr. 102721-4 Sicherheitshinweise Bitte lesen Sie die Warnhinweise, Sicherheitsbestimmungen

Mehr

2 Grundlagen: Wie arbeitet ein Computer?

2 Grundlagen: Wie arbeitet ein Computer? 2 Grundlagen: Wie arbeitet ein Computer? Bevor wir auf die Programmierung von Rechnern eingehen, möchten wir sichergehen, daß Sie ein Grundverständnis vom Aufbau und von der Funktionsweise eines Rechners

Mehr

Grundlagenwissen zum KNX Standard

Grundlagenwissen zum KNX Standard Grundlagenwissen zum KNX Standard Inhalt Bussysteme allgemein 2 Zukunft und Vergangenheit / Nachholebedarf in der Elektroinstallation / Mehr Vernetzung / Warum KNX? / Rechnet sich eine Businstallation?

Mehr

Vom Internet der Computer zum Internet der Dinge

Vom Internet der Computer zum Internet der Dinge 1 Vom Internet der Computer zum Internet der Dinge Friedemann Mattern, Christian Flörkemeier ETH Zürich Das Internet der Dinge steht für eine Vision, in der das Internet in die reale Welt hinein verlängert

Mehr

Geschäftsmodelle im Internet der Dinge

Geschäftsmodelle im Internet der Dinge Bosch Internet of Things & Services Lab A Cooperation of HSG and Bosch Geschäftsmodelle im Internet der Dinge Elgar Fleisch (ETH Zurich / University of St. Gallen) Markus Weinberger (Bosch Software Innovations

Mehr

Leitfaden zur Anfertigung wissenschaftlicher Arbeiten

Leitfaden zur Anfertigung wissenschaftlicher Arbeiten Fakultät für Betriebswirtschaftslehre Leitfaden zur Anfertigung wissenschaftlicher Arbeiten November 2009 Leitfaden zur Anfertigung wissenschaftlicher Arbeiten II Vorbemerkungen Dieser Leitfaden richtet

Mehr

Mit Whiteboards unterrichten Das neue Medium sinnvoll nutzen

Mit Whiteboards unterrichten Das neue Medium sinnvoll nutzen Autor/en: Titel: Quelle: Verlag: Schlieszeit, Jürgen. Einführung in das interaktive Whiteboard / Die Grundlagen. Schlieszeit, Jürgen: Mit Whiteboards unterrichten. Das neue Medium sinnvoll nutzen. Weinheim

Mehr

Leitfaden. Von der Idee zur eigenen App. Ein praxisorientierter Leitfaden für Unternehmer mit Checkliste

Leitfaden. Von der Idee zur eigenen App. Ein praxisorientierter Leitfaden für Unternehmer mit Checkliste Leitfaden Von der Idee zur eigenen App Ein praxisorientierter Leitfaden für Unternehmer mit Checkliste Impressum Herausgeber: ebusiness-lotse Metropolregion Nürnberg c/o Hochschule für angewandte Wissenschaften

Mehr

Handbuch zur Entwicklung und Durchführung von Sprachtests Zur Verwendung mit dem GER

Handbuch zur Entwicklung und Durchführung von Sprachtests Zur Verwendung mit dem GER Erstellt von ALTE im Auftrag des Europarats /Abteilung für Sprachenpolitik Handbuch zur Entwicklung und Durchführung von Sprachtests Zur Verwendung mit dem GER Diese Publikation und ihre Teile sind urheberrechtlich

Mehr

Der Netzwerk Insider

Der Netzwerk Insider Der Netzwerk Insider Systematische Weiterbildung für Netzwerk- und IT-Professionals Oktober 2009 Virtualisierung: Virtualisierungsbewusste RZ-Netze von Dipl.-Inform. Matthias Egerland, Dipl.-Inform. Daniel

Mehr

Bachelorarbeit. Prof. Dr.-Ing. Wolfgang Schröder-Preikschat, Dipl.-Inf. Michael Stilkerich.

Bachelorarbeit. Prof. Dr.-Ing. Wolfgang Schröder-Preikschat, Dipl.-Inf. Michael Stilkerich. Ich versichere, dass ich die Arbeit ohne fremde Hilfe und ohne Benutzung anderer als der angegebenen Quellen angefertigt habe und dass die Arbeit in gleicher oder ähnlicher Form noch keiner anderen Prüfungsbehörde

Mehr

D 9 Lernen mit Medien

D 9 Lernen mit Medien Quelle: Rainer Kuhlen, Wolfgang Semar, Dietmar Strauch (Hrsg.): Grundlagen der praktischen Information und Dokumentation. 6. Ausgabe. Berlin 2013: Walter de Gruyter (siehe www.degruyter.com/view/product/174371)

Mehr

Cloud Computing als Instrument für effiziente IT-Lösungen

Cloud Computing als Instrument für effiziente IT-Lösungen als Instrument für effiziente IT-Lösungen Michael Bräuninger, Justus Haucap, Katharina Stepping, Torben Stühmeier HWWI Policy Paper 71 Hamburgisches WeltWirtschaftsInstitut (HWWI) 2012 ISSN 1862-4960 Kontaktperson:

Mehr

Autorenwerkzeuge für digitale, multimediale und interaktive Lernbausteine im Web 2.0

Autorenwerkzeuge für digitale, multimediale und interaktive Lernbausteine im Web 2.0 Autorenwerkzeuge für digitale, multimediale und interaktive Lernbausteine im Web 2.0 Dissertation zur Erlangung des Grades eines Doktors der wirtschaftlichen Staatswissenschaften (Dr. rer. pol.) des Fachbereichs

Mehr

Fahrzeugdiagnose. In Mittelklassefahrzeugen findet man heute bereits. vom lästigen Übel zum gewollten Muss (Teil 1)

Fahrzeugdiagnose. In Mittelklassefahrzeugen findet man heute bereits. vom lästigen Übel zum gewollten Muss (Teil 1) 12lAUTOMOTIVE 5-6.2011l ENGINEERING TOOLS DIAGNOSE VON DER ENTWICKLUNG BIS ZUM SERVICE Fahrzeugdiagnose vom lästigen Übel zum gewollten Muss (Teil 1) Die Fahrzeugdiagnose befindet sich bereits seit einigen

Mehr

HELIX BOARD 12 UNIVERSAL

HELIX BOARD 12 UNIVERSAL HELIX BOARD 12 UNIVERSAL Kompaktmixer mit FireWire & USB Schnittstelle BEDIENUNGSANLEITUNG 1 HELIX BOARD 12 UNIVERSAL Kompaktmixer mit FireWire & USB Schnittstelle INHALT WICHTIGE SICHERHEITSHINWEISE EINFÜHRUNG

Mehr

Ludwig / Enke (Hrsg.) Leitfaden zum Forschungsdaten-Management

Ludwig / Enke (Hrsg.) Leitfaden zum Forschungsdaten-Management Ludwig / Enke (Hrsg.) Leitfaden zum Forschungsdaten-Management Jens Ludwig / Harry Enke (Hrsg.) Leitfaden zum Forschungsdaten- Management Handreichungen aus dem WissGrid-Projekt J. Ludwig / H. Enke (Hrsg.):

Mehr

Hinweise zur Beurteilung von Messungen, Messergebnissen und Messunsicherheiten (ABW) ( Fehlerrechnung )

Hinweise zur Beurteilung von Messungen, Messergebnissen und Messunsicherheiten (ABW) ( Fehlerrechnung ) Seite 1 Hinweise zur Beurteilung von Messungen, Messergebnissen und Messunsicherheiten ( Fehlerrechnung ) Scientific knowledge is a body of statements of varying degree of certainty some most unsure, some

Mehr

Anforderungen an die Workflow-Unterstützung für wissensintensive Geschäftsprozesse

Anforderungen an die Workflow-Unterstützung für wissensintensive Geschäftsprozesse Anforderungen an die Workflow-Unterstützung für wissensintensive Geschäftsprozesse Sven Schwarz, Andreas Abecker, Heiko Maus, Michael Sintek Deutsches Forschungszentrum für Künstliche Intelligenz DFKI

Mehr