Embedded Systems 1 - KIT
Embedded Systems 1 KIT
Embedded Systems 1 KIT
-
- 1 / 82
-
Cartes-fiches
VHDL, Verilog: Welche Sprache würden Sie eher verwenden?
Verilog, das näher an C und einfacher, keine Copy & Paste
Wie funktioniert Zustandsminimierung?
- vollständig spezifiziert mit Äquivalenzklassen
- unvollständig spezifiziert mit Kompatibilitätsklassen
Verilog: Wie reject inertial von VHDL machen?
- Leitung: transport delay
- Gatter: inertial delay
Schritte der automatischen Synthese?
- High-Level
- Logisch
- Layout
auch die transistor ebene (Verhalten von Gattern durch benutzerdefinierte Primitive(Funktionstabellen))
Gatter haben inertial delay, leitungen haben transport delay bei Verilog wird anders als bei VHDL auch die Flankenrichtung unterschieden außerdem gibt es unterscheidung zwischen minimaler, maximaler und standard verzögerung
Layoutsynthese: Verdrahtung Algoritmen
- Simple Router
(Labyrinth such Algo sucht kürzeste verbindung) - Hierarchischer Router
(halbierung und routing in beiden hälften rekursiv) - Pathfinder
(überladen der Kanäle, dann verteuerung der überfüllten kanäle in jedem schritt)
Verdrahtung: Was ermöglichst eine 100% automatische Verdrahtung?
Verdrahtungskanäle variabler Breite
Ports und Übersetzungsfunktionen
Was passiert bei der High-Level Synthese?
Abstraktionslücke (Verhalten -> Struktur, Kausalität -> Clock Time, Abstrakte Daten -> Bitvektoren)
Scheduling und Allokierung
Anzahl der Zustände reduzieren (unter gegebenen Contraints)
Systemarten: Wer wartet auf wen bei Interaktiven Systemen?
- Benutzer wartet auf System bei niedrigem Komfort
- Bei reaktiven ist das umgekehrt.
Logiksynthese: Ablauf
- Bibliotheksabbildung
- Zustandminimierung
- Zustandskodierung
- Logikminimierung
Layoutsynthese: Ablauf
- Platzierung
- Verdrahtung
Harwarebeschreibungssprachen
(Übernahme und Ergänzungen)
- Softwareaspekte (übernommen)
- Strukturierte Prozedurkonstrukte
- Datentypen
- Prozeduraufrufe
- Gültigkeitsbereich von Variablen
- Parallelität und Nebenläufigkeit in Hardware
- Beschreibung von Zeit (Ergänzung)
- Beschreibung von Schnittstellen (Ergänzung)
Was heißt VHDL ?
Very High Speed Integrated Circuit Harware Description Language
VHDL: Durch was werden Schnittstellen beschrieben
VHDL: Wie viele Arcitecture sind pro Entity erlaubt?
VHDL: Was macht eine Configuration?
- Ordnet einer Entity eine von vielen Arcitecture zu.
- Verbindet Signale und Ports bei Hirarchien
VHDL: Aus was besteht ein Package?
- Package-Declaration
- Funktionen
- Proceduren
- Typen
- Variablen
- Package Body
- Definition von Funktionen
- Definition von Prozeduren
VHDL: Wie sind Bibliotheken (Libraries) aufgebaut?
- Primary Unit
- Schnittstellendefinitionen (ENTITY)
- Packagedeklarationen (PACKAGE)
- Secondary Unit
- Architekturen (ARCHITECTURE)
- Package-Rümpfe (PACKAGE BODY)
- Konfigurationen (CONFIGURATION)
VHDL: Wann nehmen Signale Ihren neuen Wert an?
VHDL: Zeitliche Signalzuweisung
Es können mehere Wert/Zeit-Paare angegeben werden.
VHDL: Die Simulation in VHDL ist
VHDL: Simulation Ablauf
- ELABORAION: Schaltungsaufbau
- INITIALIZATION: Ausgangswerte seten, Prozesse aktivieren
- EXECUTION
Durchführung mehrerer Delta-Zyklen bis zustand stabil
- process evaluation (abarbeitung bis END oder WAIT)
- signal update (signaländerungen aktivieren prozesse die ein Delta später durclafen werden.
Erhöhung der Simulationszeit bis zum nächsten Eintrag in der Ereignisliste
Gründe für den Einsatz von ES.
- Komforterhöhung in einfachen Geräten
- Reduktion Größe und Gewicht
- Erhöhung Mobilität
- Erhöhung Effizienz / Funktionalität
- Erhöhung der Sicherheit
- Erhöhung der Wartbarkeit
- Reduktion Produktionskosten
- Senken des Energieverbrauches
HL-Synthese: Ablauf
- Verhaltensspezifikation
- compilieren
- Zwischenformat
- optimieren
- opt. Zwischenformat
- Synthese
- RT-Beschreibung
HL-Synthese: Zwischenformate
- Kontrollfluss-Information (Petri-Netze)
- Datenfluss-Information (Datenflussgraph)
- Verbindung zwischen Kontroll- und Datenfluss
- Ausgangspukt für Synthese
- möglichst geeignet für formale Verifikation
z.B.:
Synthese: Ziel
Erzeuge möglichst
- kleine (Aufgabe der Allokation) und
- schnelle (Aufgabe des Schedulings) Schaltung
Scheduling: List - Ablauf
- Knoten werden nach Länge der Pfade sortiert (prio)
- Bestimme ablaufbereite OPs
- max Prio zuordnen auf freie Resourcen bis voll
- nächster Zeitpunkt
Force directed: Distribution Graph
Summe der Wahrscheinlichkeiten eines OP typen zum Zeitpunkt t ausgeführt zu werden
HL-Synthese: Verbesserungen
- Busse minimieren
- Register minimieren
- Zeibedingungen berücksichtigen (interface-synthese)
- schleifen / verzweigungen berücksichtigen
HL-Synthese: Verträglichkeitsgraph
- Knoten: variablen
- Kanten: zwischen Knoten deren lebensdauer sich nicht uberlappen
- dann: bildung von cliquen (knoten die alle untereinander verbunden sind) [np-hart]
HL-Synthese: Konfliktgraph
- Knoten: variablen
- Kanten: zwischen variablen deren lebenszeiten sich überlappen
- dann: Graphfärbung mit minimaler #farben (zwei verbundene knoten dürfen nicht die gleiche frabe haben) [np-hart]
Path-based scheduling Vorteile/Nachteile
+ Gute Ergebnisse
- Keine Unterstützung für Optimierung von Bussen, Registern, Schnittstellen etc.
- Keine Schleifen abrolltechniken
- Keine berücksichtigung von pipelining
- keine unterstützung für das umsortieren von instruktionen
Logiksynthese: Zustandskodierung
entspricht optimaler binärer Darstellung der Zustände
- Optimal: einfache Zustandsübergangsfunktionen ermöglichen sparsamen Flächenverbrauch.
benötigte Zustandsbits r>=ceil(log2 n)
[r: #bits ; n: #Zustände]
Es gibt n! Arten die Kodewörter auf n Zustände abzubilden (Lösung ist NP-hart)
Logiksynthese: Zustandskodierungen, Gängige Kodierungen
- Binärkodierung (00, 01, 10, 11)
- Gray-Kodierung (00, 01, 11, 10
- 1-aus-n-kodierung (1000; 0100; 0010; 0001)
- Zufallskodierung
- Greedy-Kodierung
Layoutsynthese: Platzierungsproblem
läßt sich auf TSP reduzieren => daher NP-hart
heuristik ist erforderlich
Zieltechnologien: Vollkundenentwurf
Entwurf; Fertigungsvorbereitung; Fertigung; Nutzung
- Entwurf
- Individuelle Optimierung der Platzierung und Dim der Transistoren auf dem Chip
- Fertigungsvorbereitung
- Individuelle Erstellung aller Fertigungsmasken
- Fertigung
- Individuelle Durchführung aller Fertigungsschritte
- Nutzung
- Hoch optimiert für (nur) eine Anwendung
Zieltechnologien: Standardzellen / Makrozellen
Entwurf; Fertigungsvorbereitung; Fertigung; Nutzung
- Entwurf
- Platzierung standardisierter Teilschaltungen (Zellen) auf Chip
- Fertigungsvorbereitung
- Individuelle Erstellung aller Fertigungsmasken
- Fertigung
- Individuelle Durchführung aller Fertigungsschritte
- Nutzung
- Hoch optimiert für (nur) eine Anwendung