Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

Slides:



Advertisements
Ähnliche Präsentationen
Integrations- und Funktionstests im Rahmen des V-Modelles
Advertisements

Objektorientierte Programmierung
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Eingebettete Systeme Qualität und Produktivität
Das „Vorgehensmodell“
Hauptseminar Modellüberprüfung Kathrin Ott
Vergleichende Untersuchungen zur effizienten VHDL-Simulation
1 Technische Universität Darmstadt FG Mikroelektronische Systeme Prof. Dr. Dr. h.c. mult. Manfred Glesner Resonantes Umladen von Taktnetzwerken Clemens.
Seminar Software-Engineering für softwareintensive Systeme
On a Buzzword: Hierachical Structure David Parnas.
FH-Hof Extensible Markup Language Richard Göbel. FH-Hof Extensible Markup Language XML XML ist universeller Ansatz für die Strukturierung von Zeichenketten.
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Indirekte Adressierung
FH-Hof Indirekte Adressierung Richard Göbel. FH-Hof Einfache Speicherung von Daten Eine "einfache" Deklaration definiert direkt eine Speicherplatz für.
Java: Grundlagen der Sprache
Strukturen. In einer Struktur kann eine beliebige Anzahl von Komponenten (Daten) mit unterschiedlichen Datentypen (im Gegensatz zu Feldern) zusammengefaßt.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 3 Klassen, Objekte, Arrays und Kontrollstrukturen Sommersemester 2003 Lars Bernard.
Modularisierungstechniken
2.5. Mikrocontroller-Komponenten
Zusammenfassung Vorwoche
4. Mikrocontroller-Komponenten
DVG Klassen und Objekte
Weiteres Programm Studium des Breitendurchlaufs Hierzu
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
UML Begleitdokumentation des Projekts
Kontrollfragen zu Kapitel 1
Vorgehensmodelle: Schwergewichtige Modelle
Was umfaßt die CORBA Core Spezifikation? Welche zusätzlichen Komponenten muß ein ORB Produkt beinhalten? Core: CORBA Objekt Modell CORBA Architektur OMG.
Java programmieren mit JavaKara
Duo- und Quad Prozessor-Architektur
CPLD/FPGA-Programmierung mit E-blocks. Wozu die CPLD/FPGA-Programmierung untersuchen? Zusammenhang zur modernen Digitalen Elektronik Verschwinden der.
Informatik 1 Übung 2.
Name des Vortragenden Klasse Ort / tt.mm.jjjj Beschreibung Zentraleinheit CPU, Motherbord, RAM.
Steuerung externer Komponenten über ein USB-Interface.
Einführung in die Programmiersprache C 3.Tag Institut für Mathematische Optimierung - Technische Universität Braunschweig.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Einführung in die Programmiersprache C 4
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
VHDL 4: Getaktete Logik (D-FF, Zähler, Automaten)
Inhalt Einen Zähler generisch aufbauen CPLD Synthese Timing Analyse
UML-Kurzüberblick Peter Brusten.
Wasserfallmodell und Einzelbegriffe
C-Einstieg. Agenda 1Vorbereitung 2Aufbau eines Programms 2.1Header 2.2 Methoden 2.3Main 3Datentypen & Variablen 4Operatoren(+, -, *, /) 5Logik 5.1IF 5.2Switch.
Μ Version 1.0Seite 1µVision Start Debugger Set Breakpoint µVision Debugger.
Vienna University of Technology Pirker Simon 1. Überblick Definition Motivation Vorteile Entwurf von VP Pirker Simon 2.
Agenda für heute, 7. April, 2005 Bedingte ProgrammausführungBedingte Programmausführung Algorithmische Grundlagen Vergleichsoperatoren, Wahrheitswerte.
PHP: Operatoren und Kontrollstrukturen
Technische Informatik II
Technische Informatik II
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
CSS Cascading Style Sheets
Der Design-Flow eines ASIC
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.
Inhalt Einordnung und Funktion der lexikalische Analyse Grundlagen
2. Woche: Timingmodelle Synthetisierbares VHDL Aufgaben
Extended Pascal ( Erweitreung von Pascal) Name: Mehmet CELIK Matr :
Extended Pascal Erweiterung von Pascal shadi Behzadipour shadi Shadi behzadipour.
Folien zur Vorlesung Hardwarearchitekturen und Rechensysteme von Prof. Dr. rer. nat. U. Brinkschulte Prof. Dr.-Ing. L. Hedrich (basierend auf Materialien.
Funktionen. Aufgabe : Eingabe zweier Zahlen ---> Minimum bestimmen Dann nochmals Eingabe zweier Zahlen ---> Minimum bestimmen.
X. Übungsblatt – Aufgabe X In dieser Aufgabe soll ein synchron getakteter Steuerungsautomat für den in Abbildung 1 dargestellten Prozessor-Chip mit geringem.
Funktionen, Felder und Parameter- übergabe. Funktionsaufruf mit Feld als Parameter: Parameter = Name des Feldes.
Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.
Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.
A. Steininger TU Vienna 1 Multicore eleganter Work-Around um die Design-Crisis Problemverschiebung in die SW (= auf höhere Ebene) ABER: hohe Parallelität.
MIKROELEKTRONIK, VIEEAB00
 Präsentation transkript:

Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00 HDL, Synthese, Verilog, SystemC

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET Hardware-Beschreibung Sprachen (HDL) ► Überschau ► Synthese ► Verilog ► SystemC

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET Entwicklung von HDL-s ► In den 80-er Jahren wurden die digitalen Schalt- kreise so komplex, dass sie auf Transistor- bzw. Gatterebene nicht mehr überschaubar waren ► Es wurde ein Mittel benötigt zur schnellen und effizienten Gestaltung und Prüfung der Entwürfe ► Die Lösung kam in Form von Programmiersprachen (Verilog, VHDL, ABEL, usw.) ► Diese sind Spezialsprachen, die direkt für die Ansprüche des Hardware-Entwurfs gestaltet wurden ABEL – Avanced Boolean Equation Language – (z.B. Xilinx)

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET Eigenschaften der HDLs ► Sie modellieren, simulieren (und darstellen) die digitale Hardware ► Sie können die konkurrenten Tätigkeiten im Schalt- kreis beschreiben (Parallelität) ► Sie wiedergeben den zeitlichen Verlauf der Signale ► Sie realisieren die unterschiedlichen digitalen Modelle (kombinatorische, synchrone und asynchrone sequentielle Netzwerke) ► Unterstützen den modularen Entwurf

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET Vorteile der HDLs ► Unterstützung der strukturierten Entwurfsmethoden ► Projekte können flexibel partitioniert werden ► Auf Grund der Sprachbeschreibung kann der Schaltplan generiert werden, wenn notwendig ► Abstraktion auf hoher Ebene ist möglich ► Einfacher Vergleich von Alternativen ist möglich ► Änderungen können schnell durchgeführt werden ► Bessere Effizienz und Qualität  grössere Produk- tivität beim Entwerfen ► Schneller Prototypenentwurf durch Synthese

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET Entwerfen in HDL ► Günstig für top-down Stil ► High-Level Beschreibung der Funktion (Verhalten) ► Verifizierung durch Simulation ► Identifizierung von kleineren funktionellen Einheiten ► Partitionierung des Systems ► Unterteilung in hierarchische Blöcke ► Verfeinerung bis RTL-Ebene (Register-Transfer Level, Hardwarenahe “quasi-strukturelle” Beschreibung) ► Ständige Prüfung durch Simulation

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET RTL – Register-Transfer Level ► Das ideale Synthese:  SpezifikationChip Layout  Das können Programme nur annähern, mit Hilfe des Entwerfers ► Auf System-Ebene ist der Freiheitsgrad der Reali- sierung sehr hoch. ► Wahl zwischen Software und Hardware. ► Der Syntheser benötigt RTL-Beschreibung, wo Datenlogik, Manipulationen sowie Steuerlogik erkennbar sind (Register, Busse, State-Machine, Boole’sche Gleichungen).

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET Synthese: Funktion  Struktur ► Das ist der wichtigste Schritt im Entwerfen ► Umsetzung: einer Funktionellen Beschreibung wird eine Netzliste (Struktur!) zugeordnet, im ersten Schritt mit generischen Schaltungselementen. ► Der zweite Schritt: Mapping. Für die generischen Elemente werden konkrete Zellen von der Zellen- bibliothek der spezifizierten Technologie gesucht und substituiert. ► In dieser Phase wird schon die Laufzeit der Signal- pfade überprüft, ob sie die Taktperiode überschreitet – Timing Analysis. ► Nachher wird die Funktionalität durch Simulation geprüft.

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET Timing Analysis – Laufzeit Analyse ► Der Syntheser erhält keine Stimuli, nur eine Netzliste ► Kritische Signalpfade werden gesucht ► Restzeiten – Slack-time – werden für den sicheren Betrieb ermittelt. QD Komb. Netzw. CLK D Q t clk t komb t dff t setup t slack

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET Die funktionelle Beschreibung und die gene- rische Synthese ist Technologie-unabhängig! FPGA ASIC HDL

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET Die Geschichte von Verilog ► Diese Sprache hat die Firma Gateway Design Automation 1984 entwickelt (Simulator Verilog-XL) ► Cadence Design Systems hat Gateway Design Automation aufgekauft, und Verilog 1990 veröffent- licht, um damit eine verbreitete Verwendung zu ermöglichen. Dadurch wurde Verilog de facto Standard. ► Die offizielle Standardisierung erfolgte 1995 unter der Betreuung durch die Organisation Open Verilog International (OVI – alias Accelera) – dann wurde Verilog de jure Standard ► 2001 wurde das Standard erweitert: Verilog-2001

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET Verilog – Erbschaften von C ► Lexikale Elemente ► Ausdrücke ► Operatoren ► (Zyklische Befehle) ► Bedingte Zuweisungen

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET Spezialoperatoren 1 ► Anhängeoperator {}:  Bits oder Bitserien können verkettet werden  Einzelteile müssen durch Komma separiert angegeben werden  Damit können z.B. die Bits eines Registers rotiert werden: reg [7:0] rx; CLK) begin if (rotleft) rx <= {rx[6:0], rx[7]}; end Die niedrigen 7 Bits werden oben (MSB) placiert, während das echte MSB zum Bit 0 (LSB)

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET ► Reduktionsoperatoren:  Diese machen die Beschreibung von Gattern mit vielen Eingängen einfacher  Wird die Einoperandversion der Logikoperatoren vor eine Bus-Variante placiert, so werden die Operationen an allen Bits durchgeführt: wire [3:0] in; wire q; assign q = &in; Spezialoperatoren 2 & in[0] in[1] in[2] in[3] q

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET Leitungen 1 ► Leitung: das einfachste Schaltkreiselement (wire) ► Sie braucht ständige Steuerung, denn sie hat keinen Speicher ► Dafür gibt es zwei Möglichkeiten:  Kontinuierliche Zuweisung (continuous assignment): Das ist ein Modell des (kombinatorischen) Schaltnetzes Wenn sich an der rechten Seite etwas ändert, werden die Zuweisungen sofort aufgefrischt  Anschluss an den Ausgang eines Registers: Die Register speichern den zugewiesenen Wert, so können sie die angeschlossene(n) Leitung(en) kontinu- ierlich antreiben

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET Leitungen 2 ► Wenn nicht anders deklariert, werden die An- schlüsse eines Moduls als Leitungen behandelt ► Weitere Leitungen können mittels des Schlüssel- worts wire deklariert werden, z.B. einfache Leitungen (AA, BB, Z) und ein 8-Bit-Bus (CC) ► Die kontinuierliche Zuweisung erfolgt mit assign: wire AA, BB, Z; wire [7:0] CC; assign Z = AA && BB;

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET Register ► Ein-Bit Speicher ► Zuweisungen können nur durch ein Ereignis statt- finden (z:B. steigende Flanke eines Taktsignals) ► Der zugewiesene Wert wird bis zur nächsten Zuweisung beibehalten ► Deklaration: mittels des Schlüsselwortes reg reg q; reg [3:0] cnt;

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET Ereignisgesteuerte Zuweisung 1 ► In einem always Block können Werte, gesteuert durch ein Ereignis, einem Register zugewiesen werden: ► wire clk; reg [7:0]cnt; clk) begin cnt <= cnt + 1; end Nach dem wird das Ereignis angegeben Eine steigende Flanke des Signals clk startet die Durch- führung der Befehle im Block Ein Befehlsblock befindet sich zwischen den Schlüsselwörtern begin und end

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET Ereignisgesteuerte Zuweisung 2 ► Das System prüft die Bedingungen ständig im Kopf der always Blöcke und bei Erfüllung führt das Befehlsblock im Körper aus ► In einem always können Werte nur Registern zugewiesen werden (in gewissen Fällen kann der Syntheser das Register zur Leitung umgestalten) ► Die always Blöcke innerhalb eines moduls laufen parallel (konkurrent) ► Es gibt always Blöcke auch ohne Bedingung, die kontinuierlich durchgeführt werden

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET Ein einfaches Beispiel: Zähler module zaehler(clk, reset, q); input clk, reset; output reg [7:0] q; clk) begin if (reset == 1) q = 0; else q <= q + 1; end endmodule Der Ausgang ist ein 8-Bit-Register Das Reset ist synchron, weil das Resetsignal nur bei der steigenden Flanke des Taktes geprüft wird Die bedingte Abzweigung ( if-else ) funktioniert genau so, wie in anderen Sprachen (z.B. C) Wichtig: die logische Gleichheitsprüfung ist nicht identisch mit der Zuweisung

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET Testen – Testbench ► Auch das Testen (Prüfung) erfolgt mit Sprachmitteln ► Ein portloser Modul wird erstellt und simuliert ► Das stellt die Umgebung des zu prüfenden Moduls dar ► Darin wird der zu prüfende Modul instanziert ► Für die Eingänge werden Register definiert, in diesen Registern wird die Testsequenz erstellt ► Eine Testsequenz mit einmaliger Ablauf kann in einem initial Block generiert werden ► Die Leitungen an den Ausgängen werden beobachtet

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET Generierung von aperiodischen Testsignalen ► Die Ausführung des initial Blocks beginnt am Anfang der Simulation ► Am Ende des Blocks wird die Simulation beendet ► Nur Registern dürfen Werte zugewiesen werden reg in; initial begin in = 0; #5 in = 1; #500 $finish; end Das bedeutet eine Verzögerung von fünf Zeiteinheiten der Simulation So können Änderungen in einer Testsequenz zeitlich bestimmt werden Diese Art Verzögerung ist nicht synthetisierbar Das Schlüsselwort $finish beendet die Simulation

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET Generierung von periodischen Testsignalen ► Periodische Testsignale können in bedingungslosen always Blöcken generiert werden, ein Anfangswert soll aber in einem initial Block zugewiesen werden ► z.B. ein Rechtecksignal von zehn Zeiteinheiten (Takt): initial clk = 0; always begin #5 clk = !clk; end Der Wert des Registers clk wird nach fünf Zeiteinheiten invertiert

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET Beispiel: Prüfung des Zählers module tb_zaehler; reg clk, reset; wire [7:0] q; zaehler z1(clk, reset, q); initial begin clk = 0; reset = 0; #2 reset = 1; #2 reset = 0; #2600 $finish; end always #5 clk = !clk; endmodule

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET Hierarchischer Aufbau aus Elementen 1 ► In Verilog werden Moduln definiert ► Diese sind Teilschaltkreise mit Ein- und Ausgängen ► z.B.: module AND(inA, inB, q); input inA, inB; output q; … endmodule A inA inB q

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET Hierarchischer Aufbau aus Elementen 2 ► Eine beliebige Anzahl von Moduln kann eingebaut werden– Instanzierung: module Komplex(in, out); input [3:0] in; output [1:0] out; AND a1(in[0], in[1], out[0]); AND a2(in[2], in[3], out[1]); endmodule 4-Bit Eingang 2-Bit Ausgang Name des zu instanzierenden Moduls Individueller Name der Instanz Portliste Die einzelnen Bits werden mittels des Index-Operators [ ] selektiert

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET Hierarchischer Aufbau aus Elementen 3 module Komplex module AND a1 a2 in [3:0]out [1:0] in[0] in[1] in[2] in[3] out[0] out[1] inA inB q q inA inB

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET Neue Möglichkeiten des Verilog-2001 ► Syntax-Strukturen von C++ wurden übernommen, z.B:  Zusammengefasste Port-Deklaration: output reg [2:0] out;  Flexible Port-Listen sind möglich: module mmm(input [7:0] in, output reg [2:0] out);

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET Verilog Synchron-Sequentieller Stil 1 ► Die Basis ist das Flipflop mit Takt- und Rücksetzsignal. ► Es ist nachdrücklich empfohlen, in die Ereignisliste diese, aber nur diese Signale aufzunehmen. ► Die always Anweisung soll so aussehen: CLK or posedge RES) if (RES) Q <= 0; else begin end

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET Verilog Synchron-Sequentieller Stil 2 ► Wenn die Änderung eines Signals eine Aktivität aus- lösen soll, soll das in einem if Befehl bewerkstelligt werden. ► Nur so kann ein einfacher Schaltkreis synthetisiert werden. CLK or posedge RES) if (RES) begin Q <= 0; ZZ <= 0; end else begin if( KNOPF) Q <= Q+1;... end ZZ <= KNOPF; !ZZ &&

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET Verilog Literatur ► Kollegienhefte vom Lehrstuhl:   ► Andere Quellen:    

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET Andere Trends ► SoC – System on Chip ► Hardware-Software Co-Design – HSCD ► System C

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET Andere Trends – SoC ► SoC = System on Chip  Ein vollständiges System, gebaut auf einem Chip digitaler Teil eingebettete Software analoge Schnittstellen (wenn notwendig)  Homogene Technologie – z.B. alle Hardwarekompo- nenten CMOS  Es wird auf hoher Abstraktionsebene entworfen Verilog/VHDL für Analogteile: die Erweiterungen Verilog-A, VHDL-A  Typisch ist die Verwendung von IP Blöcken  Gemeinsamer Hardware-Software Entwurf: z.B. SystemC Das wurde 2005 standardisiert

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET “Intellectual Property” A Protocol Processor for Wireless Communication Zum Beispiel:

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET Gemeinsamer Entwurf von Hardware und Software ► ESL: Electronic System Level design ► Das wichtigste Ziel des gemeinsamen HW-SW Entwurfs ist, dass  der Entwurf durch Beschreibung auf hoher Abstraktionsebene besser überschaubar wird,  Fehler leichter zu finden sind,  die HW-SW Partitionierung optimalisiert wird,  die Zeit zur Markteinführung kürzer wird, und  die Entwurfskosten reduziert werden. ► Dafür ist ein günstiges Mittel das SystemC ► Eine andere Version: Verwendung von ANSI C, z.B. Mentor Graphics CatapultC

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET Gemeinsamer Entwurf von Hardware und Software ► SystemC: HSCD (hardware-software co-design) ► IEEE Standard ab 2005: IEEE std ► Das Ziel ist: HW-SW parallel (gleichzeitig)  Entwurf  Simulation  Verifizierung ► Es ist nicht notwendig, mit dem Entwurf der eingebetteten Software die Fertigstellung der Hardware abzuwarten  time-to-market kann reduziert werden ► Der Entwurf kann auf hoher Abstraktionsebene durchgeführt werden

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET Das SystemC ► Das SystemC ist eine C++ Bibliothek und Methoden, die recht effizient verwendet werden können zum  Erstellen von Software-Algorithmen,  Modellieren von Hardware-Architekturen, sowie  Realisieren der Schnittstellen von SoC und System-Level Modellen. ► Durch Verwendung von Entwurfsumgebung für SystemC und traditionelles C++ können Modelle auf System-Ebene beschrieben werden, diese können leicht simuliert und optimalisiert werden. ► Das System-Modell ist ein C++ Programm, das beim Laufen dasselbe produziert als das System selber

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET Die Komponenten von SystemC ► Modul: ist ein container, das andere Moduln und process-e enthalten kann ► Process: beschreibt eine gegebene Funktionalität ► Signal: sowohl das 2-Werte (0,1) als auch das 4-Werte (0,1,X,Z) Logik wird unterstützt ► Port: Signalanschluss ► Datentypen – vielerlei Typen können gebraucht werden Vorsicht – Synthetisierbarkeit!! ► Taktsignal: Spezialsignal zum Modellieren der Zeit ► Simulationskernel – Ermöglicht eine schnelle Simulation (compiled Kode) ► Signal-Monitoring:  VCD (Value Change Dump),  WIF (Waveform Intermediate Format) und  ISDB (Integrated Signal Data Base) Dateiformate werden unterstützt

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET Ein Beispiel für SystemC ► Steuerung von Verkehrsampeln (BAH Knoten)  9 KFZ Ampeln,  7 Fussgänger Ampeln  Zyklus: 90 sec  3 Moduln Zähler (Zeitgeber) KFZ Ampelsteuerung Fussgänger Ampelst. Balotai Péter: Diploma dolgozat, 2007

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET Steuerung von Verkehrsampeln Balotai Péter: Diploma dolgozat, 2007

Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET Steuerung von Verkehrsampeln // count.h #include "systemc.h" SC_MODULE(count) { //input ports sc_in clk; sc_in en; //output ports sc_out > ido; int countval; void countproc(); SC_CTOR(count) { SC_METHOD(countproc); countval = 89; sensitive_pos << clk; sensitive << en; } }; //count.cpp #include "count.h" void count::countproc() { if (en == 1) { if (countval < 89) { countval++; } else { countval = 0; } } else { countval = 0x7f; } ido = countval; }