Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für...

50
http://www.eet.bme.hu Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00 Entwurf auf FPGA, Verilog, SystemC http://www.eet.bme.hu/~poppe/miel/hu/18- ICtervezes3.ppt

Transcript of Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für...

Page 1: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 2: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 3: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 4: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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,...)

Page 5: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 6: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 7: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 8: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 9: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 10: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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:

Page 11: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 12: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 13: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 14: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 15: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 16: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 17: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 18: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 19: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 20: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 21: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 22: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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;

Page 23: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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;

Page 24: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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;

Page 25: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 26: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 27: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 28: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 29: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 30: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 31: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 32: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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.

Page 33: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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)

Page 34: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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; &in[0]

in[1]in[2]in[3]

q

Page 35: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 36: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 37: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 38: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 39: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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))

Page 40: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 41: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 42: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 43: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 44: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 45: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 46: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 47: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 48: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 49: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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

Page 50: Http:// Technische und Wirtschaftswissenschaftliche Universität Budapest Lehrstuhl für Elektronische Bauelemente MIKROELEKTRONIK, VIEEAB00.

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;}