Funktion und Struktur Kapitel 2 Prof. Dr.-Ing. Jürgen Teich Lehrstuhl für Hardware-Software-Co-Design
Der Systembegriff - Systemvielfalt Der Begriff System wird häufig im Zusammenhang mit natürlichen, technischen und organisatorischen Gebilden mit komplexem Erscheinungsbild eingesetzt Beschreibt generell die Gliederung, den Aufbau, das Ordnungs- und Einordnungsprinzip in verwandte oder ähnlich gebaute Gruppen Beispiele: 2
Der Systembegriff Wegen der unüberschaubaren Vielfalt an möglichen Systemen entzieht sich der Begriff einer allgemeinen Definition: natürlich oder künstlich konkret oder abstrakt statisch oder dynamisch offen oder abgeschlossen Für jedes konkrete System kann eine Fülle zusätzlicher Merkmale (oder Attribute) festgelegt werden bzgl.: des Grades der Bestimmtheit der Entstehungsweise der örtlichen und zeitlichen Konzentriertheit der Zeitabhängigkeit usw. Notwendig: Beschränkung des Systembegriffs auf Bereiche (technische Anwendungen) 3
Der Systembegriff Bei Beschränkung auf technische Sichtweise gilt: Ein System umfasst stets kleinere Anteile - Untersysteme, Komponenten, Module, Bausteine, Elemente sogenannte Objekte 4
Der Systembegriff - technische Sichtweise Zwischen den Objekten eines Systems müssen Beziehungen bestehen Beziehungen können materieller, energetischer und informationeller Natur sein ermöglichen Zusammenwirken solcher Objekte Gesamtheit dieser Beziehungen bildet zusammen mit den Objekten die Struktur des Systems 5
Der Systembegriff - technische Sichtweise Objekte und Beziehungen bilden eine abgeschlossene Einheit - nur über definierte Schnittstellen (externe Schnittstellen) kann ein System betreten und verlassen werden Ein-/Ausgabebeziehungen 6
Darstellung von Systemen Externe Sicht (Architektur) für den Benutzer keine Aussagen über die interne Realisierung dieses Systems Interne Sicht für den Hersteller und Betreiber Daher: Bedarf an geeigneten Beschreibungsmöglichkeiten Funktion F umgangssprachlich, fachsprachlich oder mathematisch/formal festlegen Diese Notation dient dann häufig als Referenz zur Realisierung von F (z.b. zur Konstruktion von Anlagen, Geräten und Programmen) F 7
System: Beispiel Tic-Tac-Toe Roboter Funktionsweise: Aufbau: Roboter mit Sensoren zum Lesen eines Tic-Tac-Toe Feldes und Stift zum Zeichnen der eigenen Marke Aufgabe: Der Roboter soll mit einem Gegenspieler das Strategiespiel Tic-Tac-Toe spielen und dabei strategisch optimale Spielzüge setzen. 8
System: Beispiel (Fortsetzung) Festlegung der Gesamtfunktion F: Zu Beginn wird durch rote oder grüne Karte gezeigt, wer das Spiel eröffnet (Roboter oder Spieler). Dann alternierend bis Spielende: Spieler: Roboter fährt in Warteposition, bis Spieler Zug beendet hat. Roboter: Roboter fährt zum Spielfeld, sucht es nach neu plaziertem Symbol, berechnet nächsten Spielzug und setzt eigenes Symbol. 9
System: Beispiel (Fortsetzung) Festlegung der Gesamtfunktion F: Eingabe: Farbsensor (1) lese Karte, Ultraschallsensor (2) erkenne Spieleraktivität, Lichtsensor (3) scanne Spielfeld Ausgabe: Motor zu/vom Spielfeld fahren, Motor Arm aus- /einfahren, Motor Stift runter-/hochfahren, Lautsprecher 10
System: Beispiel (Fortsetzung) Externe Schnittstellen von F: Die Festlegung von F sagt noch nichts aus, wie das Gerät zu realisieren ist und welche technischen Randbedingungen dabei zu berücksichtigen sind Wir erhalten lediglich einige Angaben über die externen Schnittstellen, mit deren Hilfe die Funktion F mit der Außenwelt in Wechselwirkung tritt Farbsensor lese Karte Ultraschallsensor erkenne Spieleraktivität Lichtsensor scanne Spielfeld F Motor zu/vom Spielfeld fahren Motor Arm aus-/einfahren Motor Stift runter- /hochfahren Lautsprecher 11
System: Hierarchie und Aufteilung Komplexes System: Unterteilung in überschaubare Teilfunktionen Hierarchie Höher angesetzte Ebene umfasst dabei stets die Spezifikation eines Systems (bzw. einer Systemkomponente) Tiefere Ebene umfasst eine Anordnung von funktionell weniger mächtigen Komponenten f i und deren Spezifikation F f i Verfeinerung in Teilsysteme f (Komponenten) Verfeinerungsschritt: Transformationen der funktionellen Beschreibung in eine strukturelle Beschreibung f j f k 12
System: Hierarchie und Aufteilung Beispiel: Auflösung des Systems Tic-Tac-Toe Roboter in Teilsysteme Tic-Tac-Toe Controller Farbe Fahren Ultraschall Lichtsensor Sensor Reader Artificial Intelligence Motor Control Arm Stift Audio Control Lautsprecher 13
Mehrstufige Verfeinerung Bei heutigen Digitalsystemen reicht eine einstufige Verfeinerung meist nicht aus, um eine Realisierung vornehmen zu können Deshalb ist eine mehrstufige Aufteilung des Systems sinnvoll, um die Komplexität zu reduzieren Verfeinerungsschritte können auch als Transformationen der funktionellen Beschreibungen in eine strukturelle aufgefasst werden Definition der Teilsysteme f (Komponenten): - realisieren genau bestimmbare Funktionsteile der Gesamtfunktion F - präzise funktionelle Abgrenzung gegenüber anderen Teilsystemen Wichtig: Relationen zwischen den unterschiedlichen Teilsystemen f Verbindungsrelationen und geeignete Verbindungsstrukturen 14
Mehrstufige Verfeinerung Mehrstufige Systemverfeinerung F 0 1. Verfeinerungsschritt f 12 f 11 f 13 F 11 F 12 F 13 2. Verfeinerungsschritt f 21 f 24 f 26 f28 f 22 f 23 f 25 f 27 F 24 F 25 3. Verfeinerungsschritt f 31 f 32 f 33 f 34 f 35 15
Mehrstufige Verfeinerung Mehrstufige Systemverfeinerung F Spezifikation 0 1. Verfeinerungsschritt f 12 f 11 f 13 F Top-Down 11 zunehmend f 21 mehr f 22 f 23 Detailreichtum f 24 F 12 F 13 f 25 Bottom-Up 2. Verfeinerungsschritt zunehmend f 26 mehr f 27 Abstraktion f28 F 24 F 25 3. Verfeinerungsschritt f 31 f 32 f 33 Struktur f 34 f 35 16
Systematischer Entwurf digitaler Systeme Entwurf von digitaltechnischen Systemen folgt Top-Down-Prinzip Einzelne Komponenten einer bestimmten Technologie werden im Bottom-Up-Prinzip technisch optimal gestaltet und in Top-Down-Weg einbezogen Tatsächliches Entwerfen häufig ein iteratives Vorgehen: Beide Entwurfsrichtungen abwechselnd über eine oder mehrere Verfeinerungsstufen Smartphone System-on- Chip 17
Systematischer Entwurf digitaler Systeme Entwurf von digitaltechnischen Systemen folgt Top-Down-Prinzip Einzelne Komponenten einer bestimmten Technologie werden im Bottom-Up-Prinzip technisch optimal gestaltet und in Top-Down-Weg einbezogen Tatsächliches Entwerfen häufig ein iteratives Vorgehen: Beide Entwurfsrichtungen abwechselnd über eine oder mehrere Verfeinerungsstufen Im Entwurf digitaltechnischer Systeme unterscheidet man drei Hauptgruppen, die eine Reihe von Transformationsschritten zusammenfassen: Systementwurf (manuell mit Unterstützung durch Automatisierung) Logischer Entwurf (Automatisierung) Physikalischer Entwurf (Automatisierung) 18
Systematischer Entwurf digitaler Systeme Automatisierung des Entwurfsablaufs Für die meisten Entwurfsaufgaben kommt nur eine Mischung aus manuellem und automatisiertem Entwurf in Frage Hierfür werden eine Reihe von CAD-Werkzeugen von verschiedenen Herstellern angeboten (Cadence, Synopsys, Mentor Graphics etc.) manuell: Funktion F n automatisch: Funktion F n Entwickler f 1,,f k Computer Aided Design Programm f 1,,f k Struktur STR n+1 Struktur STR n+1 19
Technische Informatik - Meilensteine Computer Aided Design (CAD) Benutzerschnittstellen Modellierung Hierarchie und Abstraktion CAD Formale Spezifikation Syntheseverfahren Datenbanken Optimierungsalgorithmen Reduktion von Entwurfskosten und Entwurfszeiten Wiederverwendbarkeit, Entwurfssicherheit, Optimierte Dokumentation, Lösungen, Produktwartung 20
Systematischer Entwurf digitaler Systeme Abstraktionsebenen System Modul (Register-Transfer-Ebene) Gatter (Logik-Ebene) Transistor Physikalisch 21
Systematischer Entwurf digitaler Systeme architecture structural of first_tap is signal x_q,red : std_logic_vector(bitwidth-1 downto 0); signal mult : std_logic_vector(2*bitwidth-1 downto 0); begin Hardware Beschreibung (RT-Ebene) Netzliste (Logik- Ebene) delay_register: process(reset,clk) begin if reset='1' then x_q <= (others => '0'); elsif (clk'event and clk='1') then x_q <= x_in; end if; end process; Automatisierte Synthese (Synopsys) mult <= signed(coef)*signed(x_q); Chip Wafer Masken- Layout Platzierung & Verdrahtung (Cadence/ Mentor) Fabrikation 22
Entwurfsverfahren Was automatisierter Entwurf auch sein kann...? Idee Computer Aided Design 23
SystemCoDesigner Entwurfsfluss writes MJPEG Stream Parser Huffman decoder Inverse ZRL DC decoder Inverse Quantific ation Automatic model extraction Network graph Architecture graph specifies Image Pixel Color Inverse Inverse Display Sink shuffling conv. DCT ZigZag SysteMoC application Reuse Specification graph SysteMoC application VPC Plugin Simulative Evaluators Analytical Evaluators DSE Evolutionary Algorithm Pareto solutions C++-Backend Skeleton files Parser Pretty print Target AST XML-Backend Pretty print DOM tree Synthesis GeneratorFactory GeneratorPool Generator Generator Code Generation Frontend C++ Parser Source AST Network graph Architecture graph 24??? 2 2 a 2 2 2 a 1 1 1 a 3 1 1 1 1 Clustering??? selects
Technische Informatik - Ein Lernziel Hardware entwirft man heutzutage wie Software! Software Spezifikation in einer Programmiersprache, z.b., C, C++, Java Hardware Spezifikation in einer (Hardware-) Beschreibungssprache, z.b.,vhdl, SystemC (C++ Bibliothek), aber auch C Übersetzung in Maschinencode Codeoptimierung Scheduling Bindung Übersetzung in eine Schaltung Codeoptimierung Scheduling Bindung 25
Praktische Übung Kennenlernen der Hardwarebeschreibungssprache VHDL Entwurf, Simulation und Synthese eines digitalen Weckers Realer Hardwareentwurf 26