Embedded Systems 1 - KIT
Embedded Systems 1 KIT
Embedded Systems 1 KIT
-
- 1 / 82
-
Cartes-fiches
Definition Embedded System (ES) ?
Thaller [1997] : Bei eingebetteten Systemen handelt es sich um einen durch Software kontrollierten Computer oder Mikroprozessor, der Teil eines größeren Systems ist, dessen primäre Funktion nicht rechenorientiert ist.
Anwendungen finden sich in:
- Wehrtechnik
- Luft- und Raumfahrt
- Automobilbau
- Konsumelektronik
- bei Messgeräten
- peripheren Einheiten in der Computerindustrie.
Welche Typen (Systemarten) von Embedded Systems (ES) gibt es?
- Transformierende Systeme
- Interaktive Systeme
- Reaktive Systeme
Wie erstellt man ein reaktives System?
Variante 1:
- Vorgabe von Echtzeitschranken (Ada, VHDL)
- Realisierung (Compiler, Hardwaresynthese müssen diese einhalten
- Nachteil: u.U. existiert gar keine Realisierung
Variante 2:
- keine Vorgabe von Echtzeitschranken (synchrone Sprachen)
- möglichst effiziente Realisierung
- danach Prüfung des Echtzeitverhaltens (Codeanalyse, Prototypen)
Besonderheiten bei Synchronen Sprachen
- zeitverbrauch wird explizit programmiert, alle anderen anweisungen benötigen keine zeit
- Ausgaben erfolgen deshalb im selben schritt wie deren eingaben
Was is ein Problem von Sychronen Sprachen
Kausalitätszyklen => nicht reaktive systeme, nicht deterministische systeme
Wie geht man mit Kausalitätszyklen um?
- Rückwärtsfluss von Informationen
- Unterschied zu konstruktiven Programmen ???
Was für grafische Varianten von synchronen Sprachen gibt es?
- Argos
- Synccharts
- STATEMATE
Eigenschaften von grafischen Synchronen Sprachen
???
Besonderheiten von VHDL gegenüber klassischen Programmiersprachen?
- Nebenläufigkeit
- Signale
- Zeitmodelle
- Modulkonzept
Zeitmodelle in VHDL, Verzögerungsmodelle
- Transport
- Inertial
- Reject Inertial
Unterschiede VHDL, Verilog
- Datentypen (Verilog keine abstrakten Datentypen)
- Zeitmodell (Verilog genaueres Zeitmodel)
- Module statt Entity (Verilog hat Module, einfacher) Verilog eher geeignet für RT- und Gatterbeschreibung weniger für Verhaltensbeschreibung
Entwurf: Welche Schritte gibt es, und was ist deren Ergebnis?
- Verhaltensspec
- High-Level-Synthese
- RT-Beschreibung
- Logik-Synthese
- Gatterbeschreibung
- Layout-Synthese / Floorplan
- geometrie beschreibung
Ist ES def scharf?
nein
Bsp: Set-Top box ist rechenorientiert
Was ist ein Transformierendes System
ES das einmal gestartet wird und dann keinerlei Interaktion mit der Umgebung hat
z.B. 'Streaming' Anwendungen
Was ist ein Interaktives System?
laufen kontinuierlich, fordern Benutzer zu interaktion auf. Versuchen möglichst wenig auslastung durch interaktion zu haben
(weiche echtzeitanfoderung)
Was ist ein reaktives system?
läuft kontinuierlich, muss zu jedem zeitpunkt auf interaktion mit der umgebung reagieren können
(harte echtzeitanfoderung)
Synchrone Sprache
Vorgehen bei Hardware Synthese? (Hauptschritte)
- HL Synthese
- Logik Synthese
- Layout Synthese
Spektrum Eingebetteter Systeme
- komplexe Aufgaben
- Standard HW
- Standard OS
- Standard SW
- sehr komplexe Aufgaben (mobil, echtzeit)
- Standard HW mit Eigenentwicklungen
- zugeschnittenes OS
- Standard SW mit Eigenentwicklungen
- spezielle Aufgaben
- Prozessorkern (mC, DSP) plus eigene HW
- kein OS, formale System beschr.
- Spezial SW
- sehr spezielle Aufgaben
- einfache mC oder DSP plus eigene HW
- Kein OS, C oder Assember
- Sehr spezielle Software
Eigenschaften von Esterel? (allgemein Synchrone Sprachen)
- Reaktivität
- Determinismus
- log. Korrektheit
Hardware templates …
Wie setzt man ein Esterel Programm in C um?
- kontrollfluss-endliche Automaten
- Datenfluss-guarded commands
- HW synthese-Template
VHDL: Unterschiede von Inertial und Reject-Inertial
Bei reject inertial werden Pulse über einer minimalen Länge die kleiner sind als die Verzögerung erhalten.
Bei inertial werden alle Pulse die kleiner sind als die Verzögerung entfernt.
Wie entwirft man ein ES?
- Spezifikation erstellten
- HW/SW partitionierung
- …
Was sind syncrone Sprachen?
vollständige Syncronität
Zeitverbrauch muss Programiert werden alle anderen befehle werden unendlich schnell abgearbeitet
Def vollständige Synchronität?
direkt mit der änderung der eingaben sind die ausgaben schon fertig. In der praxis geht das natürlich nicht, so das diese definition in ausreichend schnell geändert wird.
Besonderheit von STATEMATE (Nachteile)
- Signale werden erst im nächten Zeitschritt sichtbar
- Keine vollständige Syncronität
- zumTeil mehr Zustände erforderlich
Abstraktionsebenen von VHDL?
Verhaltensebene (Algorithmen) bis runter zur Gatterebene
VHDL, Verilog: Können die Abstraktionsebenen gemischt werden?
VHDL: Port-Mappings zum Übersetzen
Verilog: ???
Algorithmen für Scheduling und Allokation
- ASAP
- ALAP
- List
- Force Directed
- Path-based
Scheduling: Funktionsweise von Force directed
- zeitrahmen der Operationen bestimmen (ASAP/ALAP)
WHILE
- Distribution Graph
- Self-force für alle t
- Predecessor / Successor-Forces
- Total-Force
- zuordnen der OP mit niedrigster Force
END WHILE
Reihenfolge in der die Operationen geschdulet werden ist willkürlich. Je nach Reihenfolge anderes Schedule
Wie kann das Echtzeitverhalten von reaktiven Systemen umgesetzt werden?
- Echtzeit OS
- alles in Hardware
- syncrone sprachen
Früher wurden Echtzeitsysteme durch Interrupts gesteuert. Wie können Interrupts in Esterel umgesetzt werden?
Mehrere parallele Threads werden nach der Softwaresynthese zu einem Thread zusammengefasst. Dadurch muss pro Zeitschritt nur noch eine Bedingung für die Syncronität überprüft werden.
Logicsynthese: Welches Problem ist bei unvollständig definierten Automaten zu lösen?
Überdeckungsproblem
FPGA Xilinx: Was ist für einen stand-alone Betrieb nötig?
EEPROM + Logik um die Daten auf den FPGA zu laden.
(Logik sitzt bei Xilinx direkt auf dem FPGA)
VHDL: Simulation
- TestBench
- Delta-Zyklen
- Signale nehmen ihren neuer Wert erst nach Verzögerung (delta) an
- Schrittweise Signalupdate
Layoutsynthese: Platzierung Algorithmen
- Mead Conway (optisch)
- Flying-wire (gummibänder)
- Scatter (zufall)
- Fidducia-Mattheyses
(fläche halbieren, seite wählen mit min leitungen über die trennlinie) - Force-directed
(verschiebe blöcke in zentrum der verbundenen, tausche falls besetzt, markieren, wenn alle markiert dann mark löschen, wiederholen bis bedinungen erfüllt) - SA
- GA
Wie wird HW in VHDL abgebildet?
- Entity
- Architecture
- Configuration
VHDL: Unterschiede zwischen Bibliotheken und Packages?
- Bibliothek besteht aus primary und secondary unit
- Package ist in primary unit enthalten, Package Body in secondary unit