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

Ähnliche Dokumente
VHDL Verhaltensmodellierung

VHDL Verhaltensmodellierung

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

VHDL - Objekte und Typen

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

Praktikum Systementwurf mit VHDL HDL Design Lab

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

Einstellige binäre Addierschaltung (Addierer)

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

Simulation von in VHDL beschriebenen Systemen

Gliederung dieser Einführung in VHDL

LOOP-Programme: Syntaktische Komponenten

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

EHP Einführung Projekt A

Übungsblatt 8 Lösungen:

Informatik II, SS 2014

Einführung in die technische Informatik

Syntax von LOOP-Programmen

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

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

Signalzuweisungen können nebenläufig sein oder als sequentielle Anweisungen innerhalb von Prozessen, Funktionen oder Prozeduren stehen.

N. Schmiedel, J. Brass, M. Schubert VHDL Formelsammlung FH Regensburg, VHDL Formelsammlung

Hardware Programmierbare Logik

Theorie der Informatik

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

Programmierkurs Java

Theoretische Informatik SS 03 Übung 3

Einstieg in die Informatik mit Java

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

Entwurf und Verifikation digitaler Systeme mit VHDL

Use Case Schablonen: Eventmanager

4.2 Die Behandlung diskreter Zeitaspekte unter Synchroniehypothese

Einführung in VHDL (2)

LOOP-Programme: Syntaktische Komponenten

3. Anweisungen und Kontrollstrukturen

Theoretische Informatik SS 03 Übung 5

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

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

Universität des Saarlandes

Einstieg in die Informatik mit Java

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

2. Einführung in VHDL

Javakurs für Anfänger

3. Grundanweisungen in Java

Dialognetze. Ziel : Beschreibung von Methoden und Beschreibungstechniken für den Entwurf und die Dokumentation von Dialogabläufen

Zeon PDF Driver Trial

3. Übungsblatt zu Algorithmen I im SoSe 2017

Grundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben

Programmierkurs Python I

Konflikte. Konflikt-Äquivalenz von Read/Write-Plänen, Konflikt-Serialisierbarkeit

Perzeptronen. Lehrstuhl für Künstliche Intelligenz Institut für Informatik Friedrich-Alexander-Universität Erlangen-Nürnberg

1. Beschreibung der Aufgabe

Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5

Theoretische Informatik SS 03 Übung 4

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

C- Kurs 04 Anweisungen

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

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Kontrollstrukturen

Theoretische Grundlagen der Informatik

Praktische Informatik I WS 1999/2000

2. Programmierung in C

Einführung - Parser. Was ist ein Parser?

16 Latches und Flipflops (Bistabile Kippstufen)

Webbasierte Programmierung

2.4 Schleifen. Schleifen unterscheiden sich hinsichtlich des Zeitpunktes der Prüfung der Abbruchbedingung:

Softwaretechnik. Kapitel 11 : Zustandsdiagramme. Statecharts / State Machines Historisches. State Machines in UML Verwendung in OO

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Inhaltsverzeichnis. 4.1 Systemmodell und notwendige Bedingungen. 4.2 Gegenmaßnahmen

Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13)

Elementare Konzepte von

Aufgaben und Lösungen

15. Elementare Graphalgorithmen

PROGRAMMIERUNG IN JAVA

R a i n e r N i e u w e n h u i z e n K a p e l l e n s t r G r e v e n T e l / F a x / e

F r e i t a g, 3. J u n i

Programmiertechnik Kontrollstrukturen

Vorlesung Programmieren

Grundlagen der Rechnerarchitektur

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

Informatik II, SS 2014

Übung 7: VHDL Automaten

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

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration

INTERVALLBÄUME. Tanja Lehenauer, Besart Sylejmani

Eine blinkende LED mit Xilinx ISE 13: das Hello World! der Hardware.

OpenMP - Threading- Spracherweiterung für C/C++ Matthias Klein, Michael Pötz Systemprogrammierung 15. Juni 2009

Hardware Praktikum 2008

Grafische Benutzeroberfläche mit Glade und Python

Einführung in die Programmierung Wintersemester 2011/12

Programmieren in Haskell. Stefan Janssen. Strukturelle Rekursion. Universität Bielefeld AG Praktische Informatik. 10.

3. Prozesse in VHDL 1

Anlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt

22. Algorithmus der Woche Partnerschaftsvermittlung Drum prüfe, wer sich ewig bindet

Netzlaufwerk-Verbindung auf den Server se-1ug w2k.makro.privat. im Computerraum für die Daten der Chemikaliendatenbank

13. Binäre Suchbäume

Laborübung 4. Zustandsautomaten (Finite State Machines)

Einige Beispiele zur Turingmaschine

Übungsblatt 2 - Lösung

Simulation und weiterführende Simulationstechniken

Transkript:

VHDL Simulation Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 VHDL Simulation 1/20 2011-05-18

Motivation Der Simulationsalgorithmus bestimmt wesentlich die Semantik von VHDL. Er soll daher im Folgenden etwas näher betrachtet werden. VHDL Simulation 2/20 2011-05-18

Ereignislisten Eigenschaften Gedachte bzw. simulatorinterne Liste von Paaren aus Signalwerten und Zeitpunkten, enthält alle zukünftigen Signalwechsel, verzögerte Signalzuweisungen werden an der entsprechenden Stelle eingetragen, bei der Simulation wird die Liste abgearbeitet und ggf. ergänzt. VHDL Simulation 3/20 2011-05-18

Ereignislisten (2) Beispiel sig_a <= 1 AFTER 2 ns, 0 AFTER 5 ns, 1 AFTER 10 ns, 1 AFTER 12 ns, 0 AFTER 15 ns, 1 AFTER 17 ns ; VHDL Simulation 4/20 2011-05-18

Ereignisse Terminologie Transaktion (transaction): Eintrag aus Wert und Zeitpunkt in einer Ereignisliste. Ereignis (event): Änderung eines Signalwertes zum gegebenen Zeitpunkt. aktiv (active): Ein Signal ist aktiv, wenn ihm gerade von einer Transaktion ein Wert zugewiesen wird. VHDL Simulation 5/20 2011-05-18

Verdrängung ( Preemption ) Eigenschaften bezeichnet das Entfernen von geplanten Transaktionen aus der Ereignisliste, wird bei jeder Signalzuweisung geprüft/durchgeführt, welche Transaktionen gelöscht werden, hängt vom Verzögerungsmodell ab: Transport-Modell, Inertial-Modell, Reject-Inertial-Modell. VHDL Simulation 6/20 2011-05-18

Transport-Modell Alle Transaktionen, die nicht früher als zum Zeitpunkt der neuen Transaktion auftreten, werden entfernt. Beispiel sig_a <= TRANSPORT 1 AFTER 11 ns; führt im obigen Beispiel zum Zeitpunkt 2 ns zu: VHDL Simulation 7/20 2011-05-18

Inertial-Modell Eigenschaften Ist das Default-Modell, es gilt folgende Regel: 1 markiere Transaktion unmittelbar vor dem neuen Eintrag, falls sie denselben Wert hat, 2 markiere aktuelle und neue Transaktion, 3 lösche alle nicht markierten, anschaulich: nur solche Impulse bleiben erhalten, die mindestens die angegebene Verzögerungszeit als Dauer haben. VHDL Simulation 8/20 2011-05-18

Inertial-Modell (2) Beispiel sig_a <= 1 AFTER 11 ns; führt im obigen Beispiel zum Zeitpunkt 2 ns zu: VHDL Simulation 9/20 2011-05-18

Reject-Inertial-Modell Eigenschaften Beispiel Erweitert das Inertial-Modell, es wird eine explizite Mindestdauer für Impulse angegeben. sig_a <= REJECT 2 ns INERTIAL sig_b AFTER 3 ns ; Alle Impulse von sig_b, die länger als 2 ns sind, werden um 3 ns verzögert an sig_a weitergegeben. VHDL Simulation 10/20 2011-05-18

Simulationsalgorithmus Die Simulation springt von Zeitpunkt zu Zeitpunkt, jeder Zeitpunkt besteht aus infinitesimal kurzen Schritten, die mit bezeichnet werden, durch die Unterscheidung von simulierter Realzeit und -Schritten kann die Nebenläufigkeit von VHDL recht leicht sequentialisiert werden. VHDL Simulation 11/20 2011-05-18

Simulationsalgorithmus (2) Zur Erinnerung... Transaktion (transaction): Paar aus Signalwert und Zeitpunkt, Ereignisliste Liste von Transaktionen, Ereignis (event): Änderung eines Signalwertes zum gegebenen Zeitpunkt. Aber: nicht jede Transaktion führt zu einem Ereignis! VHDL Simulation 12/20 2011-05-18

Simulationsalgorithmus (3) solange die Eventliste nicht leer ist gehe zum nächsten Zeitpunkt t mit eingetragenen Transaktionen now := t + 0Δ aktualisiere Signale für alle aktiven Prozesse arbeite Prozessrumpf bis zur nächsten Deaktivierung ab; vermerke dabei zeitlose Signaländerungen für den nächsten Δ-Schritt, zeitbehaftete an der passenden Stelle der Eventliste now := now + 1Δ bis keine Signaländerungen für dieses Δ mehr vorliegen VHDL Simulation 13/20 2011-05-18

Delta-Zyklus Einen Durchlauf von Prozess-Abarbeitung und Signal-Aktualisierung nennt man einen Delta-Zyklus. VHDL Simulation 14/20 2011-05-18

Aktive Prozesse Prozess-Zustandswechsel Sensitiv-Liste mit ohne Aktivierung Event auf sensitivem Signal WAIT kehrt zurück Deaktivierung Prozess-END wird erreicht nächstes WAIT VHDL Simulation 15/20 2011-05-18

Initialisierung Beginn der Simulation: Zeitpunkt 0 + 0, jeder Prozess wird bis zur ersten Deaktivierung ausgeführt, danach: Fortschreiten der -Zeit nach obigem Algorithmus. VHDL Simulation 16/20 2011-05-18

Nebenläufige Zuweisungen vs. Prozesse N.B. Nebenläufige Zuweisungen können immer durch äquivalente Prozesse ersetzt werden. Beispiel csa : sig_b <= 1, 0 AFTER 2 ns WHEN s e l = 1 ELSE 0, 1 AFTER 3 ns WHEN s e l = 2 ELSE Z ; VHDL Simulation 17/20 2011-05-18

Nebenläufige Zuweisungen vs. Prozesse (2) Beispiel (Forts.) csa : PROCESS ( s e l ) BEGIN IF s e l = 1 THEN sig_b <= 1, 0 AFTER 2 ns ; ELSIF s e l = 2 THEN sig_b <= 0, 1 AFTER 3 ns ; ELSE sig_b <= Z ; END IF ; END PROCESS; VHDL Simulation 18/20 2011-05-18

Signale vs. Variablen Wichtig! Zuweisungen an Signale und Variablen wirken zu unterschiedlichen Zeitpunkten: Variablen sofort, Signale erst bei der nächsten Aktualisierung, Reihenfolge der Abarbeitung gleichzeitig aktiver Prozesse nicht festgelegt. Variablen nicht über Prozessgrenzen hinaus verwenden! VHDL Simulation 19/20 2011-05-18

Signale vs. Variablen (2) Beispiel ARCHITECTURE arch OF example IS SIGNAL a, b : i n t e g e r := 0 ; BEGIN a <= 1 AFTER 1 ns, 2 AFTER 2 ns, 3 AFTER 3 ns ; PROCESS ( a ) VARIABLE c : i n t e g e r := 0 ; BEGIN b <= a + 2 ; c := 2 b ; END PROCESS; END arch ; VHDL Simulation 20/20 2011-05-18