Entwurfsverfahren digitaler Schaltungen

Ähnliche Dokumente
VHDL Simulation. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011

Einführung in die technische Informatik

Gliederung dieser Einführung in VHDL

Eingebettete Systeme

I EINLEITUNG SYNTAX SPEZIELLE PROBLEME BEISPIEL AUSBLICK

Entwurf und Simulation einfacher Logikelemente

5 VHDL Einführung (I)

12 VHDL Einführung (III)

Einführung in VHDL (2)

Reconfigurable Computing. VHDL Crash Course. Chapter 2

Versuchsreihe 7. Registerfile. Registerfile + Programmzähler. HaPra Versuchsreihe 7 - Registerfile + Programmzähler. 32 Register à 32 Bit

Praktikum Systementwurf mit VHDL HDL Design Lab

1.1 VHDL-Beschreibung

VHDL Einleitung. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2010

Verilog/VHDL. Mehdi Khayati Sarkandi Uni Siegen

Entwurf und Verifikation digitaler Systeme mit VHDL

VHDL Verhaltensmodellierung

EHP Einführung Projekt A

Übungsblatt 8 Lösungen:

Outline Überblick VHDL/Verilog Designflow VHDL-Module Architektur-Beschreibungen Signale/Variablen. VHDL Einführung 1

Endliche Automaten 1 WS 00/01. Steuerautomaten

Hardware Praktikum 2008

SoC Design. Prof. Dr. Christophe Bobda Institut für Informatik Lehrstuhl für Technische Informatik

VHDL - Synthese. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Sequentielle Schaltungen 37 SS 96. Steuerpfad

ERA-Zentralübung 11. Maximilian Bandle LRR TU München Maximilian Bandle LRR TU München ERA-Zentralübung 11

17 Zähler. Hochschule für Angewandte Wissenschaften Hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK DIGITALTECHNIK 17-1

Klausur ( ) : Technische Grundlagen der Informatik 1 Digitale Systeme WS 2010/2011

Entwurfsverfahren digitaler Schaltungen

Vorlesung Hardware-Beschreibungssprachen

GTI Bonus VHDL - EXTRA

5.Vorlesung Rechnerorganisation

Übungen zu Architektur Eingebetteter Systeme. Teil 1: Grundlagen. Blatt 5 1.1: VHDL 28./

Einführung in VHDL. Dipl.-Ing. Franz Wolf

VHDL Synthese. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2009/2010

1 Entwurf und Verhalten einfacher, synchroner Automaten

Lösungsvorschlag 1. Übung Technische Grundlagen der Informatik II Sommersemester 2009

Simulation von in VHDL beschriebenen Systemen

VHDL Grundelemente. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Computergestützter IC- Entwurf

VHDL-Einführung. Universität Hamburg MIN Department Informatik Eingebettete Systeme: VHDL-Einführung

Verilog Hardware Description Language (HDL)

Outline Simulation Design-Richtlinien. VHDL Einführung 2. Marc Reichenbach. Informatik 3 / Rechnerarchitektur Universität Erlangen Nürnberg 05/14

Klausur zur Vorlesung

Kapitel 10, VHDL, Teil 2. Prof. Dr.-Ing. Jürgen Teich Lehrstuhl für Hardware-Software-Co-Design. Grundlagen der Technischen Informatik

15 Einführung in den Entwurf von Zustandsautomaten

D.5 Versuchsreihe 5: Arithmetisch-Logische Einheit

Paul Molitor und Jörg Ritter VHDL. Eine Einführung. ein Imprint von Pearson Education

Laborübung 3. Latches, Flipflops, Counter

Hardware Praktikum 2008

Entwurf digitaler Schaltungen Groÿe Übung 3 Simulation mit ghdl

5.2 Endliche Automaten

Einstellige binäre Addierschaltung (Addierer)

Entwurf von digitalen Schaltungen und Systemen mit HDLsundFPGAs

Test & Diagnose digitaler! Systeme,! Prüffreundlicher Entwurf.!

FPGA-Entwurf mit VHDL. Serie 3

VHDL Verhaltensmodellierung

Laborübung 2. Teil 1: Latches, Flipflops, Counter. Abbildung 1: Schaltkreis eines Gated D-Latch

Field Programmable Gate Array (FPGA) Complex Programmable Logic Devices (CPLD)

Computergestützter IC- Entwurf

Wintersemester 2001/2002. Hardwarepraktikum. Versuch 4: Sequentielle Systeme 1. - Toralf Zemlin - Swen Steinmann - Sebastian Neubert

Übungsblatt 6. Implementierung einer Befehlspipeline

Übung 3: VHDL Darstellungen (Blockdiagramme)

Laborübung 4. Zustandsautomaten (Finite State Machines)

Hardware Praktikum 2008

18 Schieberegister. Serieller Serieller Eingang 5 Stufen Ausgang. 1. Takt. 2. Takt

FPGA Systementwurf. Rosbeh Etemadi. Paderborn University. 29. Mai 2007

Übung 5: VHDL Zähler

Outline Logik Speicher Synthese Signale/Variablen Packages Generische Designs. Basics. Marc Reichenbach

Carry Lookahead Adder

Einführung in VHDL. 1 ARCHITECTURE Tauschen OF B e i s p i e l IS. 2 SIGNAL a, b : STD_LOGIC; 4 BEGIN. 5 PROCESS( a, b ) 6 BEGIN.

Outline Schieberegister Multiplexer Zähler Addierer. Rechenschaltungen. Marc Reichenbach und Michael Schmidt

4 Entwurf eines Prozessorelementes

Aufgabe 1: Kombinatorische Schaltungen

Simulation digitaler Schaltungen auf GPUs

Speichern von Zuständen

Entwurf digitaler Systeme mit VHDL-1076

Halbleiterdaten. Eigenschaften von Si und GaAs bei T = 300K, sofern nicht anders angegeben. Eigenschaft Symbol Einheit Silizium GaAs

Array-Zuweisungen. Array-Zuweisungen können über die Position, den Namen oder gemischt erfolgen.

VHDL Simulation. in ORCAD

Rechnergestützter VLSI-Entwurf

IHS2 Seminar. Simulation. Steffen Ostendorff

Mögliche Praktikumsaufgaben

Name: DT2 Klausur

D.4 Versuchsreihe 4: Integrierte Logikbausteine

Integrierte Schaltungen

Minimierung nach Quine Mc Cluskey Ermitteln der Primtermtabelle

Architecture Body Funktionale Beschreibung einer "Design Entity" - * beschreibt die Funktion auf Verhaltens-, Struktur- oder Datenfluss-Ebene

16 Latches und Flipflops (Bistabile Kippstufen)

Tutorial Vivado/Verilog Teil 5 Zyklisches Schieberegister

1.4 Spezifikation. Inhalte einer. Spezifikation

Hardwarepraktikum WS 2001/02

Digitales Hardwaredesign mit VHDL und FPGAs

FAKULTÄT FÜR INFORMATIK

D.6 Versuchsreihe 6: Registersatz und Programmzähler

Entwurfsverfahren digitaler Schaltungen. Name: Vorname: Matrikelnr.:

Test und Diagnose digitaler Systeme, prüffreundlicher Entwurf

Transkript:

Fakultät für Elektrotechnik und Informationstechnik Lehrstuhl für Entwurfsautomatisierung Univ.-Prof. Dr.-Ing. Ulf Schlichtmann Entwurfsverfahren digitaler Schaltungen II. Logiksimulation

II. Logiksimulation A) Zweck der Simulation 1. Verifikation (Validierung) des Entwurfs (Logikverifikation, Zeitverhalten) 2. Fehleranalyse (Fehlersimulation, Fehlerüberdeckung) 3. Software-Entwicklung für noch nicht gefertigte Hardware (Co-Simulation) B) Simulationsebenen Abstraktionsgrad System Algorithmus Register-Transfer Switch-Level Logik Process Device Circuit Komplexität 1 10 10 2 10 3 10 4 10 5 10 6 10 7 10 8 10 9 10 10 # Transistoren 2

C) Simulationssystem (auf Logikebene) Schaltungsmodelle - logische Funktionen - zeitliches Verhalten Signalwertverläufe Netzliste Simulator Stimuli übliche Signalmodelle: - Boolesche Logik { 0, 1 } - Dreiwertige Logik { 0, 1, X } - IEEE Standard Logik { U, X, 0, 1, Z, W, L, H, - } 3

Simulation der logischen Funktion ( Zero Delay ) Beispielschaltung: x z 1 z2 z3 z 5 z 4 y x 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z 1 z 2 z 3,z 4 z 5 y Boolesche Funktion: y = x x = x x = 0 4

Schaltungsbeschreibung (Schaltungsmodellierung) Aufbau der Schaltung mit Basiselementen des Simulationssystems Modellierung von Funktion und Zeitverhalten: Δ: Grundzeiteinheit x τ y τ: (Signal )Laufzeit τ d = n Δ: Gatterlaufzeit (gate delay) y t = x t τ τ w = m Δ: Leitungslaufzeit (wire delay) z.b.: a b z τ y z t = a t b t ; y t = z t τ = a t τ b t τ 5

Simulation mit Zeitverhalten Beispiel: x z z 1 2 3 z Race z 4 z 5 z 6 y x 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z 1 z 2 z 3,z 4 z 5 z 6 y Laufzeitabhängige Effekte: Hazard a) Race: Wettlauf von Signalwertänderungen auf Leitungen vor einem gemeinsamen Knoten (Gatter) b) Hazard: (Spike, Glitch) Signalwertverlauf, welcher der reinen Logikfunktion der Schaltung widerspricht und nur durch die Verzögerungszeiten entsteht 6

Zeitauswertung (Zeitverifikation, Raceanalyse) Die Logik wird nicht berücksichtigt x y fan-in ohne Spezifikation der Gatterfunktion Nimmt man eine Flanke an x bei t = 0 an, so ergibt sich folgender Zeitfahrplan für den Durchlauf dieser Flanke zum Schaltungsausgang. 0 2 4 6 8 6.. 8 8.. 10 x 6 y Am Ausgang ist jetzt die maximale Einschwingunsicherheit abzulesen (wichtig für die Auslegung der Taktzeit synchroner Schaltungen). 7

Simulation mit Flankenunsicherheit Da eine Signalwertänderung nicht mit unendlich steilen Flanken abläuft, entsteht an den Übergängen ein Bereich, in dem der Signalwert undefiniert ist. Das führt in der Simulation zu einem neuen Signalwert X. Beispiel: x z z 1 2 3 z z 4 z 5 y Der Flankenunsicherheitsbereich soll eine Grundzeiteinheit dauern: x 0 0 0 X 1 1 1 1 1 1 1 1 X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z 1 1 1 1 X 0 0 0 X 1 1 1 z 2 0 0 0 X 1 1 1 X 0 0 0 z 3,z 4 1 1 1 X 0 0 0 X 1 1 1 z 5 0 0 0 X 1 1 1 X 0 0 0 y 0 0 0 0 0 0 0 0 X 1 X 0 0 0 Hazard 8

Wertetabelle mit einem neuen Signalwert X : AND 0 1 X OR 0 1 X NOT 0 1 X 0 0 0 0 0 0 1 X 1 0 X 1 0 1 X 1 1 1 1 X 0 X X X X 1 X 9

Simulation mit Laufzeitunsicherheit Von einem Gatter sei die minimale und die maximale Verzögerungszeit bekannt, dazwischen ist der Ausgangswert undefiniert. x τ d y x (ideal) 0 0 1 1 1 1 1 y 1 1 1 X X 0 0 z.b. τ d min = Δ τ d max = 3Δ 10

Schaltungsbeispiel: x τ d τ d min = z 1 z 2 z z 3 5 3Δ τ d τ d τ d τ d z 4 z 6 τ d y τ d max = 4 Δ x 0 X 1 1 1 1 1 1 X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 z 1 1 1 1 1 X X 0 0 0 0 0 X X 1 1 1 z 2 0 0 0 X X X 1 1 1 1 X X X 0 0 0 z 3,z 4 1 1 1 X X X X 0 0 0 X X X X 1 1 1 z 5 0 0 0 X X 1 1 X X 0 0 0 z 6 0 0 X 0 0 X X 0 0 0 y 0 0 X X 0 0 X X 0 0 Hazard möglich 11

Wegen der laufenden Verbreiterung der Unsicherheitsbereiche erhält man mit diesem Verfahren ein Ergebnis im Sinne einer worst-case-analyse. übliche Modellierung des Zeitverhaltens: Gatter- und Leitungslaufzeiten: Pin-to-pin Verzögerungen τ d τ w2 τ w1 12

Simulationsprogramm a) Modellierung der Schaltungselemente durch Basiselemente des Simulationssystems (Primitives) b) Schaltungsnachbildung (Compilation oder Listenaufbau) c) Simulationsdurchführung Compilergesteuerte Simulation Die zu untersuchende Schaltung wird in ein ausführbares Programm übersetzt. Für jeden Taktzyklus wird die logische Funktion der gesamten Schaltung ausgewertet, wobei von den Eingangssignalen und den internen Schaltungszuständen (Register) ausgegangen wird. Sehr schnell, aber normalerweise keine Zeitauswertung (Simulation mit Null-Verzögerung). 13

Ereignisgesteuerte Simulation Bei der ereignisgesteuerten Simulation werden nur Änderungen der Signalzustände der Schaltung betrachtet. In jedem Simulationsschritt werden Schaltungskomponenten nur dann neu ausgewertet, wenn an ihren Eingängen ein Signalwertwechsel auftritt. Signalwertwechsel werden durch Ereignisse dargestellt. Signalwertwechsel: val( z, tv ) val( z, tv 1) Ereignis: Die Auswertung einer Komponente zur Simulationszeit t gen verursacht einen Signalwertwechsel an Signal z mit dem neuen Wert val (z, t exe ) für den Simulationszeitpunkt t exe. E = ( z, val( z, texe), tgen, texe) z : val(z, t t t t gen exe exe : : t exe gen ): = τ : Signalname Wert des Signals z zum Zeitpunkt t exe Generierungszeitpunkt des Ereignisses Ausführungszeitpunkt des Ereignisses modellierte Verzögerungszeit 14

Simulationszyklus: Ereignisausführung (Signalwerte zuweisen) Bestimmung betroffener Komponenten Auswerten dieser Komponenten Ereignisgenerierung unverzögerte Ereignisse Weiterschalten der Simulationszeit zum nächsten Zeitstempel (verzögerte Ereignisse, Ereignisliste) 15

Beispielablauf einer Simulation: Multiplexer Schaltung: Nand_a Verzögerungszeit: τ = 2 A Sel τ Inv Sel n τ S 1 Nand_c τ Q B S2 τ Nand_b 16

A Sel τ Inv Sel n Nand τ _ a S 1 Nand τ _ c Verzögerungszeit: τ = 2 Q Simulationsablauf: B S 2 τ Nand _ b t A B Sel Sel n S 1 S 2 Q ausgewertete Elemente 0 0 0 1 0 1 1 0 Initialzustand (Stimuli) neue Ereignisse (signal, val, t gen, t exe ) (A, 1, 0, 20); (B, 1, 0, 10); (Sel, 0, 0, 30) 10 1 Nand_b (S 2, 0, 10, 12) 12 0 Nand_c (Q, 1, 12, 14) 14 1 - - 20 1 Nand_a - 30 0 Inv, Nand_b (Sel n, 1, 30, 32); (S 2, 1, 30, 32) 32 1 1 Nand_a, Nand_c (S 1, 0, 32, 34); (Q, 0, 32, 34) 34 0 0 Nand_c (Q, 1, 34, 36) 36 1 - - 17

Signalverläufe: 18

Modellierung und Simulation mit VHDL VHSIC Hardware Description Language (VHSIC = Very High Speed Integrated Circuit) weit verbreitete Hardware-Beschreibungssprache für Simulation, Dokumentation und Synthese. Primär in Europa, in USA ist Verilog stärker verbreitet Standardformat für Bibliotheken und für den Datenaustausch zwischen Entwurfswerkzeugen Ähnlichkeit mit Programmiersprache; Erweiterungen zur Hardware-Modellierung: - Nebenläufigkeit (Beschreibung parallel ablaufender Prozesse) - Zeitmodell (Verzögerungszeiten; ereignisgesteuerte Simulation) Hardware-Modellierung: - auf verschiedenen Abstraktionsebenen - Beschreibung von Verhalten und Struktur 19

VHDL Modell eines Multiplexers 1. Spezifikation: Multiplexer mit den Eingängen A, B, Sel und dem Ausgang Q. Bei Sel = 0 wird A auf den Ausgang Q geschaltet. Bei Sel = 1 wird B auf den Ausgang Q geschaltet. Die Eingänge und der Ausgang sind vom Typ Bit. 2. Realisierung: Beschreibung der Schnittstelle: ENTITY Declaration Beschreibung einer Implementierung: ARCHITECTURE ENTITY Multiplexer IS PORT (A, B, Sel: in bit; Q: out bit); END Multiplexer; ENTITY Declaration Sel A B ARCHITECTURE 1 ARCHITECTURE 2... ARCHITECTURE N Black Box Entity Multiplexer Entity = Entity Declaration + Architecture Q 20

VHDL Modell eines Multiplexers Realisierung in Datenflussbeschreibung (Verhaltensbeschreibung): ENTITY Multiplexer IS PORT (A, B, Sel: in bit; Q: out bit); END Multiplexer; Sel A B Black Box Entity Multiplexer ARCHITECTURE dataflow OF Multiplexer IS PROCESS (A, B, Sel) CASE Sel IS WHEN 0 => Q <= A; WHEN 1 => Q <= B; END CASE; END PROCESS; END dataflow; Sel A B Q MUX Architecture dataflow Q 21

VHDL Modell eines Multiplexers Realisierung durch strukturelle Beschreibung: A Sel Inv Sel _ n Nand_a S 1 Nand_c Q B S 2 Nand_b ENTITY Multiplexer IS PORT (A, B, Sel: in bit; Q: out bit); END Multiplexer; LIBRARY BasicGates; USE BasicGates.ALL; ARCHITECTURE structure OF Multiplexer IS COMPONENT Inverter PORT (i: in bit; o: out bit); END COMPONENT; COMPONENT Nand2 PORT (i1, i2: in bit; o: out bit); END COMPONENT; SIGNAL Sel_n, S1, S2: bit; Inv: Inverter PORT MAP (Sel, Sel_n); Nand_a: Nand2 PORT MAP (A, Sel_n, S1); Nand_b: Nand2 PORT MAP (B, Sel, S2); Nand_c: Nand2 PORT MAP (S1, S2, Q); END structure; 22

VHDL Modell eines Multiplexers 3. Validierung durch Simulation: Testbench: Anregung der Schaltungseingänge mit Stimuli. Erfassen der Signalwerte an den Schaltungsausgängen. Überwachen der Korrektheit mit Assertions (optional). Sel A B Testbench (Funktionstest) MUX Multiplexer (dataflow) Q 23

VHDL Modell eines Multiplexers Testbench für Multiplexer Beschreibung der Schnittstelle: ENTITY Testbench IS -- -- keine Eingaenge, keine Ausgaenge. -- END Testbench; Implementierung, Einbindung des Multiplexers als COMPONENT: ARCHITECTURE Funktionstest OF Testbench IS COMPONENT Multiplexer PORT (A, B, Sel: in bit; Q: out bit); END COMPONENT; SIGNAL A, B, Sel, Q: bit; MUX_1: Multiplexer PORT MAP (A, B, Sel, Q); A <= 0, 1 after 20 ns, 0 after 60 ns, 1 after 100 ns; B <= 1, 0 after 30 ns, 1 after 70 ns; Sel <= 0, 1 after 40 ns, 0 after 80 ns; END Funktionstest; 24

VHDL Modell eines Multiplexers Konfiguration, Entity / Architecture Binding: CONFIGURATION Test_Setup OF Testbench IS FOR Funktionstest FOR MUX_1: Multiplexer USE ENTITY WORK.Multiplexer(dataflow); END FOR; END FOR; END Test_Setup; A B Sel Q 1 0 1 0 1 0 1 0 0 20 40 60 80 100 120 t (ns) 25

Prozesse: Anweisungen im PROCESS werden sequentiell in einer Endlosschleife ausgeführt. Alle Prozesse sind nebenläufig (laufen zeitgleich / parallel ab). Ein PROCESS muss entweder eine WAIT-Anweisung oder eine Sensitivity-List besitzen. Jede Signalzuweisung außerhalb eines PROCESS wird vom Simulator in einen eigenen PROCESS umgewandelt. In einem PROCESS können neben Signalen auch Variablen benutzt werden. Beispiel: Clock Generator Beispiel für Signalzuweisung ARCHITECTURE Simple OF CLKgen IS CLK <= NOT CLK AFTER 10 ns; END Simple; Beispiel für SENSITIVITY LIST ARCHITECTURE SList OF CLKgen IS PROCESS (CLK) CLK <= NOT CLK AFTER 10 ns; END PROCESS; END SList; Beispiel für WAIT ON-Anweisung ARCHITECTURE Wait1 OF CLKgen IS PROCESS CLK <= NOT CLK AFTER 10 ns; WAIT ON CLK; END PROCESS; END Wait1; Beispiel für WAIT FOR-Anweisung ARCHITECTURE Wait2 OF CLKgen IS PROCESS CLK <= NOT CLK; WAIT FOR 10 ns; END PROCESS; END Wait2; 26

Zwei Prozessbeschreibungen: ENTITY XXX IS PORT (a, b: IN bit; c: OUT bit); END XXX; ARCHITECTURE beispiel1 OF XXX IS PROCESS IF a = 1 AND b = 1 THEN c <= 1 ; WAIT ON a, b; ELSIF a = 0 THEN c <= 0 ; WAIT ON a; ELSIF b = 0 THEN c <= 0 ; WAIT ON b; END IF; END PROCESS; END beispiel1; ENTITY XXX IS PORT (a, b: IN bit; c: OUT bit); END XXX; ARCHITECTURE beispiel2 OF XXX IS PROCESS IF a = 1 AND b = 1 THEN c <= 1 ; WAIT ON a, b; ELSE c <= 0 ; WAIT ON a, b; END IF; END PROCESS; END beispiel2; Was beschreiben diese Prozesse? Welche Modellierung ist günstiger für einen Simulator? 27

Signale und Variablen: Signale: Haben zeitliches Gedächtnis. Die Einplanung zukünftiger Signalwerte erfolgt durch den Eintrag einer Transaktion (w n, t n ) im Signal-Treiber. (w n : eingeplanter Signalwert, t n : Zeitpunkt) (Transaktion Ereignis) Bei Wertzuweisungen <= waveform wird der neue Wert eingeplant. Die Übernahme erfolgt erst, wenn der PROCESS suspendiert wird (in der Signal-Update-Phase). Variablen: Haben kein zeitliches Gedächtnis. Bei Wertzuweisungen := expression wird der neue Wert sofort übernommen. 28

Delay-Mechanismen: Transport-Delay: (signal <= transport waveform;) Modellierung eines idealen Bauelements mit unbegrenzter Übertragungsbandbreite. Regel für das Einfügen einer neuen Transaktion (w n, t n ) in den Signaltreiber: - Alle (späteren) Transaktionen (w i, t i ) mit t i t n werden gelöscht. - Die neue Transaktion (w n, t n ) wird am Ende der Liste angefügt. Inertial-Delay: (signal <= waveform;) Modellierung realer Bauelemente mit endlicher Übertragungsbandbreite. (Impulse, die kürzer als die Verzögerung des Bauelements sind, werden unterdrückt.) Regel für das Einfügen einer neuen Transaktion (w n, t n ) in den Signaltreiber: - Alle (späteren) Transaktionen (w i, t i ) mit t i t n werden gelöscht. - Die neue Transaktion (w n, t n ) wird am Ende der Liste angefügt. - Transaktionen im Intervall t now t i t n werden gelöscht, wenn w i w n. 29

ENTITY inverter IS PORT ( inp : IN std_logic; outp : OUT std_logic); END inverter; ARCHITECTURE delaymechanism OF inverter IS outp <= TRANSPORT NOT inp AFTER 10 ns; END ARCHITECTURE; inp inp outp outp 5 10 15 20 25 30 35 ns 30

ENTITY inverter IS PORT ( inp : IN std_logic; outp : OUT std_logic); END inverter; ARCHITECTURE delaymechanism OF inverter IS outp <= INERTIAL NOT inp AFTER 10 ns; END ARCHITECTURE; inp inp outp outp 5 10 15 20 25 30 35 ns 31

ENTITY inverter IS PORT ( inp : IN std_logic; outp : OUT std_logic); END inverter; ARCHITECTURE delaymechanism OF inverter IS outp <= REJECT 2 ns INERTIAL NOT inp AFTER 10 ns; END ARCHITECTURE; inp inp outp outp 5 10 15 20 25 30 35 ns 32

Ereignisgesteuerte Simulation: Abarbeitung aller Transaktionen zum Zeitpunkt t n in Δ-Zyklen. Weiterschalten der Simulationszeit t n t n+1, wenn alle Transaktionen zur Zeit t n abgearbeitet sind. Δ-Zyklus: Signal-Update-Phase: - Ausführen aller Transaktionen zum aktuellen Zeitpunkt. - Ändert eine Transaktion einen Signalwert, so liegt ein Ereignis vor. Process-Evaluation-Phase: - Prozesse, für die ein Ereignis vorliegt, werden ausgeführt. - Wertzuweisungen an Signale werden im Treiber eingeplant. Δ-Zyklen Signal- Update Process- Evaluation Signal- Update +Δ +Δ Process- Evaluation t n t n+1 Zeit 33

Vertiefende Veranstaltungen des Lehrstuhls: Praktikum Systementwurf mit VHDL (4P; Bachelor 5-8) Praktikum VLSI Design Lab (4P; Master 1-3) 34