Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00."—  Präsentation transkript:

1 Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00 Entwurf auf FPGA, Verilog, SystemC

2 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Entwurf auf FPGA

3 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Kosten von Standardzellen-ICs ► Die Kosten der vollen Si Technologie sind zu bezahlen  Der volle Satz der Masken muss erstellt werden (NRE)  Die vollen Kosten der Bearbeitung des Si treten auf; proportional der Si Fläche ► Verpackungskosten  proportional der Anzahl der Anschlüsse des IC  hängen von der Schwierigkeiten der Verpackung ab ► Testkosten  Scheibentest – als Teil der Kosten für Scheibenfertigung im Rahmen von small volume production liefern MPW Broker getestete Scheiben  Endtest-Kosten – diese können durch DFT (Design for Testability, siehe später) reduziert werden

4 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Oder: Ausführung auf FPGA ► Ausgang: die Idee von gate array bleibt, aber die Verbindungen werden nicht durch Photomasken programmiert – nicht mit Metallisierungsgebilde (starke Reduzierung von NRE Kosten)  das Grundelement ist: logic array block ► Statt dessen: die Architektur des Verbindungsnetzes wird vorweg aufgebaut, die Verbindungen werden programmiert  Durchschmelzen von Sicherungen – oder günstiger ist die antifuse Technik (niederohmiger Kontakt durch Durchbrennen einer Isolationsschicht)  Speicherung der Verbindungen in SRAM  Vorweg gestaltete I/O Schaltkreise ► Die modernen FPGAs enthalten auch sehr komplexe Blöcke (RAM, DSP Block,...)

5 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Beispiel von Altera: Stratix

6 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Altera Stratix

7 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET z.B.: Xilinx Virtex-5 ► 65-nm CMOS Technologie ► 12 Metallschichten ► 1.0V core Voltage ► 36-Kbit Block RAM/FIFO ► I/O Betrieb: 1.2 bis 3.3V ► RocketIO GTP transceivers 100 Mb/s Gb/s ► PCI Express Endpoint Blöcke ► 10/100/1000 Mb/s Ethernet ► On-chip Temperaturmonitoring ► On-chip Versorgungsmonitoring

8 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Prozess des Entwurfs von FPGA-s: Systembeschreibung Spezifikation in SystemC. HW-SW co-design System Simulation Entwurf auf System- Ebene High-Level Syntheis Timing Parameter Abstraktionsebene:Repräsentation: Simulator: Verhaltensbeschreibung Spezifikation in VHDL oder in Verilog Funktionale Verifikation Strukturelle Beschreibung in VHDL oder Verilog Logik-Simulation Mapping und Layouterstellung Entwurf auf Logik- Ebene Physikalischer Entwurf (Layout) Erstellung von Timing Data Entwurf auf Transistor- Ebene Das Entwerfen konzentriert sich hier Das bleibt aus, es wird ein Programmcode generiert, das die Verbindungen repräsentiert

9 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Programmierung – Entwurf von FPGA-s Programmierungsprache Compiler Object Dateien Linker Ausführbare Datei HDL Synthese „Placierung und Verdrahtung" Netzliste Bit-Datei Software FPGA hardware

10 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET VHDL Muster:

11 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Verilog Muster

12 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Synthese Netlist RTL HDL

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

14 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, 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 gebraucht 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 sind

15 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Die Geschichte von Verilog ► Diese Sprache hat die Firma Gateway Design Automation 1984 entwickelt (Simulator Verilog-XL) ► Diese Firma hat Cadence Design Systems aufge- kauft, und 1990 veröffentlicht, 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

16 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Eigenschaften der HDLs ► Sie sind spezielle Programmierungssprachen ► Sie modellieren, simulieren (und darstellen) die digitale Hardware ► Sie können das konkurrente Funktionieren beschreiben (Parallelität) ► Sie wiedergeben den zeitlichen Verlauf der Signale, behandeln die hardwarenspezifische Signal-Pegel ► Sie realisieren einfach die unterschiedlichen digita- len Modelle (kombinatorische, synchrone und asynchrone sequentielle Netzwerke) ► Unterstützen den modularen Entwurf

17 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, 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 Produktivität beim Entwerfen ► Schneller Prototypenentwurf durch Synthese

18 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, 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

19 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, 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

20 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, 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

21 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Leitungen im Verilog ► 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 An der rechten Seite der Zuweisung werden die Werte kontinu- ierlich beobachtet, und wenn sich etwas ändert, werden die Zuweisungen sofort aufgefrischt  Anschluss an den Ausgang eines Registers: Die Register speichern den zugewiesenen Wert (siehe später), deshalb können sie die angeschlossene(n) Leitung(en) kontinuierlich antreiben

22 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Kontinuierliche Zuweisung ► Wird mittels des Schlüsselwortes assign gemacht ► Realisierung des AND Gatters von Slide 18: module (inA, inB, q); input inA, inB; output q; assign q = inA & inB; endmodule;

23 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Deklaration von Leitungen ► 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. eine einfache Leitung und ein 8-Bit-Bus: wire leitung; wire [7:0] bus;

24 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, 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] counter;

25 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Ereignisgesteuerte Zuweisung 1 ► In einem always Block können Werte, gesteuert durch ein Ereignis, einem Register zugewiesen werden: ► wire clk; reg counter; clk) begin counter = counter + 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

26 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Ereignisgesteuerte Zuweisung 2 ► Das System kontinuierlich prüft die Bedingungen 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 ► Es gibt always Blöcke auch ohne Bedingung,die kontinuierlich durchgeführt werden

27 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Ein komplexeres 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-Regiszter Das Reset ist synchron, weil das Resetsignal nur bei der steigen-de 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

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

29 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, 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

30 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, 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

31 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Beispiel: Prüfung des Zählers module teszt; 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

32 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Spezialoperatoren 1 ► Bit-shift Operatoren ( >):  Genauso, wie in der C Sprache  Sie können für Demultiplexer verwendet werden: module demux(in, addr, out); input in; input [2:0] addr; output [7:0] out; assign out = in << addr; endmodule Der Eingangssignal in wird entspre- chend der Nummer am Eingang addr verschoben werden.

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

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

35 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Die neuen Möglichkeiten des Verilog-2001 ► Zusammengefasste Port-Deklaration:  In der früheren Versionen musste es separat angegeben werden, dass ein Ausgang Register ist  Beim Verilog-2001: module m(in, out); input [7:0] in; output reg [2:0] out; … endmodule

36 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Die neuen Möglichkeiten des Verilog ► Port-Deklaration in der Portliste:  Beim Verilog-2001 können die Ports in der Portliste deklariert werden: module m(input [7:0] in, output reg [2:0] out); … endmodule

37 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Die neuen Möglichkeiten des Verilog ► Skalierbare Moduln – Hardwaregenerierung 1:  Problem: Zahlreiche Instanzen desselben Moduls Ein Modul besteht aus vielen identischen Elementen  In solchen Fällen müsste viel Text eingetippt werden (zeitraubend, Fehltipp-Gefahr)  Das VHDL hatte es schon seit langem: parametrisierte Hardwaregenerierung – das hat auch Verilog übernommen  Mittels des Schlüsselwortes generate können parametrisierte Hardware-Elemente zyklisch eingebaut werden

38 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Die neuen Möglichkeiten des Verilog ► Skalierbare Moduln – Hardwaregenerierung 2: module myMod(input a, input b, output q);... module generator(input [7:0] a, input [7:0] b, output [7:0] q); genvar i; generate for (i = 0; i < 8; i=i+1) begin : bigMod myMod m(a[i], b[i], q[i]); end endgenerate endmodule Zählvariable 8 Stücke vom Modul myMod werden instanziert Der Name des komplexen Moduls wird bigMod sein Die einzelnen Instanzen können unter dem Namen m referenziert werden

39 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Die neuen Möglichkeiten des Verilog ► Skalierbare Moduln – Hardwaregenerierung 3:  Bezugname auf die instanzierten Elementen: bigMod[3].m Ordinalzahl der Instanz (0..7) Modulnamen innerhalb der Instanzen (In diesem Fall enthalten die Instanzen nur je einen Modul (je ein Exemplar von myMod ))

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

41 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Andere Trends ► SOC ► SystemC

42 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, 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

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

44 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Gemeinsamer Entwurf von Hardware und Software ► SystemC – ein typisches Mittel für 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

45 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Gemeinsamer Entwurf von Hardware und Software ► ESL: Electronic System Level design  HSCD ► 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 Markkteinfü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

46 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Das SystemC ► Das SystemC ist eine C++ Bibliothek und Methode, die recht effizient verwendet werden kann zum  Erstellen Software-Algorithmen,  Modellieren 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

47 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, 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 – Syntethisierbarkeit!! ► 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

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

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

50 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, 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; }


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

Ähnliche Präsentationen


Google-Anzeigen