Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

MIKROELEKTRONIK, VIEEAB00

Ähnliche Präsentationen


Präsentation zum Thema: "MIKROELEKTRONIK, VIEEAB00"—  Präsentation transkript:

1 MIKROELEKTRONIK, VIEEAB00
HDL, Synthese, Verilog, SystemC

2 Hardware-Beschreibung Sprachen (HDL)
Überschau Synthese Verilog SystemC PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET 2016

3 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) PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET 2016

4 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 unterstützen den modularen Entwurf Sie realisieren die unterschiedlichen digitalen Modelle (kombinatorische, synchrone und asynchrone sequentielle Netzwerke) PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET 2016

5 Vorteile der HDLs Unterstützung der strukturierten Entwurfsmethoden
Projekte können flexibel partitioniert werden 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 PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET 2016

6 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, Unterteilung in hierarchische Blöcke Verfeinerung bis RTL-Ebene (Register-Transfer Level, Hardwarenahe “quasi-strukturelle” Beschreibung) Ständige Prüfung durch Simulation PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET 2016

7 RTL – Register-Transfer Level
Das ideale Synthese: Spezifikation Chip 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). PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET 2016

8 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 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. PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET 2016

9 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. CLK D Q tclk tkomb tdff tsetup tslack Q D Komb. Netzw. CLK PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET 2016

10 Die funktionelle Beschreibung und die gene-rische Synthese ist Technologie-unabhängig!
HDL FPGA ASIC PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET 2016

11 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ö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 Von ca weiterentwickelt: System Verilog PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET 2016

12 Verilog – Erbschaften von C
Lexikale Elemente Ausdrücke Operatoren (Zyklische Befehle) Bedingte Zuweisungen PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET 2016

13 Spezialoperatoren 1 Anhängeoperator (Concatenation) { }:
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) PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET 2016

14 & Spezialoperatoren 2 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; & in[0] in[1] in[2] in[3] q PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET 2016

15 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 PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET 2016

16 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; PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET 2016

17 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; PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET 2016

18 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 PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET 2016

19 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 PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET 2016

20 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) PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET 2016

21 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 PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET 2016

22 Generierung von aperiodischen Testsignalen
Die Ausführung des initial Blocks beginnt am Anfang der Simulation Die Simulation wird mit $finish 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 PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET 2016

23 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 PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET 2016

24 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 PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET 2016

25 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 q inB PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET 2016

26 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 PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET 2016

27 Hierarchischer Aufbau aus Elementen 3
module Komplex module AND a1 in[0] inA out[0] q in[1] inB in [3:0] out [1:0] module AND a2 inA in[2] q out[1] in[3] inB PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET 2016

28 Neue Möglichkeiten des Verilog-2001
Syntax-Strukturen von C++ wurden übernommen, z.B: Zusammengefasste Port-Deklaration: output reg [2:0] aus; Flexible Port-Listen sind möglich: module mmm(input [7:0] ein, output reg [2:0] aus); PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET 2016

29 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 ... < alle Aktivitäten, Zuweisung(en) an Q > end PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET 2016

30 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 && PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET 2016

31 Verilog Literatur Kollegienhefte vom Lehrstuhl: Andere Quellen:
Andere Quellen: PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET 2016

32 Andere Trends SoC – System on Chip Hardware-Software Co-Design – HSCD
System C PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET 2016

33 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 PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET 2016

34 “Intellectual Property”
Zum Beispiel: A Protocol Processor for Wireless Communication PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET 2016

35 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 PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET 2016

36 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) Entwerfen Simulieren Verifizieren 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 PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET 2016

37 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 PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET 2016

38 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 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 PG. IC tervezés 3 © Poppe András – Nagy Gergely, PG. BME-EET 2016


Herunterladen ppt "MIKROELEKTRONIK, VIEEAB00"

Ähnliche Präsentationen


Google-Anzeigen