Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für...
-
Upload
manfred-krause -
Category
Documents
-
view
219 -
download
2
Transcript of Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für...
http://www.eet.bme.hu
Technische und Wirtschaftswissenschaftliche Universität Budapest
Lehrstuhl für Elektronische Bauelemente
MIKROELEKTRONIK, VIEEAB00
Entwurf auf FPGA, Verilog, SystemChttp://www.eet.bme.hu/~poppe/miel/hu/18-ICtervezes3.ppt
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 2
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
Entwurf auf FPGA
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 3
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
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
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 4
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
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,...)
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 5
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
Beispiel von Altera: Stratix
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 6
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
Altera Stratix
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 7
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
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 .. 3.2 Gb/s ► PCI Express Endpoint Blöcke ► 10/100/1000 Mb/s Ethernet► On-chip Temperaturmonitoring► On-chip Versorgungsmonitoring
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 8
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
Prozess des Entwurfs von FPGA-s:
SystembeschreibungSpezifikation in SystemC.
HW-SW co-designSystem Simulation Entwurf auf System-
Ebene
High-Level Syntheis
Timing Parameter
Abstraktionsebene:Repräsentation:Simulator:
VerhaltensbeschreibungSpezifikation in VHDL oder
in VerilogFunktionale Verifikation
Strukturelle Beschreibung
in VHDL oder VerilogLogik-Simulation
Mapping und Layouterstellung
Entwurf auf Logik-Ebene
Physikalischer Entwurf (Layout)
Erstellung von Timing DataEntwurf auf Transistor-
Ebene
Das Entwerfen konzentriert sich
hier
Das bleibt aus, es wird ein Programmcode generiert, das die
Verbindungen repräsentiert
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 9
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
Programmierung – Entwurf von FPGA-s
Programmierungsprache
Compiler
Object Dateien
Linker
Ausführbare Datei
HDL
Synthese
„Placierung und Verdrahtung"
Netzliste
Bit-Datei
Software FPGA hardware
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 10
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
VHDL Muster:
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 11
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
Verilog Muster
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 12
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
Synthese
Netlist
RTL
HDL
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 13
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
Hardware-Beschreibung Sprachen (HDL)
► Überschau► Verilog► Kurz über SystemC
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 14
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
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
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 15
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
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
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 16
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
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
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 17
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
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
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 18
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
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 AinA
inB
q
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 19
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
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
PortlisteDie einzelnen Bits werden mittels des Index-Operators ([ ]) selektiert
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 20
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
Hierarchischer Aufbau aus Elementen 3module Komplex
module AND
module AND
a1
a2
in [3:0] out [1:0]
in[0]
in[1]
in[2]
in[3]
out[0]
out[1]
inA
inBq
qinA
inB
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 21
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
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
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 22
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
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;
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 23
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
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;
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 24
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
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;
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 25
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
Ereignisgesteuerte Zuweisung 1► In einem always Block können Werte, gesteuert
durch ein Ereignis, einem Register zugewiesen werden:
►wire clk;reg counter;
always @(posedge clk)begin
counter = counter + 1;end
Nach dem Zeichen @ 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
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 26
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
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
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 27
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
Ein komplexeres Beispiel: Zählermodule zaehler(clk, reset, q);input clk, reset;output reg [7:0] q;
always @(posedge clk)begin
if (reset == 1) q = 0;else q = q + 1;
endendmodule
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
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 28
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
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
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 29
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
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;initialbeginin = 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
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 30
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
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;alwaysbegin
#5 clk = !clk;end
Der Wert des Registers clk wird nach fünf Zeiteinheiten invertiert
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 31
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
Beispiel: Prüfung des Zählersmodule 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;endalways #5 clk = !clk;
endmodule
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 32
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
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.
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 33
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
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;alwaysbegin#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)
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 34
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
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
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 35
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
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
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 36
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
Die neuen Möglichkeiten des Verilog-2001 2► 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
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 37
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
Die neuen Möglichkeiten des Verilog-2001 3► 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
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 38
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
Die neuen Möglichkeiten des Verilog-2001 4► 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
endgenerateendmodule
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
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 39
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
Die neuen Möglichkeiten des Verilog-2001 5► 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))
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 40
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
Verilog Literatur
► Kollegienhefte vom Lehrstuhl: www.eet.bme.hu/~nagyg/verilog.pdf www.eet.bme.hu/~gaertner/Segedanyagok/LXveriFS.doc
► Andere Quellen: www.doulos.com/knowhow/verilog_designers_guide/ www.verilog.net/docs.html www.asic-world.com/verilog/index.htm www.ee.lsu.edu/v/refcard.pdf
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 41
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
Andere Trends
► SOC► SystemC
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 42
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
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
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 43
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
“Intellectual Property”
A Protocol Processor for Wireless
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 44
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
Gemeinsamer Entwurf von Hardware und Software
► SystemC – ein typisches Mittel für HSCD (hardware-software co-design)
► IEEE Standard ab 2005: IEEE std-1666-2005► 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
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 45
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
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
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 46
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
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
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 47
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
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
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 48
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
Ein Beispiel für SystemC
► Steuerung von Verkehrsampeln (BAH Knoten) 9 KFZ, 7 FussgängerAmpeln
Zyklus: 90 sec 3 Moduln
• Zähler (Zeitgeber)• KFZ Ampelsteuerung• Fussgänger Ampelst.
Balotai Péter: Diploma dolgozat, 2007
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 49
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
Steuerung von Verkehrsampeln
Balotai Péter: Diploma dolgozat, 2007
2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008 50
Budapesti Műszaki és Gazdaságtudomanyi Egyetem
Elektronikus Eszközök Tanszéke
Steuerung von Verkehrsampeln// count.h#include "systemc.h"SC_MODULE(count){ //input ports sc_in<bool> clk; sc_in<bool> en; //output ports sc_out<sc_uint<7> > 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;}