Electronic Design Automation (EDA) Systementwurf

Ähnliche Dokumente
Electronic Design Automation (EDA) Entwurfseingabe

Electronic Design Automation (EDA) Verification

SPKC. Inhalte der Vorlesung. Signalprozessoren und Kommunikationscontroller. Prof. Dr.-Ing. Peter Schulz. Signalprozessoren

Electronic Design Automation (EDA) Spezifikation

Prof. Dr.-Ing. Peter Schulz

Inhaltsübersicht. Einführung

Digital Design 5 Rechnergestützte Schaltungsentwicklung

Signale und Logik (3)

Lehrstuhl für Informatik 12 (Hardware-Software-Co-Design) Prof. Dr.-Ing. J. Teich

Compiler für f r Eingebettete Systeme (CfES)

SOC - System on a Chip

IuK-Projekt am Institut für Mikroelektronik und Eingebettete Systeme. Prof. Dr.-Ing. Peter Schulz Sommersemester 2013

Zwischenbericht zum Projekt FPGA-Entwurfssystem

Algorithmen versus Programmiersprachen

1.4 Spezifikation. Inhalte einer. Spezifikation

Eingebettete Systeme oder Embedded Systems. Eingebettete Prozessoren oder Embedded Processors

Verilog/VHDL. Mehdi Khayati Sarkandi Uni Siegen

Praktische Informatik I

2.5 Verifikation. Verifikation und Test Der Pentium-Bug Das Verifikationsproblem. Verifikationswerkzeuge. Verifikationsstrategie: Close

HW vs. SW ein erster Vergleich

Organisatorisches (1)

Definitionen/Vorarbeit zum Thema Java

Aktuelle Trends bei der Simulation mechatronischer Systeme

Vertiefungsrichtung Rechnerarchitektur

Semantik von Programmiersprachen

Example Ptolemy Model of Comp.: Synchronous Reactive

Der Design- und Verifizierungsprozess von elektronischen Schaltungen. Y Diagramm

Technische Grundlagen der Informatik 2 SS Einleitung. R. Hoffmann FG Rechnerarchitektur Technische Universität Darmstadt E-1

Fehlertoleranz & Robustheit

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

Motivation. Eingebettetes System: Aufgabe:

Informatik 2-stündig

Partitionierung komplexer heterogener Systeme

Formale Entwicklung objektorientierter Software

Software Engineering. 5. Architektur

Webservices für eingebettete Systeme

2.1 Rechnersichten 2.2 Rechnerorganisation: Aufbau und Funktionsweise

Praktische Informatik I

Projekt. Systementwurf. projekte/systementwurf/ Universität Hamburg

Philipp Grasl PROZESSOREN

Programmierbare Logikbauelemente

Eckpunkte der Informatik-Geschichte

Programmiersprache. Emily & rica

FPGA. Field Programmable Gate Array

Objektorientierte Programmierung (OOP)

Einführung in die Objektorientierte Programmierung Vorlesung 2: Mikroskopisches und Makroskopisches Computational Thinking.

Software- /Systemarchitektur

Modul Soll-LP PNr Titel LP Frq Programmieren I Programmieren I mit Laborübung als Studienleistung

Virtuelle Inbetriebnahme. Digitalization Days 2017

Grundlagen der Technischen Informatik. Kapitel 0

Hardware Praktikum 2008

Diskrete Ereignissysteme. Spezielle Netzstrukturen- Übersicht. Beispiele zu speziellen Netzstrukturen. Petri-Netze und Zustandsautomaten

Einführung in die Informatik Turing Machines

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration

VHDL Einleitung. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2010

Entwurf integrierter Schaltungen

Fachbereich Informatik

Einführung (1) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München

Computergestützter IC- Entwurf

1. Einführung. Was ist ein Algorithmus (eine Datenstruktur)? Welche Probleme kann man damit lösen? Warum betrachten wir (effiziente) Algorithmen?

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 37

Electronic Design Automation (EDA) Technology Mapping

1. Einleitung. Informationstechnische Systeme

Kompetenzfeld Software- und Automatisierungstechnik

myavr Projekt myfinder MK3 Projekt Beschreibung Inhalt

1. HW vs SW ein erster Vergleich

Wesentliche Bereiche für den Gegenstand Französisch (sechsjährig)

Effiziente Überwachung von Laufzeiteigenschaften in Soft- und Hardware

ò ò ò ò ò ò Software Engineering I Organisatorisches / Einf³hrung Version Andreas Stuckert/Markus Rentschler

Inhaltsverzeichnis Einführung und Überblick

Einführung in die Informatik. Programming Languages

Einführung in die Informatik Turing Machines

Digitale Signalprozessor - Architekturen im Überblick

Eingebettete Systeme

Prozessorarchitektur. Kapitel 1 - Wiederholung. M. Schölzel

Programmieren Formulierung eines Algorithmus in einer Programmiersprache

Hardware-Engineering

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download

Studien- und Prüfungsplan Pflichtlehrveranstaltungen

Grundlagen der Automatisierungstechnik für den Studiengang BEL 1. Semester

SWE6 Slide 1. Software-Engineering. Vorlesung 6 vom Sebastian Iwanowski FH Wedel

Prozessorarchitektur SS2017 Rahmenbedingungen zum Praktikum

C2: Tabellenkalkulation Daten und komplexe Strukturen (14)

Programmiersprachen und Übersetzer

Das Praktikum mit Seminar vertieft die in der Vorlesung erworbenen Fähigkeiten in theoretischer und praktischer Hinsicht:

Umbuchungen im Bachelor-Studiengang Technische Informatik für den Wechsel von der PO 2010 zur PO 2017

Test & Diagnose digitaler! Systeme,! Prüffreundlicher Entwurf.!

FACHARTIKEL der Dunkermotoren GmbH im August 2017

Fakultät Elektrotechnik Übergangsregelungen EIT / EITiP Beschluss des FKR E vom Prüfungsausschuss

EIDI 1 Einführung in die Informatik 1. PGdP Praktikum Grundlagen der Programmierung. Harald Räcke 2/217

Inhalt. Einführung in die Strukturierte Programmierung 15

1. Einführung Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

Einführung in die Informatik. Programming Languages

Einführung in die Programmierung

Transkript:

Electronic Design Automation (EDA) Systementwurf Systembegriff Beispiel Antiblockiersystem Signalverarbeitung Hardware/Software- Partitionierung Hardware oder Software? Electronic Design Automation

Systementwurf: Systembegriff Grob vereinfacht besteht ein (technisches) System aus Sensoren und Aktoren, die den Kontakt mit der Umwelt herstellen, sowie einem Signalverarbeitungsteil. Sensoren nehmen physikalische Signale auf, die im Signalverarbeitungsteil Rechenprozessen unterworfen werden. Als Ergebnis der Verarbeitung werden Aktoren angesteuert, die entsprechende Aktionen an die Umwelt weitergeben. Die Komponenten kommunizieren häufig über einen gemeinsamen, so genannten (System-)Bus miteinander. Sensoren und Aktoren sind elektrischer, mechanischer, optischer, chemischer oder anderer Natur. Der Signalverarbeitungsteil ist heute in der Regel elektronischer Natur.

Systementwurf: Beispiel Antiblockiersystem Ein Beispiel für ein technisches System stellt das Antiblockiersystem (ABS) eines Autos dar. Sensoren erfassen die Umdrehungsgeschwindigkeit der Räder des Fahrzeugs. Die entsprechenden Signale werden im Steuerungsbaustein verarbeitet, der schließlich entsprechende Signale an die hydraulischen Bremszylinder (Aktoren) abgibt. Im Rahmen dieser Vorlesung wollen wir uns auf den elektronischen Signalverarbeitungsteil konzentrieren.

Systementwurf: Signalverarbeitung Wiederum grob vereinfacht besteht der Signalverarbeitungsteil aus einem universellen Rechenwerk (Standardprozessor), einem Speicher, der das auf dem Prozessor auszuführende Programm sowie die anfallenden Daten enthält, sowie weitere, für Spezialaufgaben zur Verfügung stehende, so genannte spezifische integrierte Schaltungen (Integrated Circuits, ICs). Während ein Speicher in der Regel unverzichtbar ist, können je nach Aufgabenstellung entweder der universelle Prozessor oder die spezifischen ICs entfallen.

Systementwurf: Hardware/Software- Partitionierung Ausgangspunkt für den Entwurf des Signalverarbeitungsteils eines Systems ist seine Spezifikation, in der die gewünschten Funktionen, die das System ausführen soll, beschrieben sind. Entsprechend der vorgenommenen Aufteilung in einen universellen Standardprozessor und spezifische ICs besteht der erste Teil der Entwurfsaufgabe darin zu entscheiden, welche der gewünschten Funktionen in auf dem universellen Prozessor abzulaufende Software und welche unmittelbar in durch spezifische ICs zu realisierende Hardware implementiert werden sollen. Der Entscheidungsprozess, welche Funktionen in Software bzw. in Hardware ausgeführt werden sollen, ist Gegenstand der sogenannten Hardware/Software-Partitionierung. Sie ist ein aktueller Forschungsgegenstand, jedoch nicht Gegenstand dieser Vorlesung, die sich auf Werkzeuge für den Hardwareentwurf beschränkt. Wie das Bild Hardware/Software - Partionierung zeigt, weist der Entwurf auf der gewählten, noch sehr abstrakten Betrachtungsebene große Ähnlichkeit mit dem Softwareentwurf auf. Die zu realisierende (Teil-)Funktion muss zunächst in einer geeigneten - maschinenlesbaren - Sprache beschrieben werden. Dies erfolgt beim Softwareentwurf in einer höheren Programmiersprache wie z.b. C, C++ oder Java. Auf der Hardwareseite wird das entsprechende Äquivalent als Hardware-Beschreibungssprache bezeichnet. Die am weitesten verbreiteten Hardwarebeschreibungssprachen sind Verilog und VHDL; dabei handelt es sich um formale, programmiersprachenähnliche Beschreibungen, die in der Lage sind, neben arithmetischen Ausdrücken, Kontrollanweisungen etc. auch Hardwarestrukturen und -eigenschaften zu beschreiben.

Systementwurf: Hardware oder Software? Diese Frage ist nicht leicht zu beantworten. Einige Kriterien dazu sind beispielhaft dargestellt. Eine Prozessor-Lösung ist sicher stets dann vorzuziehen, wenn viele Daten sequentiell verarbeitet werden müssen und wenn die Lösung flexibel sein soll, da viele Funktionsänderungen durch Modifikation der Software leicht durchgeführt werden können. Die höchste Performance wird dagegen stets durch eine unmittelbare Hardware-Realisierung erzielt. Weitere nicht dargestellte Aspekte sind beispielsweise die Verlustleistung und vor allem die Kosten der gewählten Lösung, die stark von der zu realisierenden Stückzahl abhängig sind.

Systementwurf: Electronic Design Automation Mit Hilfe eines Compilers wird die in einer höheren Programmiersprache beschriebene Software nun in der Regel vollautomatisch in die Maschinensprache des Prozessors übersetzt, so dass sie dort ausgeführt werden kann. Es liegt deshalb nahe, dieselbe Idee, auch für den Hardwareentwurf zu verwenden, und sich einen "Silicon-Compiler" vorzustellen, mit dessen Hilfe aus dem in der Hardware-Beschreibungssprache vorliegenden Entwurf ebenfalls vollautomatisch die für die Fertigung einer integrierten Schaltung erforderlichen Daten erzeugt werden. Tatsächlich ist dies und wird es voraussichtlich auch bleiben ein Traum. Der dazu erforderliche "Übersetzungsprozess" ist derartig komplex und aufwändig, dass er nur als Abfolge von zahlreichen unterschiedlichen Entwurfsschritten mit zunehmendem Detaillierungsgrad beherrscht werden kann. Viele dieser Schritte sind heute automatisiert bzw. teilautomatisiert. Wir sprechen dabei von Entwurfsautomatisierung (Electronic Design Automation, EDA) und sind damit beim eigentlichen Gegenstand dieser Vorlesung angelangt. EDA als solches ist ein aktueller Forschungsgegenstand, dessen Status sich kontinuierlich verändert. In dieser Vorlesung wird der heutige Stand dargestellt, wobei der Schwerpunkt auf den grundsätzlichen Prinzipien und Algorithmen liegt. Der aktuelle Stand in der Praxis kann davon im Detail abweichen. Wichtig ist deshalb, die grundsätzliche Vorgehensweise und die zugrundeliegenden Zusammenhänge zu verstehen. Dies soll, anhand exemplarischer Beispiele vermittelt werden.