Entwicklung Eingebetteter Systeme

Entwicklung Eingebetteter Systeme Ralf Gessler Entwicklung Eingebetteter Systeme Vergleich von Entwicklungsprozessen für FPGA- und Mikroprozessor-S...
Author: Judith Knopp
0 downloads 0 Views 142KB Size
Entwicklung Eingebetteter Systeme

Ralf Gessler

Entwicklung Eingebetteter Systeme Vergleich von Entwicklungsprozessen für FPGA- und Mikroprozessor-Systeme Entwurf auf Systemebene

Ralf Gessler Campus Künzelsau Hochschule Heilbronn Ravensburg, Deutschland

ISBN 978-3-8348-1317-6 DOI 10.1007/978-3-8348-2080-8

ISBN 978-3-8348-2080-8 (eBook)

Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar. Springer Vieweg © Springer Fachmedien Wiesbaden 2014 Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede Verwertung, die nicht ausdrücklich vom Urheberrechtsgesetz zugelassen ist, bedarf der vorherigen Zustimmung des Verlags. Das gilt insbesondere für Vervielfältigungen, Bearbeitungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften. Produkthaftung: Für Angaben über Dosierungsanweisungen und Applikationsformen kann vom Verlag keine Gewähr übernommen werden. Derartige Angaben müssen vom jeweiligen Anwender im Einzelfall anhand anderer Literaturstellen auf ihre Richtigkeit überprüft werden. Gedruckt auf säurefreiem und chlorfrei gebleichtem Papier. Springer Vieweg ist eine Marke von Springer DE. Springer DE ist Teil der Fachverlagsgruppe Springer Science+Business Media www.springer-vieweg.de

Vorwort Das Buch liefert in Theorie und Praxis eine durchgehende und vollständige Darstellung des Entwicklungs-Prozesses von Eingebetten Systemen mit den Phasen Analyse, Entwurf, Implementierung und Test. Die Schwerpunkte liegen im Entwurf auf Systemebene und im Vergleich der Entwicklung von FPGA- und Mikroprozessor-Systemen. Die Arbeit dient auch der technischen und ökologischen Entscheidungshilfe. Zahlreiche Praxis-Beispiele, -Aufgaben, Einstiegshilfen und Literaturhinweise zur weiteren Vertiefung runden das Werk ab. Ich möchte mich bei Herrn Günther Hunn für die sprachliche Überprüfung des Manuskriptes bedanken. Herrn Dapper und Frau Brossler vom Springer Vieweg Verlag gilt mein Dank für das Lektorat. Des Weiteren danke ich den Studierenden des Studienganges Elektrotechnik und Antriebssysteme/Mechatronik der Hochschule Heilbronn am Campus Künzelsau. Sie haben durch zahlreiche Projektarbeiten, Bachelor- und Masterthesen das vorliegende Buch maßgeblich geprägt. Weiterführende Hinweise zum Buch „Entwurf Eingebetteter Systeme“ finden sich auf der Verlagsseite1 im Internet (URL2 ). Das Buch „Hardware-Software-Codesign“ [GM07] kann als Grundlagenwerk für den „Entwurf Eingebetteter Systeme“ gelten. Weitere Applikationen im Bereich Eingebettete Funksysteme zeigt das Buch „Wireless-Netzwerke für den Nahbereich“ [GK09].

Ravensburg, im Februar 2014 Ralf Gessler

1 URL: 2 URL

http://www.springer.com = Uniform Resource Locator

V

Titel

Didaktik Danksagung

Internet Literatur

Inhaltsverzeichnis Vorwort

V

Abkürzungsverzeichnis 1

Einleitung

2

Eingebettete Systeme 2.1 Definition . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Entwicklung . . . . . . . . . . . . . . . . . . . . . . . 2.2.1 Software-Entwicklung . . . . . . . . . . . . . . 2.2.2 Rechnerarchitekturen . . . . . . . . . . . . . . 2.2.3 Rechenbaustein und Hardware-Technologie . . 2.2.4 Rechenmaschine . . . . . . . . . . . . . . . . 2.3 Lösungsraum . . . . . . . . . . . . . . . . . . . . . . 2.3.1 Energieverbrauch . . . . . . . . . . . . . . . . 2.3.2 Echtzeit-Datenverarbeitung . . . . . . . . . . 2.4 Abgrenzung . . . . . . . . . . . . . . . . . . . . . . . 2.4.1 Digitale Systeme . . . . . . . . . . . . . . . . 2.4.2 Digitale Schaltungstechnik . . . . . . . . . . . 2.4.3 Digitale Signalverarbeitung . . . . . . . . . . . 2.5 Übersicht Rechenmaschinen . . . . . . . . . . . . . . 2.6 Mikroprozessoren . . . . . . . . . . . . . . . . . . . . 2.6.1 Grundlegende Funktionsweise . . . . . . . . . 2.6.2 Schnittstelle zwischen Hardware und Software 2.6.3 Arten . . . . . . . . . . . . . . . . . . . . . . 2.6.4 Digitale Signalprozessoren . . . . . . . . . . . 2.7 FPGA . . . . . . . . . . . . . . . . . . . . . . . . . . 2.7.1 Einordnung Schaltkreise . . . . . . . . . . . . 2.7.2 PLD-Architekturen . . . . . . . . . . . . . . .

3

XI 1

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

7 7 9 13 13 15 17 18 23 27 30 32 35 37 42 45 45 55 57 60 67 68 69

Entwicklungs-Prozesse 3.1 Abgrenzung . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.1 Projektmanagement . . . . . . . . . . . . . . . . . . 3.1.2 Qualitätsmanagement . . . . . . . . . . . . . . . . .

79 79 80 81

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

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

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

VII

Inhaltsverzeichnis . . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

81 82 87 88 90 92 93 93 94 95

Entwurf auf Systemebene 4.1 Methoden . . . . . . . . . . . . . . . . . 4.1.1 Abstrahierung und Strukturierung 4.1.2 Parallelitätsebenen . . . . . . . . 4.1.3 Kreativität . . . . . . . . . . . . 4.2 Modelle . . . . . . . . . . . . . . . . . . 4.2.1 Ebenen . . . . . . . . . . . . . . 4.2.2 Eigenschaften . . . . . . . . . . . 4.2.3 Verhaltenbasiert . . . . . . . . . . 4.2.4 Kontrollflussbasiert . . . . . . . . 4.2.5 Strukturbasiert . . . . . . . . . . 4.2.6 Datenflussbasiert . . . . . . . . . 4.2.7 Logikbasiert . . . . . . . . . . . . 4.2.8 Projektbasiert . . . . . . . . . . . 4.3 Modellierungssprache UML . . . . . . . . 4.3.1 Modelle . . . . . . . . . . . . . . 4.3.2 Fallstudie „Ulmer Zuckeruhr“ . . . 4.3.3 Vergleich . . . . . . . . . . . . .

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

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

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

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

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

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

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

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

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

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

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

101 101 102 106 109 110 110 114 114 119 123 124 126 140 141 142 146 152

. . . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

157 157 159 162 167 177 180 181 182 184 188

3.2

4

5

VIII

3.1.3 Konfigurationsmanagement . . 3.1.4 Phasen . . . . . . . . . . . . Prozess-Modelle . . . . . . . . . . . . 3.2.1 Wasserfall-Modell . . . . . . . 3.2.2 V-Modell . . . . . . . . . . . 3.2.3 Evolutionäre Modelle . . . . . 3.2.4 Prototypen-Modell . . . . . . 3.2.5 Komponentenbasiertes Modell 3.2.6 Weitere Modelle . . . . . . . 3.2.7 Schnelle Software-Entwicklung

. . . . . . . . . .

Implementierung 5.1 Sprachen . . . . . . . . . . . . . . . . . . . . . 5.1.1 C/C++ . . . . . . . . . . . . . . . . . 5.1.2 C-basierte Hardware-Beschreibung . . . 5.1.3 VHDL . . . . . . . . . . . . . . . . . . 5.1.4 Verilog . . . . . . . . . . . . . . . . . 5.2 Werkzeuge . . . . . . . . . . . . . . . . . . . . 5.2.1 Matlab/Simulink . . . . . . . . . . . . 5.2.2 Matlab/Simulink und Embedded Coder 5.2.3 Matlab/Simulink und System Generator 5.2.4 HDL Coder . . . . . . . . . . . . . . .

. . . . . . . .

Inhaltsverzeichnis 6

7

8

9

Test 6.1 Einführung . . . . . . . . 6.2 Ablauf . . . . . . . . . . 6.3 Test-Fälle . . . . . . . . 6.3.1 Überblick . . . . 6.3.2 Strukturelle Tests 6.3.3 Funktionale Tests 6.4 Werkzeuge . . . . . . . . 6.5 Testfreundlicher Entwurf

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

191 191 193 199 200 201 203 207 210

Zahlensysteme und Arithmetik 7.1 Zahlensysteme . . . . . . . . . . . . . . . . . . . 7.1.1 Natürliche und ganze Zahlen . . . . . . . 7.1.2 Reelle Zahlen . . . . . . . . . . . . . . . 7.2 Arithmetik . . . . . . . . . . . . . . . . . . . . . 7.2.1 Ganze Zahlen . . . . . . . . . . . . . . . 7.2.2 Reelle Zahlen . . . . . . . . . . . . . . . 7.2.3 Implementierung von Standardfunktionen

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

213 213 214 217 222 222 226 230

Auswahlkriterien 8.1 Randbedingungen . . . . . . . . . . . . . . . 8.2 Methoden zur Leistungsbewertung . . . . . . 8.3 Maßzahlen . . . . . . . . . . . . . . . . . . . 8.3.1 Allgemeine Maßzahlen . . . . . . . . 8.3.2 Spezifische Mikroprozessor-Maßzahlen 8.3.3 Diskussion . . . . . . . . . . . . . . . 8.4 Benchmarks . . . . . . . . . . . . . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

233 233 234 234 234 238 240 241

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

Vergleichende Entwicklung 9.1 Hardware . . . . . . . . . . . . 9.1.1 Rechnerarchitektur . . . 9.1.2 Rechenmaschinen . . . . 9.2 Software . . . . . . . . . . . . . 9.2.1 Implementierungsprozess 9.2.2 Grundelemente . . . . . 9.3 Fallstudie . . . . . . . . . . . .

10 Trends 10.1 Hardware . . . . . . . . . . 10.1.1 Architektur . . . . . 10.1.2 Entwicklungsprozesse 10.1.3 Konfiguration . . . .

. . . .

. . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

247 247 248 250 253 254 264 278

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

289 289 290 290 291

IX

Inhaltsverzeichnis 10.1.4 Peripherie . . . . . . . . . . . . . . . . . . . . . . . . 10.2 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

292 293

Literaturverzeichnis

297

Stichwortverzeichnis

307

Abbildungsverzeichnis

313

Tabellenverzeichnis

319

X

Abkürzungsverzeichnis ADC . . . . . . . . . . . Analog Digital Converter (deutsch: Analog-Digital-Wandler) ALU . . . . . . . . . . . Arithmetical Logical Unit (deutsch: Arithmetische Logische Einheit) AMBA . . . . . . . . . Advanced Microcontroller Bus Architecture AMS . . . . . . . . . . . Analog Mixed Signal API . . . . . . . . . . . . Application Programming Interface (deutsch: Programmierschnittstelle) ARM . . . . . . . . . . . Acorn RISC Machine ASIC . . . . . . . . . . . Application Specific Integrated Circuit (deutsch: Anwendungsspezifische Integrierte Schaltung) ASIP . . . . . . . . . . . Application Specific Instruction Set Processor AXI . . . . . . . . . . . . Advanced EXtensible Interface BIOS . . . . . . . . . . Basic Input The Output System BIST. . . . . . . . . . . Build In Self Test CAE . . . . . . . . . . . Computer Aided Engineering CAN . . . . . . . . . . . Controller Area Network CASE . . . . . . . . . . Computer Aided Software Engineering CBSE . . . . . . . . . . Component Based Software Engineering CFG . . . . . . . . . . . Control Flow Graph CIS . . . . . . . . . . . . Computing In Space CIT . . . . . . . . . . . . Computing In Time CLB . . . . . . . . . . . Complex Logic Block

XI

Abkürzungsverzeichnis Clk . . . . . . . . . . . . Clock CMOS . . . . . . . . . Complementary Metal-Oxid-Semiconductor CORDIC . . . . . . . COordinate Rotation DIgital Computing COTS . . . . . . . . . Commercial Off-The-Shelf (deutsch: Kommerzielle Produkte aus dem Regal) CPI . . . . . . . . . . . . Clock Cycles Per Instruction CPLD . . . . . . . . . . Complex PLD CPU . . . . . . . . . . . Central Processing Unit (deutsch: Zentrale Verarbeitungseinheit) CRC . . . . . . . . . . . Cyclic Redundancy Check (deutsch: Zyklische Redundanzprüfung) DAC . . . . . . . . . . . Digital Analog Converter (deutsch: Digital-Analog-Wandler) DFT . . . . . . . . . . . Design For Testability DIN . . . . . . . . . . . . Deutsches Institut für Normung DMIPS . . . . . . . . . Dhrystone Million Instructions Per Second DNF . . . . . . . . . . . Disjunktive NormalForm DRAM . . . . . . . . . Dynamic RAM DS . . . . . . . . . . . . Digitale Schaltungen (aus VDS und KDS) ohne CPU DSC . . . . . . . . . . . Digital Signal Controller DSP . . . . . . . . . . . Digital Signal Processor DUT . . . . . . . . . . . Device Under Test E/A . . . . . . . . . . . Ein-/Ausgabe EDA . . . . . . . . . . . Electronic Design Automation EEMBC . . . . . . . . EmbEdded Microprocessor Benchmark Consortium EEPROM . . . . . . Electrically Erasable PROM EMV . . . . . . . . . . . ElektroMagnetische Verträglichkeit

XII

Abkürzungsverzeichnis EN. . . . . . . . . . . . . ENable ESL . . . . . . . . . . . . Electronic System Level FF . . . . . . . . . . . . . Flip-Flop FFT . . . . . . . . . . . Fast-Fourier-Transformation FIR . . . . . . . . . . . . Finite Impulse Response (filter) (deutsch: Filter mit endlicher Impulsantwort) FMC . . . . . . . . . . . FPGA Mezzanine Card FPGA . . . . . . . . . . Field Programmable Gate Array FPU . . . . . . . . . . . Floating Point Unit FSM . . . . . . . . . . . Finite State Machine GPIO . . . . . . . . . . General Purpose In-/Output GPP . . . . . . . . . . . General Purpose Processor (deutsch: Universalprozessor) GUI . . . . . . . . . . . . Graphical User Interface (deutsch: graphische Benutzeroberfläche) HDL . . . . . . . . . . . Hardware Description Language (deutsch: Hardware-Beschreibungssprachen) HLS . . . . . . . . . . . High Level Synthesis I/O . . . . . . . . . . . . In-/Output(deutsch: Ein-/Ausgabe (E/A)) IC . . . . . . . . . . . . . Integrated Circuit (deutsch: Integrierter Schaltkreis) IDE . . . . . . . . . . . . Integrated Development Environment IEEE . . . . . . . . . . . Institute Of Electrical And Electronic Engineers IIR . . . . . . . . . . . . . Infinite Impulse Response IOB . . . . . . . . . . . . IO-Block IP . . . . . . . . . . . . . Intellectual Property IR . . . . . . . . . . . . . Instruction Register ISA . . . . . . . . . . . . Instruction Set Architecture ISO . . . . . . . . . . . . International Standard Organisation

XIII

Abkürzungsverzeichnis ISR . . . . . . . . . . . . Interrupt Service Routine JTAG . . . . . . . . . . Joint Test Action Group JVM . . . . . . . . . . . Java Virtual Machine (deutsch: Java virtuelle Maschine) KDS . . . . . . . . . . . Konfigurierbare Digitale Schaltung KNF . . . . . . . . . . . Konjunktive NormalForm LFSR . . . . . . . . . . Linear Feedback Shift Register (deutsch: linear rückgekoppeltes Schieberegister) LSB . . . . . . . . . . . Least Significiant Bit (deutsch: niederwertiges Bit) LUT . . . . . . . . . . . Look Up Table MAC . . . . . . . . . . . Media Access Control MBSD . . . . . . . . . Model Based Software Development MC . . . . . . . . . . . . MikroController MDSD . . . . . . . . . Model Driven Software Development MFLOPS . . . . . . . Million FLoating Point Operations Per Second MIMD . . . . . . . . . Multiple Instruction Multiple Data MIPS . . . . . . . . . . Million Instructions Per Second MOPS . . . . . . . . . Million Operations Per Second MP . . . . . . . . . . . . MikroProzessor (μP) MSB . . . . . . . . . . . Most Significiant Bit (deutsch: höchstwertiges Bit) NRE . . . . . . . . . . . Non Recurring Engineering (deutsch: Einmalige Entwicklungskosten) NVRAM . . . . . . . . Non Volatile RAM OMG . . . . . . . . . . Object Management Group OOP . . . . . . . . . . . Object Oriented Programming OSI . . . . . . . . . . . . Open System Interconnection OTP . . . . . . . . . . . One Time Programmable PAP . . . . . . . . . . . Programm-Ablauf-Plan

XIV

Abkürzungsverzeichnis PC. . . . . . . . . . . . . Program Counter PCB . . . . . . . . . . . Printed Circuit Board (deutsch: Leiterkarte) PCIe . . . . . . . . . . . Peripheral Computer Interface express PID . . . . . . . . . . . . Proportional Integral Differential PIL . . . . . . . . . . . . Processor In The Loop PLD . . . . . . . . . . . Programmable Logic Device (deutsch: Programmierbarer Logikbaustein) Pmod . . . . . . . . . . Peripheral modules PREP . . . . . . . . . . PRogrammable Electronics Performance Cooperation PS . . . . . . . . . . . . . PreSet PSD . . . . . . . . . . . Programm-Struktur-Diagramme PSPICE . . . . . . . . Personal Simulation Program With Integrated Circuit Emphasis PWM . . . . . . . . . . PulsWeitenModulation QS . . . . . . . . . . . . QualitätsSicherung RAM . . . . . . . . . . . Random Access Memory Reg . . . . . . . . . . . . Register RISC . . . . . . . . . . . Reduced Instruction Set Computer ROM . . . . . . . . . . Read Only Memory RS . . . . . . . . . . . . . ReSet RTL . . . . . . . . . . . Register Transfer Level (deutsch: Register-Transfer-Ebene) SBT . . . . . . . . . . . SchaltungsBelegungsTabelle SDF . . . . . . . . . . . Standard Delay Format SDK . . . . . . . . . . . Software Development Kit SIL . . . . . . . . . . . . Software In The Loop SIMD . . . . . . . . . . Single Instruction Multiple Data

XV

Abkürzungsverzeichnis SOC . . . . . . . . . . . System On Chip SOP . . . . . . . . . . . Sum Of Product SPEC . . . . . . . . . . Standard Performance Evaluation Cooperation SRAM . . . . . . . . . Static RAM SysML . . . . . . . . . System Modeling The Language THd . . . . . . . . . . . . Hold Time TP D . . . . . . . . . . . . Propagation Delay Time TP DClk . . . . . . . . . Propagation Delay Time Clock To Output TP W idth . . . . . . . . Pulse Width Time TSu . . . . . . . . . . . . Setup Time TTL . . . . . . . . . . . Transistor-Transistor-Logik UART . . . . . . . . . Universal Asynchronous Receiver Transmitter UML . . . . . . . . . . . Unified Modeling Language URL . . . . . . . . . . . Uniform Resource Locator USART . . . . . . . . Universal Synchronous Asynchronous Receiver Transmitter USB . . . . . . . . . . . Universal Serial Bus VDS . . . . . . . . . . . Verdrahtete Digitale Schaltung VHDL . . . . . . . . . . VHSIC Hardware Description Language VHSIC . . . . . . . . . Very High Speed Integrated Circuit VLIW . . . . . . . . . . Very Long Instruction Word VLSI . . . . . . . . . . . Very Large Scale Integration XP. . . . . . . . . . . . . EXtreme Programming

XVI