Vorlesung Modellierung und Simulation heterogener Systeme

Ähnliche Dokumente
Speicherung digitaler Signale

1. Einleitung. 2. Aufgabenstellung. R. Bartholomä, Prof. F. Kesel, Prof. T. Greiner Fachhochschule Pforzheim, Tiefenbronnerstraße 65, Pforzheim

Analyse verschiedener HLS-Systeme in Hinblick auf ihren Umgang mit der Hochsprachenabstraktion Speicher. Sascha Kath

Automatisierung mit Hilfe einer rekonfigurierbaren FPGA-Hardwareplattform

Was ist VHDL? V: very high speed integrated circuit HDL hardware description language. mächtige HW-Beschreibungssprache. Wozu hat man VHDL entwickelt?

16 Latches und Flipflops (Bistabile Kippstufen)

Rechnerorganisation 2 TOY. Karl C. Posch. co1.ro_2003. Karl.Posch@iaik.tugraz.at

Grundlagen der Informatik 2. Grundlagen der Digitaltechnik. 5. Digitale Speicherbausteine

FAKULTÄT FÜR INFORMATIK

Der Design- und Verifizierungsprozess von elektronischen Schaltungen. Y Diagramm

Schaltwerke Schaltwerk

Johann Wolfgang Goethe-Universität

Synthese Eingebetteter Systeme. 1 Einführung: Entwurf und Synthese

Musterlösung 3. Mikroprozessor & Eingebettete Systeme 1

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

Übungen zu Architektur Eingebetteter Systeme. Teil 1: Grundlagen. Blatt 5 1.1: VHDL 28./

Emulation und Rapid Prototyping. Hw-Sw-Co-Design

Emulation und Rapid Prototyping

a. Flipflop (taktflankengesteuert) Wdh. Signalverläufe beim D-FF

1. Praktische Übung zur Vorlesung Technische Informatik I

5. Schaltwerke und Speicherelemente S Q

Modelling with SystemC

Mastertitelformat bearbeiten

Grundtypen Flip-Flops

Eigenschaften von Zählerschaltungen (1) 1 1. Richtung

Synthesis for Low Power Design

Q R. reset (R) set (S) unzulässig! Unkontrollierte Rückkopplung von Gatterausgängen auf Gattereingänge führt zu logisch "inkonsistentem" Verhalten!

2.2 Rechnerorganisation: Aufbau und Funktionsweise

Technische Informatik

Versuch 3: Sequenzielle Logik

Hardwarearchitekturen und Rechensysteme

PROJEKT WÜRFEL. von Vincent Bootz, Christoph Beigel, Matthias Ackermann. Projekt Würfel WS2002/03

PROJEKT WÜRFEL. von Vincent Bootz, Christoph Beigel, Matthias Ackermann. Projekt Würfel WS2002/03

Einführung in VHDL. Dipl.-Ing. Franz Wolf

Technische Informatik. Der VON NEUMANN Computer

Serielle Kommunikation mit dem Arduino. Teil 1: Das Serial Peripheral Interface (SPI)

Einführung in VHDL (2)

Getaktete Schaltungen

Das Prinzip an einem alltäglichen Beispiel

VHDL Verhaltensmodellierung

Teil 1: Digitale Logik

5. Schaltwerke und Speicherelemente

Makros sind Textersetzungen, welche vom Präprozessor aufgelöst werden. Dies Passiert bevor der Compiler die Datein verarbeitet.

HW/SW Codesign 5 - Performance

Computer-Architektur Ein Überblick

CPLD Auswahl und Design

FPGA: Pseudo Random Generator (PRNG) von Prof. Dr.-Ing. Dirk Rabe

Logik mit Gedächtnis : Sequentielle Logik

Einführung in Automation Studio

3. Prozesse in VHDL 1

CORBA. Systemprogrammierung WS

a) Wie viele ROM-Bausteine benötigen Sie für den Aufbau des 64x16 ROMs? c) Wie viele Bytes Daten können im 64x16 ROM insgesamt gespeichert werden?

Inhaltsverzeichnis Vorlesung VHDL, HW/SW-Codesign"

Die Mikroprogrammebene eines Rechners

Sequentielle Logik. Einführung in die Technische Informatik Falko Dressler, Stefan Podlipnig Universität Innsbruck

VHDL Synthese mit WebPACK

Anleitung SDDesigner. MICROSWISS-Zentrum Rapperswil

Fachhochschule Kaiserslautern Fachbereich Angewandte Ingenieurwissenschaften WS2010/11. Zeitpunkt der Prüfung: Beginn: 10.

Synthese Eingebetteter Systeme. 9 Synthese: Grundlagen

7.0 Endliche Zustandsautomaten und Steuerwerke

Praktikum Digitaltechnik

Asynchrone Schaltungen

Wintersemester 2001/2002. Hardwarepraktikum. Versuch 4: Sequentielle Systeme 1. - Toralf Zemlin - Swen Steinmann - Sebastian Neubert

Mikroprozessor bzw. CPU (Central Processing. - Steuerwerk (Control Unit) - Rechenwerk bzw. ALU (Arithmetic Logic Unit)

VHDL Verhaltensmodellierung

III. Asynchrone und synchrone Schaltwerke

Erfolg mit Embedded Vision Systemen. Dipl.-Ing. Carsten Strampe Embedded Vision Systeme 1

Das große All-in-All CPLD/FPGA Tutorial

Hardware Virtualisierungs Support für PikeOS

- Strukturentwurf elementarer Rechenwerke - Grund-Flipflop (RS-Flipflop) - Register, Schieberegister, Zähler

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

Übersicht aktueller heterogener FPGA-SOCs

Qualitätsorientierter System Entwurf

C. BABBAGE ( ): Programmgesteuerter (mechanischer) Rechner

Rechner Architektur. Martin Gülck

Technische Informatik 1

FlexPath - Flexible, Dynamisch Rekonfigurierbare Verarbeitungspfade in Netzwerkprozessoren

Benutzte Quellen. Benutzte Bezeichnungen. Logik. Logik

Protokoll zu Grundelemente der Digitaltechnik

Leistungsbauelemente sind zur besseren Wärmeabfuhr in halbgeöffnete Leichtmetallgehäuse eingebaut.

Verifikation mit OVM/System Verilog Embedded Computing Conference 2009

Von SystemC zum FPGA in 7 Schritten. Kurzes Tutorial für die Synthese von SystemC Entwürfen auf dem ISMS Server der Hochschule

Entwurf und Validierung paralleler Systeme

Teil 1: Digitale Logik

Digitaltechnik II SS 2007

RTLOpen - Eine Methode zur interdisziplinären Entwicklung von software-intensiven Echtzeit-Systemen

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0

DuE-Tutorien 4 und 6. Tutorien zur Vorlesung Digitaltechnik und Entwurfsverfahren Christian A. Mandery. WOCHE 12 AM

Neues vom STRIP Forth-Prozessor

Eine blinkende LED mit Xilinx ISE 13: das Hello World! der Hardware.

Studienvertiefungsrichtung Informationstechnik

Praktikum Grundlagen von Hardwaresystemen Sommersemester Versuch 2: Multiplexer, Carry-Ripple- und Carry-Lookahead-Addierer

Untersuchung zur hardwareunterstützten Entwurfsverifikation von Stream-basierten Kommunikations- und Verarbeitungsalgorithmen

Experimentelle Hardwareprojekte. Volker Dörsing 20. März 2014

Compiler für Eingebettete Systeme

Statische Timing-Analyse

Wie in der Skizze zu sehen ist, bleibt die Periodendauer / Frequenz konstant und nur die Pulsweite ändert sich.

Funktionale Sicherheit Testing unter

L3. Datenmanipulation

Konzept / Architektur Diagramme

Transkript:

Vorlesung Modellierung und Simulation heterogener Systeme Modellierung heteorgener Systeme (Methodik v. Modellierung und Entwurf) Christoph Grimm 2003

Überblick über Semesterstoff Simulation ereignisdiskreter Systeme, SystemC Grundlagen Methodik Modellierung von Hw/Sw-Systemen Modellierung von Registertransfers Modellierung von Bustransaktionen, Busprotokollen Funktionale Modellierung Nichtdeterministische Modelle, Verfeinerung

Inhalt Kurze Zusammenfassung: SystemC Hw/Sw-Systeme Abstraktionsebenen und Methodik beim Entwurf heterogener Hw/Sw-Systeme Modellierung auf Register-Transfer-Ebene Beispiele

S Y S T E M C T M C++ Klassenbibliothek zur Modellierung von Hw/Sw Systemen Diskrete Prozesse, Kommunikationskanäle Ereignisdiskreter Simulationskern ruft C++ - Methoden von Modulen auf. Modelle können mit normalem C++ Compiler übersetzt werden. SC_MODULE(counter) { sc_out<int> count_val; sc_in<bool> clk; int cnt; do_count { cnt = cnt + 1; count_val.write(cnt); }; SC_CTOR(counter) { SC_METHOD(do_count) sensitive_pos << clk; } };

SystemC Use Flow SystemC Bibliothek C++ Compiler Linker Modell Ausführbares Programm (Simulator) C++ Debugger Simulationsergebnisse

Inhalt Kurze Zusammenfassung: SystemC Hw/Sw-Systeme Abstraktionsebenen und Methodik beim Entwurf heterogener Hw/Sw-Systeme Modellierung auf Register-Transfer-Ebene Beispiele

Hw/Sw-Systeme (1) DSP Σ pofi KV2W hook (telephone receiver) algorithm Interfaces Control Controller Σ prefi KIT Protection net Subscriber Digital circuit Mixed-Signal circuit Analog circuit red: linear electrical magenta: linear DAE s blue: dataflow green: digital (SystemC)

Hw/Sw-Systeme (2)

Hw/Sw-Systeme Vereinfachte Architektur Prozessor Software Hardware (Co-Prozessor) Hw/Sw-System, i. A. mehrere Prozessoren, mehrere Co-Prozessoren, mehrere Busse

Ausführbare Spezifikation (Executable Specification) Welcher Prozessor? Software Am Anfang i. d. R. : Softwareimplementierung Häufig Prototypimplementierung, z. B. MP3- Standardimplementierung von Fraunhofer Aber häufig: Leistungsaufnahme zu hoch Performance zu niedrig Prozessor zu teuer Wenn wir die Softwareimplementierung als Ausgangspunkt für den Entwurf eines Hw/Sw-Systems verwenden, so wird diese als ausführbare Spezifikation bezeichnet.

Hw/Sw-Systeme Partitionierung, Auswahl Architektur Prozessor Software Hardware (Co-Prozessor) Erforschung des Entwurfsraums (Partitionierung, Allokation): Zuweisung von Teilen der ausführbaren Spezifikation an Verarbeitungseinheiten (Prozessor(en), Co-Prozessore(en), Bussen),

Klassischer Top-Down Design Flow Verfeinerung C/C++ System Level Model Compilation Simulation Manuelle Konvertierung für HW Partition -Fehler - Inkonsistenzen - Unnötige Simulationen VHDL/Verilog Result Simulation Partitionierung, Allokation: Sukzessives Verlagern von Systemfunktionen auf Co-Prozessoren, bis Performence/Leistungsaufnahme OK Synthesis

SystemC Design Flow Verfeinern SystemC Model Compilation Simulation Evaluation Keine manuelle Übersetzung nötig. Der gesamte Entwicklungsprozess kann in einer Sprache durchgeführt werden. Der Entwurf kann sukzessive, ohne Bruch an eine Realisierung angenähert werden. RT-Synthese Software: C++ - Compiler, OS,... Gate-Level Design with Verilog, VHDL,...

Meilensteine der Verfeinerung Executable Spec. Untimed Functional Model Timed Functional Model Bus-Cycle Accurate Model Clock-Cycle Accurate Model Register-Transfer Model Parallelität geschätzte Laufzeiten [sec] Busse, Kommunikation Taktzyklen Realisierung

Meilensteine der Verfeinerung Executable Spec. Untimed Functional Model Timed Functional Model Bus-Cycle Accurate Model Clock-Cycle Accurate Model Register-Transfer Model Parallelität geschätzte Laufzeiten [sec] Busse, Kommunikation Taktzyklen Realisierung

Modellierung auf RT-Ebene Modelliert wird: Struktur: Kombinatorische Gatternetze Register Verhalten: Transfer von Eingang oder Register über Funktion zu Ausgang oder Register abhängig von Bedingungen (z. B. Taktflanken o. Pegeln) Registertransfermodelle: (Pseudocode) wenn EREIGNIS: Register = f1(register) EREIGNISSE: boolesche Funktion aus Pegeln oder Flanke von Signalen klingt zu einfach die Tücke liegt in der Synthese!

Registertransfersynthese Registertransfermodelle sind i.d.r. Ausgangspunkt für RT- Synthese! Es reicht nicht, dass Modell korrekt simuliert! Simulation (mis)match: RT-Synthese muss versuchen, das Verhalten des ereignisdiskreten Modells möglichst genau zu implementieren. RT-Synthese muss effiziente Hardware liefern. Synthetisierte Hardware muss sich genauso verhalten wie simuliertes Modell! Probleme - Vorsicht: Delta-Zyklen nicht physikalisch realisierbar Die Werte Unknown sind in der Realität entweder 1 oder 0.

Syntheserobuste Spezifikation von RT-Modellen NIE darauf verlassen, dass Synthesetool das Verhalten irgendwie korrekt realisiert. Methodik: Gewünschte Register und ihre Art (Flipflop oder Latch) wählen. Modell so schreiben, dass Synthese diese Register einführt, und das auch Kontrollieren. Registerinferenzregeln beschreiben Relation zwischen syntaktischen Konstrukten und synthetisierter Hardware. Registerinferenzregeln sind von Synthesewerkzeug zu Synthesewerkzeug verschieden. IEEE 1076.6: Minimalstandard für Austausch von RT-Modellen Sinngemäß: Syntheserobuste Spezifikation

Syntheserobuste Spezifikation kombinatorischer Funktionen Sie wollen eine kombinatorische Funktion realisieren (z. B. Addierer, Multiplizierer) x1 xn Syntheserobustes RT-Modell: WENN EVENT(x1,,xn) y=f(x1, xn) y=f(x1, xn) y

Modellierung kombinatorischer Funktionen in SystemC SC_MODULE(beispiel) { sc_in<int> a,b; sc_out<int> y; void compute() { y=a+b; }; SC_METHOD(compute) sensitive << a,b; }

Syntheserobuste Spezifikation von FlipFlops Sie wollen ein Schaltwerk, dessen Ergebnisse in FlipFlops gespeichert werden x1 xn Syntheserobustes RT-Modell: rv soll in Flipflop gespeichert werden WENN steigende Taktflanke rv=f(x1, xn) Takt f(x1, xn) rv Alle Signale, denen Wert zugewiesen wird, werden als Flipflops realisiert!

Modellierung von Schaltnetzen mit Flipflops in SystemC SC_MODULE(beispiel) { sc_in<int> a,b; sc_in<bool> clk; sc_out<int> y; void compute() { y=a+b; }; SC_CTOR(beispiel) { SC_METHOD(compute) sensitive_pos << clk; } }

Syntheserobuste Spezifikation von Latches Sie wollen ein Schaltwerk, dessen Ergebnisse in Latches gespeichert werden x1 xn Syntheserobustes RT-Modell: rv soll in Latch gespeichert werden WENN Taktpegel rv=f(x1, xn) Takt f(x1, xn) rv Alle Signale, denen Wert zugewiesen wird, werden als Latches realisiert!

Modellierung von Schaltnetzen mit Latches in SystemC SC_MODULE(beispiel) { sc_in<int> a,b; sc_in<bool> clk; sc_out<int> y; void compute() { if (clk == 1) { y=a+b; }; } } SC_CTOR(beispiel) SC_METHOD(compute) sensitive << clk << a << b; }

Nicht-Syntheserobuste Konstrukte (Beispiele) WENN EVENT(x1,,xn-1) y=f(x1, xn) Für Simulation-Match nötig: Latch, in dem y gespeichert wird, falls sich xn ändert. Synthesetools implementieren solche Prozesse meist als kombinatorische Logik Simulation-Mismatch! WENN EVENT(x1,, xn) IF (condition) THEN y=f(x1,, xn) END IF; Führt ggf. zur Inferenz eines Registers, in dem y gespeichert wird, solange condition nicht erfüllt ist. Häufig aber kombinatorische Logik gewünscht bzw. gedacht.

Überblick über Semesterstoff Simulation ereignisdiskreter Systeme, SystemC Grundlagen Methodik Modellierung von Hw/Sw-Systemen Modellierung von Registertransfers Modellierung von Bustransaktionen, Busprotokollen Funktionale Modellierung Nichtdeterministische Modelle, Verfeinerung

Übung Beispiel: Modellierung eines einfachen RISC -Prozessors Zu Hause: Modellieren sie selber einen einfachen RISC-Prozessor, der außerdem über load/store-befehle verfügt.

TI-Mini-RISC Prozessor hat die folgenden Register: Programmzähler PC Pointer auf Adresse, die nächsten auszuführenden Befehl enthält Instruktionsregister IR Auszuführender Befehl Andere Register Stackpointer, Datenregister, Adressregister, Flags, Zyklen: Fetch: Von *PC wird Befehl in IR geholt, PC = PC + 1; Decode: CASE(IR) ADD: Next = ExecuteADD; ExecuteINC: z.b. D0 = D0+1;