Design of Digital Circuits (S1) Modelling and Simulation Capter 1, Part 1

Design of Digital Circuits (S1) Modelling and Simulation Capter 1, Part 1
Design of Digital Circuits (S1)
Capter 1, Part 1
Modelling and Simulation
Section 1.1 Design Processes
to 1.2 Modells & Simulation
Prof. G. Kemnitz
Institute of Informatics, Clausthal University of Technology
8. Mai 2012
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 1/105
1.1
1.2
1.3
1.4
1.5
2.1
2.2
2.3
2.4
2.5
2.6
Entwurfsprozess
Umgang mit der Komplexität
Modelle und Entwurfsraum
Entwurfsfluss
Beschreibungssprache (VHDL)
Aufgaben
Modelle & Simulation
Signale, Datentypen
Signalflussplan
Imperative Modelle
Event Driven Sim
Structural description
Aufgaben
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 2/105
What is Computer Engineering
Two relatively independent Zwei relativ independent sub fields:
technical application of computer science
informationstechnische Erfassung, Modellierung und
Steuerung technischer Systeme
technical basis of computer science
Digitaltechnik: Modellierung, Simulation, Entwurf und Test
digitaler Schaltungen
Die LV Entwurf digitaler Schaltungen legt die Grundlagen für
den zweiten Teil. Lernziele: theoretisches Grundverständnis und
praktische Fertigkeiten für den rechnergestützten Entwurf.
Voraussetzung imperative Programmierung (C, Pascal o.ä.)
Prüfung schriftlich
Hausübungen
begleitendes Praktikum
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 2/105
1. Entwurfsprozess
Entwurfsprozess
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 3/105
1. Entwurfsprozess
Digitale Schaltkreise, Baugruppen und Systeme bestehen
aus Millionen von logischen Bausteinen.
Kein Mensch ist mehr in der Lage, diese Bausteine auch nur
zu zählen.
Wie werden solche Schaltungen erfolgreich entworfen?
ähnlich wie Software:
rechnergestützt
mit einer hierarchischen Struktur aus parametrierten
Bausteinen
Synthese aus einer Funktionsbeschreibung
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 4/105
1. Entwurfsprozess
1. Umgang mit der Komplexität
Umgang mit der Komplexität
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 5/105
1. Entwurfsprozess
1. Umgang mit der Komplexität
Digitale Systeme sind groß
Wie kann man eine digitale Schaltung mit Millionen von Gattern
so entwerfen, dass sie am Ende funktioniert?
rechnergestützt in einer Programmiersprache
hierarchisch
nach formal überprüfbaren Entwurfsregeln
mit Hilfe von
Simulation
Schaltungsgenerierung
rechnergestützter Synthese und Logikoptimierung
(teil-) automatischer Platzierung und Verdrahtung
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 6/105
1. Entwurfsprozess
1. Umgang mit der Komplexität
Hierarchie digitaler Systeme
Gatter
Funktions- Funktionsblöcke
einheiten
Schaltkreise
Baugruppe
Geräte
&
&
&
...
&
&
Baukastenprinzip; Bibliothek zusammenpassender Bausteine
+ Regeln für den Zusammenbau; Mehrfachverwendung
Entwurfskomplexität wird weniger von der Bauteilanzahl,
sondern von der Typenanzahl bestimmt
parametrisierte Bausteine, z.B. Rechenwerke mit variabler
Operandenbreite + Schaltungsgeneratoren ⇒ weniger Typen
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 7/105
1. Entwurfsprozess
1. Umgang mit der Komplexität
Parametrierte Schaltungen
Parametrierte Schaltungen werden als Datensätze für
Algorithmen zur Schaltungsgenerierung modelliert. Beispiele
parametrierter Schaltungen:
UND-Gatter mit einem Parameter für die Eingangsanzahl
und einem Parameter für die maximale Lastanzahl (Last –
am Ausgang angeschlossene Gattereingänge)
Speicher unterschiedlicher Größe und Organisation
(Adressbusbreite, Datenbusbreite, ...)
Rechenwerke mit variabler Operandenbreite
Minderung der Entwurfskomplexität durch Verringerung der
Anzahl der zu unterscheidenden Bausteintypen; in der Vorlesung
etwa zwei Duzend
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 8/105
1. Entwurfsprozess
1. Umgang mit der Komplexität
Synthese
Zielfunktion, Steuerparameter
Register-Transfer-Synthese
extrahierte GS
parametrierte GS
Schaltungsteile aus
universellen TS
Synthese
Schaltungsgeneratoren
RS aus universellen GS
Logikoptimierung
OS aus universellen GS
Technologieabbildung
OS aus vorentworfenen GS
GS Grundschaltung
RS Rohschaltung
OS optimierte Schaltung
Platzierung und Verdrahtung
Layout, Fertigungsdaten
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 9/105
1. Entwurfsprozess
1. Umgang mit der Komplexität
Register-Transfer-Synthese: Analysieren der
Hochsprachenbeschreibung; Extrahieren der
Rohschaltung (Schaltung aus Grundschaltungen
(NAND2, NOR2, ...) und parametrierten Schaltungen)
Schaltungsgenerierung: Nachbildung parametrierter
Teilschaltungen durch Grundschaltungen
Logikoptimierung: Schaltungsminimierung mittels
Schaltalgebra, Konstanteneliminierung, Verschmelzung, ...
Technologieabbildung: Nachbildung der (universellen)
Grundschaltungen durch vorentworfene Teilschaltungen für
eine bestimmte Fertigungstechnologie
Platzierung: 2D-Anordnung der vorentworfenen
Teilschaltungen
Verdrahtung: Anordnung der Verbindungen
Steuerparameter: Festlegung von Optimierungszielen
(Obergrenzen für die Größe und Geschwindigkeit),
Empfehlungen für Syntheseentscheidungen etc.
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 10/105
1. Entwurfsprozess
1. Umgang mit der Komplexität
Simulation
Simulationsmodell für das Testobjekt:
Berechnung der Ausgabesignalverläufe und der internen
Signalverläufe aus den Eingabesignalverläufen
Simulationsmodelle der Testumgebung:
Bereitstellung der Eingaben
Auswertung der Ausgaben und Zwischenergebnisse
Jede Simulation ist ein Kompromiss zwischen
Programmieraufwand, Rechenaufwand (Kosten) ⇔ Anteil
der erkennbaren Fehler (Nutzen)
Kosten: Test und Fehlersuche sind bei der Entwicklung von
Hardware immer am teuersten
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 11/105
1. Entwurfsprozess
1. Umgang mit der Komplexität
Summary
Beherrschung der Entwurfskomplexität
rechnergestützt
durch die Beschreibungshierarchie
durch parametrierte Funktionsbausteine
durch Synthese und
durch Simulation.
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 12/105
1. Entwurfsprozess
2. Modelle und Entwurfsraum
Modelle und Entwurfsraum
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 13/105
1. Entwurfsprozess
2. Modelle und Entwurfsraum
Der Modellbegriff in der Informatik
Ein Modell ist ein Mittel, um einen Zusammenhang zu
veranschaulichen; stellt die wesentlichen Sachverhalte dar und
verbirgt unwesentliche Details
formales Modell eindeutige Beschreibung der wesentlichen
Merkmale (Simulationsmodell, Entwurfsergebnis)
informales Modell Beschreibung wesentlicher Zusammenhänge in
einer anschaulichen Form ohne Rücksicht auf
Eindeutigkeit oder Vollständigkeit (Entwurfsskizzen,
Spezifikation, Lehrbuchdarstellungen)
halbformales Modell Beschreibung, aus der Fachleute in der
Regel dasselbe herauslesen (Datenblätter)
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 14/105
1. Entwurfsprozess
2. Modelle und Entwurfsraum
Design Space
Testbeschreibung
geometrische
Beschreibung
Strukturbeschreibung
chieebene
Funktionsbeschreibung
3D-Raum zur Klassifizierung der Beschreibungen (Modelle), die
im Entwurfsprozess entstehen:
Hierarchieebene
hervorzuhebender
Beschreibungsart
Sachverhalt
(Beschreibungsart)
HierarGesamtsystem
Teilsysteme
Funktionsblöcke
Objektraum
Gatter
Transistoren
dritte Dimension: informal, halbformal, formal
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 15/105
1. Entwurfsprozess
2. Modelle und Entwurfsraum
Beschreibungsart
Funktionsbeschreibung
x1
x2
y = x1 ∨ x2
y
Algorithmus oder Formalismus, zur
Berechnung der Systemausgabe aus
den Eingaben (Gleichungssystem, Tabellen, Programm)
informal: Kurzbeschreibung
halbformal: Datenblatt, Applikationsbeschreibungen
formal: Simulationsmodell
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 16/105
1. Entwurfsprozess
2. Modelle und Entwurfsraum
&
Strukturbeschreibung
&
Abstraktionsebene Schaltung
Beschreibung der Zusammensetzung einer Entwurfseinheit
aus Teilsystemen; hierarchisch
Basis für einen Großteil der Schaltungsoptimierungen
Durch Einsetzen der Funktionsbeschreibungen der
Teilsysteme ⇒ Funktionsbeschreibung (eindeutige
Abbildung)
Synthese (Funktion ⇒Struktur) hat einen unbegrenzt
großen Lösungsraum; Suche mit Kostenfunktion
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 17/105
1. Entwurfsprozess
2. Modelle und Entwurfsraum
geometrische Beschreibung
Geometrische Abmessungen der einzelnen
Komponenten, ihre Anordnung in einem
Gerät, auf einer Leiterplatte oder in einem
Schaltkreis
Grundlage für die Generierung der Fertigungsdaten
Beinhaltet die Strukturbeschreibung, ist aber für
strukturbasierte Algorithmen viel zu überladen
Jede Strukturbeschreibung kann durch unbegrenzt viele
unterschiedliche geometrische Beschreibungen nachgebildet
werden.
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 18/105
1. Entwurfsprozess
2. Modelle und Entwurfsraum
Testbeschreibung
Eingabe Ausgabe
0010
101
1001
011
...
...
Eingabewerte, Algorithmen zur Bereitstellung von Eingabewerten oder Regeln für
die Auswahl von Eingabewerten
zugehörige Soll-Werte, Algorithmen oder Regeln zur
Kontrolle der Ausgabewerte
die Testvorbereitung, die Testdurchführung und die
Fehlerbeseitigung verursachen immer den größten Teil des
Entwurfsaufwands
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 19/105
1. Entwurfsprozess
3. Entwurfsfluss
Entwurfsfluss
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 20/105
1. Entwurfsprozess
3. Entwurfsfluss
Entwurfsfluss
Entwurfsprozesses als
Füllen des Entwurfsraums
Entwurfsbeschreibung, Randbedingungen
Funktion
Struktur Geometrie
Top-DownEntwurf
BottomUp-Entwurf
Simulationsmodelle
Testdaten
grob
Funktionseinheiten
Funktionsblöcke
Gatter
Transistoren
fein
Fertigungsdaten
Konfigurationsdaten
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 21/105
1. Entwurfsprozess
3. Entwurfsfluss
Top-Down
Entwurfsziel
Entwurfsfluss von oben links nach unten rechts
...
...
Bei den nachfolgenden Abbildungen gibt es
Lösungsjeweils unbegrenzt viele Möglichkeiten:
raum
Entwurfsziel (informal) ⇒ Entwurfsskizzen
(Funktion, Struktur, ...; informal)
Entwurfsskizzen (informal) ⇒Simulationsmodell (Funktion,
Systemebene, formal)
für alle Hierarchieebenen
Funktion ⇒Struktur aus Teilfunktionen (⇒Geometrie)
Gesamtfunktion Struktur ⇒ Geometrie
Was tun, um sich nicht zu verirren?
vorsichtiges Vortasten mit ständigen Kontrollen, ob noch im
Lösungsraum
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 22/105
1. Entwurfsprozess
3. Entwurfsfluss
Phase I (auf dem Papier und im Kopf des Entwerfers):
Spezifikation: Auflistung der Anforderungen
schrittweise Entwicklung einer Skizze der Soll-Funktion
Phase II (am Rechner mit einer simulierbaren Beschreibung)
Nachbesserungsiteration, bis die Zielfunktion o.k ist
Nachbesserungsiteration, bis die Zielfunktion realisierbar ist
Nachbesserungsiteration, bis das System auch alle
Anforderung bezüglich der Geschwindigkeit, des
Schaltungsaufwands, des Stromverbrauchs und der
Testbarkeit erfüllt.
Jede Nachbesserungsiteration beinhaltet:
umfangreiche Simulationen und Analysen
die Entwicklung weiterer Simulationsbeispiele und
kann Nachbesserungen auf der Ebene drüber verlangen.
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 23/105
1. Entwurfsprozess
3. Entwurfsfluss
Bottom-Up
Lösungs-
raum
Entwurfsfluss von unten rechts nach oben links.
Ausgangspunkt: Elemente mit bekannter
...
...
Funktion und bekannter Realisierung
Prinzip: Zusammensetzen großer
Basiselemente
aus kleinen Funktionseinheiten
Vorteil: gute Optimierungsmöglichkeiten hinsichtlich der
der Größe, der Geschwindigkeit
des Stromverbrauchs und der Testbarkeit
Problem: vorgegebene Zielfunktion schwer zu erreichen
Hauptanwendung: Konstruktion von Teilschaltungen auf
Vorrat (Entwurfsbibliotheken); Entwurf von parametrierten
Schaltungsmodellen + Generierungsalgorithmen
Praxis: Mischstrategie aus Top-Down- und Bottom-Up-Entwurf
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 24/105
1. Entwurfsprozess
3. Entwurfsfluss
Mensch-Maschine-Interaktion
Entwurfsziele
Entwickler
Rückmeldungen:
Fehlermeldungen
Warnungen
Gütekennzahlen
Simulationsergebnisse
vom Rechner erzeugte
Entwurfsbeschreibungen
Manuelle Beschreibungen:
Entwurfsbeschreibungen
Randbedingungen
Testbeispiele
Entwurfssystem
Entwurfsergebnisse:
Fertigungsdaten
Konfigurationsdaten
Dokumentationen
Testdaten
Simulationsmodelle
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 25/105
1. Entwurfsprozess
3. Entwurfsfluss
Die Zielfunktion wird vom Entwerfer vorgegeben, der den
gesamten Entwurfsprozess, in dem viele Megabyte an
Beschreibungsinformationen entstehen, kontrolliert und
steuert.
Das Entwurfssystem analysiert und simuliert die
Beschreibung; synthetisiert, generiert, platziert und
verdrahtet die Schaltung; die Softwarewerkzeuge liefern
zusätzliche Hinweise, Warnungen und Fehlermeldungen
bei unzureichendem Ergebnis ändert der Entwerfer die
Beschreibung und/oder die Steuerparameter der Werkzeuge
Ähnlichkeit mit einem Regelkreis mit dem Entwerfer als
Regler
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 26/105
1. Entwurfsprozess
3. Entwurfsfluss
Entwurfsautomatisierung
viele Möglichkeiten
(Entwurfsschritt)
Darstellungsraum
Lösungen
eindeutig (Probe)
Vorgabe
Aufgabe
Funktion
Struktur
Ziel
Funktion
Struktur
Geometrie
Beschänkung der Darstellungsmöglichkeiten
zur Automatisierung
gute Lösungen
Lösungsraumbeschränkung schließt auch gute Lösungen aus
Einzelergebnis im Mittel schlechter als
handoptimierte Lösungen
Untersuchung von viel mehr Lösungsmöglichkeiten; beste
Lösung oft besser als Handentwurf
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 27/105
1. Entwurfsprozess
3. Entwurfsfluss
Synthesebasierte Lösungssuche (ähnlich wie genetischer
Algorithmus):
Variation auf der Ebene der manuellen Beschreibung
Kombination guter Lösungsdetails
manuelle Nachbesserung, wenn die Automatismen keine
ausreichend gute Lösung finden.
Generelle Vorteile der Entwurfsautomatisierung:
deutlich kürzere Gesamtentwurfszeiten
besser vorhersagbare Güte- und Aufwandskennzahlen für die
Projekt- und Kostenplanung
eine geringere zu erwartende Anzahl von Entwurfsfehlern.
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 28/105
1. Entwurfsprozess
3. Entwurfsfluss
Zusammenfassung
Mega- bis Gigabyte Entwurfsdaten; 3D-Klassifikation:
informal, halbformal, formal
Gesamtsystem, Teilsysteme, Funktionsblöcke, Gatter, ...
Funktion, Struktur, Geometrie und Test
Bewegung im Entwurfsraum
Top-Down: von der Zielfunktion zur Schaltung
Bottom-Up: Vorratsentwicklung günstiger Schaltungen
Mensch-Maschine-Kommunikation
Entwerfer sieht einen strukturierten Entwurfsraum und
Tools
wendet Bearbeitungsmethoden auf Entwurfsobjekte an und
kontrolliert die Ergebnisse; ähnlich wie Regelkreis mit
Entwerfer als Regler
Optimieren durch Probieren auf High-Level-Ebene
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 29/105
1. Entwurfsprozess 4. Beschreibungssprache (VHDL)
Beschreibungssprache (VHDL)
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 30/105
1. Entwurfsprozess 4. Beschreibungssprache (VHDL)
VHDL als formale Beschreibungsplattform
Das Akronym VHDL:
V VHSIC (Very High Speed Integrated Circuits)
H Hardware
D Description
L Language
in Europa verbreitetste Hardwarebeschreibungssprache
erweiterte imperative Sprache (ADA)
andere Hardwarebeschreibungssprachen: Verilog, System-C
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 31/105
1. Entwurfsprozess 4. Beschreibungssprache (VHDL)
TestBeschreibung
geometrische
Beschreibung
Strukturbeschreibung
BeschreibungsEbene
art
in der
Hirarchie
Funktionsbeschreibung
Mit VHDL werden Funktionen, Strukturen und Testabläufe
vom Gesamtsystem bis zum Gatterniveau beschrieben
Gesamtsystem
+
+
+
Teilsysteme
+
+
+
Funktionsblöcke
+
+
+
Gatter
+
+
+
Transistoren
·
·
·
+ üblich
· möglich
Bestandteile eines VHDL-Projekts:
Entwurfseinheiten
Packages
Bibliotheken
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 32/105
1. Entwurfsprozess 4. Beschreibungssprache (VHDL)
Beschreibungsstruktur einer Entwurfseinheit:
1: library IEEE;
2: use IEEE.STD LOGIC 1164.all;
--- Schnittstellenbeschreibung
3: entity Schaltungsname is
4: [generic (List der Konfigurationsparameter );]
5: [port(Liste der Anschlusssignale );]
6: end entity;
--- Beschreibung des Innenlebens
7: architecture Beschreibung of Schaltungsname is
8: –Vereinbarung ;˝
9: begin
10: –Anweisung ;˝
11: end architecture;
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 33/105
1. Entwurfsprozess 4. Beschreibungssprache (VHDL)
Zeile 1, 2: Library- und Use-Anweisung; Einblendung von
Bibliotheksobjekten in den Namensraum
Zeile 3-6: Schnittstellenbeschreibung; Vereinbarung der
Konfigurationsparameter und Anschlusssignale
Zeile 7-11: Beschreibung der Entwurfseinheit
Zeile 8: Vereinbarungen von Datentypen, Signale,
Unterprogramme etc.
Zeile 10: Anweisungen zur Beschreibung des Innenlebens
Beschreibungsmittel für das Innenleben:
Einbindung von Teilschaltungen (⇒ Strukturbeschreibung)
Prozesse: Rahmen zur Verhaltensbeschreibung mit
imperativen Mitteln (⇒ Funktionsbeschreibung)
Kurzschreibweisen für Verhaltensmodelle für
Grundschaltungen (Gatter, Multiplexer, ...)
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 34/105
1. Entwurfsprozess 4. Beschreibungssprache (VHDL)
Im Weiteren verwendete Schreibweisen/Farben
key
Schlüsselwort
[...]
optionales Element, darf Null mal oder einmal
enthalten sein
{...}
optionales Element, darf beliebig oft enthalten sein
...|...
Alternative, eines der aufgezählten Elemente muss
enthalten sein
Symbol
Methasymbol (Nichtterminalsymbol): Symbol das
nach weiteren Regeln zu ersetzen ist.
Name,
eigener Bezeichner, standardisierter Bezeichner
IEEE
1,”ab”, ...
Wertangaben (Zahlen, Zeichenketten, ...)
--- Text
Kommentar
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 35/105
1. Entwurfsprozess 4. Beschreibungssprache (VHDL)
Bezeichner sind explizit zu definieren
keine Mehrfachdefinition
keine Schlüsselworte
in VHDL
beginnen Bezeichner mit einem Buchstaben
bestehen nur aus den Buchstaben ’A’ bis ’Z’, ’a’ bis ’z’, den
Ziffern ’0’ bis ’9’ und dem Unterstrich ’ ’
dürfen nicht nicht mit einem Unterstrich enden und keine
zwei Unterstriche hintereinander enthalten
keine Unterscheidung zwischen Groß- und Kleinschreibung
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 36/105
1. Entwurfsprozess 4. Beschreibungssprache (VHDL)
Simulierbare Entwurfseinheit (Testrahmen)
keine Anschlusssignale
imperative Teilbeschreibungen in Prozesse gekapselt
1: entity hallo welt is
2: end entity;
3: architecture a of hallo welt is
4: begin
5: process
6: begin
--- Meldung ausgeben und Prozess beenden
7:
report ”Hallo Welt”;
8:
wait;
9: end process;
10: end architecture;
⇒WEB-Projekt: HalloWelt
Simulationsausgabe:
HalloWelt.vhdl:7:5:@0ms:(report note): Hallo Welt
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 37/105
1. Entwurfsprozess 4. Beschreibungssprache (VHDL)
Größere Teilbeschreibungen, die keine Entwurfseinheiten sind,
werden in Packages ausgelagert: Typenvereinbarungen,
Konstanten, Unterprogramme, ...
--1:
2:
3:
4:
Definitionssteil, exportierte Vereinbarungen
package HalloWelt pack is
constant c: STRING:=”Hallo Zeichenkette”;
function SchreibeText(s: STRING) return STRING;
end package;
--- Beschreibung der Unterprogramme
5: package body HalloWelt pack is
6: function SchreibeText(s: STRING) return
7: begin
8: return s;
9: end function;
10: end package body;
STRING
is
⇒WEB-Projekt: HalloWelt pack
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 38/105
1. Entwurfsprozess 4. Beschreibungssprache (VHDL)
Nutzung eines Packages
1: use WORK.HalloWelt pack.all;
2: entity HalloWelt1 is
3: end entity;
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
architecture a of HalloWelt1 is
begin
process
begin
report ”Hallo Welt”;
wait for 1 ns;
report c;
wait for 1 ns;
report SchreibeText(”Hallo Funktionsaufruf”);
wait;
end process;
⇒WEB-Projekt: HalloWelt
end architecture;
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 39/105
1. Entwurfsprozess
5. Aufgaben
Aufgaben
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 40/105
1. Entwurfsprozess
5. Aufgaben
Aufgabe 1.1:
Was ist eine Strukturbeschreibung, eine
Funktionsbeschreibung und eine geometrische Beschreibung?
Wozu dient der Testrahmen in einem Simulationsmodell?
Was sind die Merkmale, die Unterschiede, die Vorteile und
die Nachteile formaler und informaler Modelle?
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 41/105
2. Modelle & Simulation
Modelle & Simulation
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 42/105
2. Modelle & Simulation
Begriffe
Eine digitale Schaltung ist ein System aus signalverarbeitenden
Bausteinen (Teilsystemen), die über Signale miteinander
kommunizieren. Grundbegriffe:
Kombinatorische Schaltung (engl. combinational circuit, dt.
auch Schaltnetz): Schaltung ohne Speicherverhalten;
Ausgabe nur abhängig von den aktuellen Eingaben
Sequentielle Schaltung (engl. sequential circuit, dt. auch
Schaltwerk): Schaltung mit Speicherverhalten; Ausgabe auch
abhängig von früheren Eingaben
Signal: zeitlicher Werteverlauf einer physikalischen Größe.
Datentyp: beschreibt den Wertebereich eines Datenobjekts
(Signal, Variable, Konstante) und optional die
Wertedarstellung
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 43/105
2. Modelle & Simulation
1. Signale, Datentypen
Signale, Datentypen
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 44/105
2. Modelle & Simulation
1. Signale, Datentypen
Binäre Signale und Datentypen
Quelle
Potenzial
ϕ(x)
x (Signal)
Signal
Störung
groß
Sicherheitsbereich
klein
Empfänger
u(x) = ϕ(x)
Signalwechsel
Signalwert
erweitert
binär
x=1
x=1
x =X
nicht darstellbar
x=0
x=0
Der Datentyp beschreibt Wertebereich [+ Wertedarstellung]
Bit: zwei Wert + ungültig1
Logik: BL = {falsch, wahr}
Digitaltechnik: B = {0, 1 [, X]}
1
Signale dürfen nur innerhalb der Gültigkeitsfenster ausgewertet werden
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 45/105
2. Modelle & Simulation
1. Signale, Datentypen
VHDL-Datentypen für die Darstellung von Bits
In VHDL sind Bit-Typen Aufzählungstypen:
type BIT is (’0’, ’1’);
type BOOLEAN is (FALSE, TRUE);
type STD LOGIC is (’U’, ’X’, ’0’, ’1’, ...)2 ;
’0’, ’1’ – druckbare Zeichen
FALSE, TRUE – symbolische Konstanten
variable b1, b2:
...
b1 := b1 and b2;
BOOLEAN
:=
TRUE;
2
im Package IEEE STD LOGIC 1164 definiert; ’U’, ’X’, ... –
Pseudo-Signalwerte für Simulationsmodelle, können ungenutzt bleiben; vom
Standard als Ersatz für der Typ BIT empfohlen
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 46/105
2. Modelle & Simulation
1. Signale, Datentypen
Bitvektoren
n=1
n=2
n=3
n=4
b0
b1
b2
b3
···
0
0
0
0
1
0
0
0
2
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1 ···
1 ···
1 ···
4
N =8
N = 16
numerical value (decimal): 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
...
x0
x1
ux0
ground
a)
ϕ(x0 )
x
ux1
ϕ(x1 )
x = x1 x0
10
11 11
voltage curve
01
00 00
10
signal invalid
11
01
t
b)
n Bits ⇒ N ≤ 2n unterscheidbare Werte
N > 2 zu unterscheidende Werte ⇒ n ≥ log2 (N )
ein BV ist nur gültig, wenn alle Bits gültig sind
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 47/105
2. Modelle & Simulation
1. Signale, Datentypen
Bitvektortypen und Zahlentypen
Bitvektoren 1D-Felder aus Bits:
type BIT VECTOR is array (NATURAL range <>) of BIT;
type STD LOGIC VECTOR is array(NATURAL range<>) of
STD LOGIC;
Bitvektorkonstanten sind Zeichenketten, z.B. ”0101”,”0X1”
Die Indexbereiche sind Zahlentypen:
type INTEGER range -2**31 to 2**31-1;
subtype NATURAL is INTEGER range 0 to INTEGER’HIGH;
subtype POSITIVE is INTEGER range 1 to INTEGER’HIGH;
(Zahlentyp range<>) – Obergrenze des Indexbereichs
signal slv: STD LOGIC VECTOR(3 downto 0);
variable idx: NATURAL;
...
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 48/105
2. Modelle & Simulation
1. Signale, Datentypen
Ohne Textverarbeitung geht es nicht
type character
nul, soh, stx,
dle, dc1, dc2,
’ ’, ’!’, ’"’,
’0’, ’1’, ’2’,
’@’, ’A’, ’B’,
’P’, ’Q’, ’R’,
’‘’, ’a’, ’b’,
is (
etx,
dc3
’#’,
’3’,
’C’,
’S’,
’c’,
-- 128 Zeichen
eot, enq, ack, bel,
dc4 nak, syn, etb,
’$’, ’%’, ’&’, ’’’,
’4’, ’5’, ’6’, ’7’,
’D’, ’E’, ’F’, ’G’,
’T’, ’U’, ’V’, ’W’,
’d’, ’e’, ’f’, ’g’,
des ASCII character set
bs, ht, lf, vt, lf, cr,
can, em, sub, esc, fsp, gsp,
’(’, ’)’, ’*’, ’+’, ’,’, ’-’,
’8’, ’9’, ’:’, ’;’, ’<’, ’=’,
’H’, ’I’, ’J’, ’K’, ’L’, ’M’,
’X’, ’Y’, ’Z’, ’[’, ’\’, ’]’,
’h’, ’i’, ’j’, ’k’, ’l’, ’m’,
so,
rsp,
’.’,
’>’,
’N’,
’∧’,
’n’,
si,
usp,
’/’,
’?’,
’O’,
’ ’,
’o’,
’p’, ’q’, ’r’, ’s’, ’t’, ’u’, ’v’, ’w’, ’x’, ’y’, ’z’, ’{’, ’| ’, ’}’, ’∼’, del,
. . . );
type
-- 128 additional characters (ISP 8859 Latin-1)
STRING
is array(POSITIVE range <>) of
CHARACTER;
(POSITIVE range <>) ⇒ 1 ≤ idx ≤ INTEGER’HIGH
Ä, Ö, Ü und ß selbst in Kommentaren
unzulässig
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 49/105
2. Modelle & Simulation
1. Signale, Datentypen
Die Zeit hat einen eigenen Typ
type TIME is range Minimalwert to Maximalwert
units fs;
ps = 1000 fs;
us = 1000 ps;
ms = 1000 us;
sec = 1000 ms;
min =
60 sec; hr =
60 min;
end units;
Untertyp für positive Zeiten:
subtype DELAY LENGTH is TIME range 0 fs to TIME’HIGH;
signal x, y: STD LOGIC VECTOR(3 downto 0);
constant td: DELAY LENGTH := 2 ns;
...
y <= x after td;
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 50/105
2. Modelle & Simulation
2. Signalflussplan
Signalflussplan
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 51/105
2. Modelle & Simulation
2. Signalflussplan
Schaltungsbeschreibung durch einen
Signalflussplan
Strukturbeschreibung / Graphendarstellung
Teilsysteme ⇒ Knoten
Signale ⇒ Kanten, gerichtet vom Sender zum Empfänger
x1
x2
x3
x4
G1
z
& 1
G2
z
& 2
G3
≥1
y
Signal
Verarbeitungsbaustein
mit Anschlüssen
Symbol für die Funktion
vorerst Beschränkung auf kombinatorische Schaltungen:
Bausteine ohne Speicherverhalten
gerichteter azyklischer (schleifenfreier) Signalfluss
Signale haben einen Bezeichner und einen Typ
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 52/105
2. Modelle & Simulation
2. Signalflussplan
Logische Grundbausteine
logische Funktion
Treiber (Identität):
y <= x
Symbol
x
logische Funktion
Symbol
y
Inverter:
y <= x̄
x
NAND:
y <= x0 ∧ x1 ∧ . . .
x0
xn−1
..
.
&
y
x0
xn−1
..
.
≥1
y
x0
XOR:
y <= x0 ⊕ x1 ⊕ . . . xn−1
..
.
=1
y
0
1
y
UND:
y <= x0 ∧ x1 ∧ . . .
ODER:
y <= x0 ∨ x1 ∨ . . .
Multiplexer:
wenn s = 0
dann y <= x0
sonst y <= x1
x0
x1
NOR:
y <= x0 ∨ x1 ∨ . . .
x0
xn−1
..
.
&
y
x0
xn−1
..
.
≥1
y
..
. ==
y
XNOR:
x0
y <= x0 ⊕ x1 ⊕ . . . xn−1
allg. Funktion:
y <= f (x)
y
..
.
xn−1
x0
f ()
.. y0
. ym−1
BIT
oder
s
generische Modelle mit n als Parameter; Anschlusstyp
STD LOGIC; links Eingänge rechts Ausgänge
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 53/105
2. Modelle & Simulation
2. Signalflussplan
Signalflusspläne auf der Funktionsblockebene
···
x1...5
x2...6
f (x)
x
···
x6,7
y
y1...4
4
y5...8
4
0
x7
1
4
z
···
number of bits
multiplexer
combinatorial circuit
diversification of a signal vector
aggregation of a signal vector
Zusammenfassung von Bits zu Bussen; Typ BIT VECTOR,
später auch weiter Typen
Teilschaltungen mit Funktions- oder Strukturbeschreibung
in bitorientierte Signalflusspläne auflösbar
oft nur halbformal oder informal (Skizze von Teilaspekten)
STD LOGIC VECTOR,
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 54/105
2. Modelle & Simulation
3. Imperative Modelle
Imperative Modelle
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 55/105
2. Modelle & Simulation
3. Imperative Modelle
Imperative Funktionsmodelle
Die Funktion der Teilschaltungen wird imperativ beschrieben; als
normales Programm für einen normalen Rechner; wie normale
Programm testbar. Testrahmen zum Experimentieren:
--- Vorspann
library IEEE;
use IEEE.STD LOGIC 1164.all;
library Tuc;
use Tuc.Ausgabe.all;
--- leere Schnittstelle
entity test is end entity;
...
Package IEEE.STD LOGIC 1164 stellt Typen und Operationen
für STD LOGIC[ VECTOR] bereit
Package Tuc.Ausgabe enthält Typen + Unterprogramme
zur Textausgabe
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 56/105
2. Modelle & Simulation
3. Imperative Modelle
architecture a of test is
--- Vereinbarungsteil der Entwurfseinheit
Signalvereinbarungen
begin
process
--- Vereinbarungsteil Prozess
Variablenvereinbarungen
begin
--- Anweisungsteil Prozess
zu testende Anweisungen
wait; --- beendet Simulation
end process;
end architecture;
--- Vereinbarungsteil Prozess
variable a, b:
STD LOGIC;
--- Anweisungsteil Prozess
a := ’1’; b:=’X’;
write("a and b:" & str(a and b));
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 57/105
2. Modelle & Simulation
3. Imperative Modelle
a :=’1’; b :=’X’;
Wertzuweisungen an Variablen
write(Text );
Ausgabe auf dem Standardterminal
”a and b:”
konstante Zeichenkette
Text1 & Text2
Verkettung zweier Zeichenketten
str(Ausdruck )
Umwandlung des Ausdrucks in eine
Textdarstellung
Auf den Folien stehen im Weiteren nur die Vereinbarungen und
Anweisungen; Download der kompletten Programme +
Download-Link für Simulator + Hilfe zum Übersetzen und
Ausführen:
http://techwww.in.tu-clausthal.de/
site/Lehre/VHDL-Web-Projekte/
Simulator: freie Software und auch im Übungsraum installiert.
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 58/105
2. Modelle & Simulation
3. Imperative Modelle
Definition von Datenobjekten und Zuweisungen
constant Bezeichner –,Bezeichner ˝: Typ [:=aw ];
variable Bezeichner –,Bezeichner ˝: Typ [:=aw ];
signal Bezeichner –,Bezeichner ˝: Typ [:=aw ];
aw – Anfangswert; ohne Angabe erster Wert der Typendefinition
BIT
STD LOGIC
BOOLEAN
INTEGER
NATURAL
POSITIVE
’0’
’U’
FALSE
INTEGER’LOW
0
1
signal i: INTEGER;
signal b: STD LOGIC;
signal p: POSITIVE;
...
write(”i=” & str(i) & ” b=” & str(b) & ” p=” & str(p));
Was wird ausgegeben?
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 59/105
2. Modelle & Simulation
3. Imperative Modelle
die Indexbereich von Bitvektoren kann absteigend oder
aufsteigend vereinbart werden
Elementezuordnung bei Wertezuweisungen von links nach
rechts
signal s: STD LOGIC VECTOR(0 to 3)
:= "1100";
signal f: STD LOGIC VECTOR(3 downto 0) := "1100";
Vektorelement
s(0)
s(1)
s(2)
s(3)
f(3)
f(2)
f(1)
f(0)
Anfangswert
1
1
0
0
1
1
0
0
Ohne Anfangswertangabe Elementeinitialisierung mit
Standardwerten
signal slv: STD LOGIC VECTOR(3 downto 0);
...
write(”slv=” & str(slv)); --- Was wird ausgegeben?
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 60/105
2. Modelle & Simulation
3. Imperative Modelle
Variablenzuweisungen und Ausdrücke
Variablenname := Ausdruck;
Ein Ausdruck ist eine Textbeschreibung für einen baumartigen
Berechnungsfluss:
(logischer Ausdruck)
Variable
v1
Konstante
0
v2 . . .
1
Signal
s1
s2 . . .
( ⋄ )
( ∨ )
( ∧ )
x1
x3
( ⊕ )
1
( ⋄ )
mit ⋄ ∈ {∧, ∨, ⊕}
( ∧ )
x2
ein- oder zweistellige
logische Funktion
⇒
(x̄1 ∧ x2 ) ∨ (x̄3 ∧ (1 ⊕ x4 ))
x4
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 61/105
2. Modelle & Simulation
x2 x1
0 0
0 1
1 0
1 1
VHDLSchlüsselwort
3. Imperative Modelle
Inverter UND NAND ODER NOR XOR
XNOR
x1 ∧ x2 x1 ∧ x2 x1 ∨ x2 x1 ∨ x2 x1 ⊕ x2 x1 ⊕ x2
x̄1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
1
not
and
nand
or
nor
xor
xnor
not hat Vorrang
2-stellige VHDL-Operatoren sind gleichberechtigt
bei unterschiedlichen Operatoren Ausführungsreihenfolge
mit Klammern festlegen
Was wird ausgegeben?
write(str((TRUE or FALSE) and TRUE)); --- TRUE
write(str(FALSE or (FALSE and TRUE))); --- FALSE
write(str(TRUE or FALSE and TRUE));
--- Fehler
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 62/105
2. Modelle & Simulation
3. Imperative Modelle
Verarbeitung ungültiger Bitwerte
type STD LOGIC is (’U’, ’X’, ’0’, ’1’, ...)
ungültig (X): Wert kann
Simulationsregeln:
X=X
0
oder
1
X∧0=0
X∨0=X
X∧X=X
X∨X=X
X∧1=X
X∨1=1
sein
X⊕0=X
X⊕1=X
X⊕X=X
variable x: STD LOGIC VECTOR(3 downto 0);
variable y: STD LOGIC;
...
x := ”1001”; y := (x(3) and x(2)) or (x(1) and x(0));
x := ”10X1”; y := (x(3) and x(2)) or (x(1) and x(0));
x := ”X011”; y := (x(3) and x(2)) or (x(1) and x(0));
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 63/105
2. Modelle & Simulation
3. Imperative Modelle
Ausdruck ⇔ Berechnungsfluss ⇔ Signalfluss
Ausdruck
(x̄1 ∧ x2 ) ∨ (
x̄3 ∧ (1 ⊕ x4 ))
Berechnungsbaum
Signalflussgraph
( ∨ )
( ∧ )
( ∧ )
x2
x1
x3
( ⊕ )
1
x4
Ergebnisweitergabe
Operation
x1
x2
x3
1
x4
&
=1
≥1
&
Signale
Verarbeitungselement
formal ineinander umrechenbare Beschreibungsformen
typ. Entwurfsablauf für kombinatorische Schaltungen
Funktionsdefinition als simulierbarer Berechnungsfluss
Optimierung als logische Ausdrücke
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 64/105
2. Modelle & Simulation
3. Imperative Modelle
Optimierung durch Konstantenelimination
Operationen mit Konstanten durch Ergebnis ersetzen
Beschreibungsebene
logische Ausdrücke
((((x1 ∧ 0) ∧ x2 ) ∨ x3 ) ⊕ 1) = (((0 ∧ x2 ) ∨ x3 ) ⊕ 1)
= ((0 ∨ x3 ) ⊕ 1) = (x3 ⊕ 1) = x̄3
Beschreibungsebene
Signalfluss/Schaltung
x1 ∧ 0 → 0
x2 ∧ 0 → 0
x3 ∨ 0 → x3
x3 ⊕ 1 → x̄3
0
0
&
0
&
x
x1
≥1 3
x̄
=1 3 y
x2
x3
1
vereinfachte
Schaltung
x3
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
y
8. Mai 2012 65/105
2. Modelle & Simulation
3. Imperative Modelle
Optimierung durch Verschmelzung
mehrfach benötigte Teilergebnisse nur einmal zu berechnen
Beschreibungsebene
logische Ausdrücke
y1 := x3 x2 x1 ∨ (x4 ⊕ x2 x1 )
y2 := x5 x4 ∨ x2 x1
Beschreibungsebene
x3
&
x1
x2
&
&
x4
x5
G1a
&
G1
G3
=1
G1b
G4
&
G2
G5
≥1
G6
≥1
Signalfluss/Schaltung
x3
y1
y2
x1
x2
x4
x5
G1
z
&
&
=1
&
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
G2
G3
G4
G5
≥1
y1
G6
≥1
y2
saved gates
8. Mai 2012 66/105
2. Modelle & Simulation
3. Imperative Modelle
Signalzuweisung
einem Signal werden Werte-Zeit-Tupel zugewiesen
Signalname <= [VM ] Ausdruck [after td ]
–, Ausdruck [after td ]˝;
VM -- Verzögerungsmodell; Ausdruck -- Ausdruck
Wert; td -- Ausdruck Verzögerungszeit
signal y: std logic;
...
y <= ’1’ after 1 ns, ’0’ after 2 ns, ’1’ after 3 ns;
Visualisierung:
ghdl -r Signal1 --wave=Signalverlauf.ghw
gtkwave Signalverlauf.ghw [gtkwave setup.sav]
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 67/105
2. Modelle & Simulation
3. Imperative Modelle
Warteanweisungen und Weckbedingungen
Eine Warteanweisung legt den Prozess, bis die Weckbedingung
erfüllt ist, schlafen. Weckbedingungen:
die Änderung eines Signals aus einer Weckliste
wait on Weckliste ;
das Weiterrücken der Simulationszeit um eine
Verzögerungszeit
wait for Verzögerungszeit ;
eine beliebige Bedingung, die Signalwerte oder die
Simulationszeit auswerten:
wait until Bedingung ;
Zuweisungszeitpunkt einer Änderung: NOW + td
(NOW – aktuelle Simulationszeit; td – Verzögerungszeit)
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 68/105
2. Modelle & Simulation
3. Imperative Modelle
signal n: NATURAL;
...
Z1: n <= n+1 after 1 ns, n+2 after 2 ns;
write("A1:" & str(now)&’:’&str(n));
wait on n;
write("A2:" & str(NOW)&’:’&str(n));
wait on n;
write("A3:" & str(NOW)&’:’&str(n));
wait for 0.5 ns; write("A4:" & str(NOW)&’:’&str(n));
Z2: n <= n+2 after 1 ns, n+4 after 2 ns;
write("A5:" & str(NOW)&’:’&str(n));
wait on n;
write("A6:" & str(NOW)&’:’&str(n));
wait on n;
write("A7:" & str(NOW)&’:’&str(n));
Zuweisung
Z1
A1
Ausgabewert von n 0
Z2
A2
A3
A4/5
A6
A7
1
2
2
4
6
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 69/105
2. Modelle & Simulation
3. Imperative Modelle
Summary
Testrahmenschablone für einzelne Anweisungen;
Testausgaben
write(Text & str(Datenobjekt ) & ...);
Datenobjekte: Konstanten, Variablen und Signale;
Vereinbarung:
Objekttyp Bezeichner –,Bezeichner ˝: Typ [:=aw ];
Variablenzuweisung/Ausdrücke:
Variablenname := Ausdruck ;
logische Ausdrücke ⇔ Berechnungsfluss ⇔ Signalfluss
Signalzuweisungen
Signalname <= [VM ] Ausdruck [after td ]
wait on/for/until Weckbedingung
viel komplizierter als die Beschreibung von Funktionen mit
einem sequentiellen Berechnungsfluss
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 70/105
2. Modelle & Simulation
4. Event Driven Sim
Event Driven Sim
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 71/105
2. Modelle & Simulation
4. Event Driven Sim
Event Driven Simulation
Each subcircuit monitors permanently it’s input signals
In case of transition the new output values are calculated
and delayed assigned
Output transitions Ausgabeänderungen trigger new
calculation in subsequent circuits
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 72/105
2. Modelle & Simulation
4. Event Driven Sim
Simulation model of a subcircuit
x
PV
f (. . .)
y
PV
y <= f(x);
wait ...
a)
wait on (x);
b)
initialisation of a
process variable
sequence of
statements
wait ... wait statement
infinite loop:
calculation of output values out of the input values
delayed assignment to the output signal
wait for an input transition
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 73/105
2. Modelle & Simulation
4. Event Driven Sim
Example
signal x: STD LOGIC VECTOR(5 downto 0);
signal y: STD LOGIC VECTOR(2 downto 0);
constant td: DELAY LENGTH := 1 ns;
...
td
process
6
3
x
f (x)
y
begin
y <= f(x) after td;
x
w1
w2
wait on x;
end process;
y
f (w1)
f (w2)
td
t
f(x) function /algorithm to calculate the output: expression,
multiple statements, subroutine, ...
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 74/105
2. Modelle & Simulation
4. Event Driven Sim
Circuit of three Gates
one process per gate
+ input process
entity SimModell is
end entity;
td = 1 ns
x1
x2
&
z1
t = 2 ns
G1 d
td = 1 ns
x3
x4
&
z2
G2
≥1
y
G3
architecture Sim of SimModell is
signal x1, x2, x3, x4, z1, z2, y: STD LOGIC:=’0’;
begin
--- Simulation G1
G1: process
begin
z1<=x1 and x2 after 1 ns;
wait on x1, x2;
end process;
--- Simulation G2
G2: process
begin
z2<=x3 and x4 after 1 ns;
wait on x3, x4;
end process;
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 75/105
2. Modelle & Simulation
--- Simulation G3
G3: process
begin
y<=z1 or z2 after 2 ns;
wait on z1, z2;
end process;
4. Event Driven Sim
td = 1 ns
x1
x2
&
z1
t = 2 ns
G1 d
td = 1 ns
x3
x4
&
z2
G2
≥1
y
G3
--- Eingabeprozess
Input Process: process
begin
wait for 1 ns; x3 <= ’1’;
wait for 2 ns; x1 <= ’1’; x4 <= ’1’;
...
wait;
end process;
end architecture;
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 76/105
2. Modelle & Simulation
4. Event Driven Sim
Simulation of the example
tsim
0
0
0
0
1
signal assignment
ns
G1
z1 ⇐ 0 ∧ 0 nach 1 ns
ns
G2
z2 ⇐ 0 ∧ 0 nach 1 ns
ns
G3
y ⇐ 0 ∨ 0 nach 2 ns
ns Eingabe
ns
E
x3 ⇐ 1
1 ns
3 ns
3
3
4
6
process
ns
ns
ns
ns
G2
E
G1
G2
G3
···
z2 ⇐ 1 ∧ 0 nach 1 ns
x1 ⇐ 1
x4 ⇐ 1
z1 ⇐ 1 ∧ 0 nach 1 ns
z2 ⇐ 1 ∧ 1 nach 1 ns
y ⇐ 0 ∨ 1 nach 2 ns
···
initialisation
scheduled
transactions
@1 ns: E
@1 ns: x3 → 1
+ @3 ns: E
@3 ns: E
@3 ns: x1 → 1
@3 ns: x1 → 1
+ @3 ns: x4 → 1
@3 ns: x4 → 1
@4 ns: z2 → 1
@6 ns: y → 1
···
no sheduled transaction
signal value
x4 x3 x2 x1 z2 z1
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
1 ns
y
0
0
0
0
0 1 0 0 0 0 0
0 1 0 0 0 0 0
0 1 0 1 0 0 0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
E input process
x1
x2
&
1 ns
x3
x4
x1
1
0
x2
1
0
z1
1
0
x3
1
0
x4
1
0
z2
1
0
y
1
0
&
z1
G1
2 ns
≥1
z2
G2
y
G3
1 ns
1 ns
2 ns
0
5
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
10
15
t in ns
8. Mai 2012 77/105
2. Modelle & Simulation
simulation result
1 ns
x1
x2
&
z1
G1
1 ns
x3
x4
z2
&
G2
2 ns
≥1
G3
x1
1
0
x2
1
0
x1 ∧ x2
1
0
z1
1
0
x3
1
0
x4
1
0
x3 ∧ x4
1
0
z2
1
0
z1 ∨ z2
1
0
y
4. Event Driven Sim
1 ns
1 ns
y
1
0
2 ns
0
5
10
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
15
t in ns
8. Mai 2012 78/105
2. Modelle & Simulation
4. Event Driven Sim
Abbreviated form
Process with only one wait statement on signal transitions
G1: process
begin
z1<=x1 and x2 after 1 ns;
wait on x1, x2;
end process;
⇒ abbriviated form: process with senstitivity list
G1kurz: process (x1, x2)
begin
z1<=x1 and x2 after 1 ns;
end process;
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 79/105
2. Modelle & Simulation
4. Event Driven Sim
all input signals in the sensitive list
⇒combinatorial process (process to describe a combinatorial
circuit)
combinatorial process with only one signal assignment
⇒ abbriviated notation
z1<=x1 and x2 after 1 ns;
the abbriviated notation avoids
error missing wait statement
error forgotten signal in the sensitivity list
What effect have those errors? Why difficuilt to detect?
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 80/105
2. Modelle & Simulation
4. Event Driven Sim
Example description with concurrenttd = 1 ns
x1
z1
signal assignments
&
x2
G1
td = 1 ns
entity SimModel is
end entity;
x3
x4
&
z2
G2
td = 2 ns
≥1
y
G3
architecture ConcSigAssign SimModel is
signal x1, x2, x3, x4, z1, z2, y: STD LOGIC := ’0’;
begin
--- Schaltung
G1:z1<=x1 and x2 after 1 ns;
G2:z2<=x3 and x4 after 1 ns;
G3: y<=z1 or z2 after 2 ns;
--- Eingabeprozess
Input Process: process
begin
wait for 1 ns; x3<=’1’;
wait for 2 ns;
x1<=’1’; x4<=’1’;
...
wait;
end process;
end architecture;
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 81/105
2. Modelle & Simulation
4. Event Driven Sim
Summary
The temporal flow is modeled by signal assigments and wait
statements
The functional model of a combinatorial circuit ist a
process, which calculates the values of the output signals out
of the values of the input signals, assigns them delayed,
sleeps till the next transition of an input signal and repeats
the all after waking up.
one process per subcircuit + one process to provide the
input signals + ...
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 82/105
2. Modelle & Simulation
5. Structural description
Structural description
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 83/105
2. Modelle & Simulation
5. Structural description
Structural description
test bench
x1
x2
x3
x4
a Name: G1
b Type: Und
a Name: G2
b Type: Und
c
c
z1
Name: TObj
Type: G2u1o
a Name: G3
c
b Type: Oder
y
z2
process to generate test input and check test output
graphical presentation: data flow plan
representation in the computer: list of subciruits, in witch to
each pin a signal is assigned
testbench: often a structural description with a device under
test and test circuitry
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 84/105
2. Modelle & Simulation
5. Structural description
Entity declaration
entity circuit is
[generic (liste of configuration parameter s);]
[port (pin list )];
end entity;
pin list: comma-separated list of signals + flow direction +
data type:
signal –,signal ˝:direction data type
[:=default value ]
signal flow direction:
in
Input
out
Output
inout In- and Output
buffer Output with value can be read back
default value: initial value, if no other value is assigned
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 85/105
2. Modelle & Simulation
5. Structural description
Description of a single AND-Gate
td
--- Schnittstellenvereinbarung
entity And2 is
generic(td: DELAY LENGTH:=0 ns);
port(a, b: in STD LOGIC;
c: out STD LOGIC);
end entity;
a
c
&
c
a 10
b 10
c 10
td
--- Beschreibungsversion mit Verzögerungszeit
architecture with td of And2 is
begin
c <= a and b after td;
end architecture;
--- Beschreibungsversion ohne Verzögerung
architecture without td of And2 is
begin
c <= a and b;
end architecture;
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 86/105
2. Modelle & Simulation
5. Structural description
Subcircuit instance
Syntax for a subcircuit entity:
[subcircuit name:] entity [Library .]
entity name [(description name )]
[generic map(allocation map parameters )]
port map(allocation map interface signals );
Allocation list:
mapping by name:namensbasiert: comma-separated list of
Tupels object to be assigned => assigned object mapping by position: comma-separated list of the assigned
objects
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 87/105
2. Modelle & Simulation
Struktural description
of the 3-gate-circuit
Schnittstellenvereinbarung:
5. Structural description
Entwurfseinheit: G2u1o
x1
x2
x3
x4
G1
z1
&
G2
&
entity G3E is
port(x1, x2, x3, x4: in STD LOGIC;
y: out STD LOGIC);
end entity;
z2
G3
≥1
y
architecture Struktur of G3E is
--- Vereinbarung der interenen Signale
signal z1, z2:
begin
STD LOGIC;
--- Instanziierung und Verbindung der Gatter
...
end architecture;
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 88/105
2. Modelle & Simulation
5. Structural description
--- Instanziierung und Verbindung der Gatter
G1: entity WORK.Und2(mit td)
generic map(1 ns)(1)
port map(x1, x2, z1)(1) ;
x1
x2
x3
x4
G1
z1
&
G3
≥1
G2
z2
&
y
G2: entity WORK.Und2(mit td)
generic map(td => 1 ns)(2)
port map(a=>x3, b=>x4, c=>z2)(2) ;
G3: entity WORK.Oder2(mit td)
generic map(td => 2 ns)(2)
port map(a=>z1, b=>z2, c=>y)(2) ;
end architecture;
⇒WEB-Projekt: G3/G3 Struk
(1)
(2)
positionsbasierte Zuordnung (kurz, fehlerträchtig)
namensbasierte Zuordnung (länger, verständlicher)
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 89/105
2. Modelle & Simulation
5. Structural description
Instanzbildung mit Platzhaltern
Der Design-Wizard von ise empfiehlt die ältere,
umständlichere Art der Instanziierung:
[Teilschaltungsname:] [component] Entwurfseinheit
[generic map(Zuordnung sliste Parameter)]
port map(Zuordnung sliste Anschlüsse );
erfordert eine zusätzliche Deklaration der Schnittstelle als
Komponente (in einem Package oder im Deklarationsteil der
Entwurfseinheit)
component Entwurfseinheit is
[generic (Liste der Konfigurationsparameter );]
[port (Anschlussliste )];
end [component][Entwurfseinheit ];
(Kopie der Schnittstellenbeschreibung und Ersatz von
entity durch component)
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 90/105
2. Modelle & Simulation
5. Structural description
Zuordnung von Entwurfseinheiten und Entwurfsbeschreibungen
zu Komponenteninstanzen:
implizit: gleichnamige Entwurfseinheit mit derselben
Schnittstelle, die zuletzt analysiert wurde mit der zuletzt
analysierten Beschreibung
explizit: Zuordnung in einer zusätzlichen
Konfigurationsbeschreibung (wird in der Vorlesung nicht
verwendet)
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 91/105
2. Modelle & Simulation
5. Structural description
Testrahmen
Testrahmen: oberste Hierarchieebene; keine Anschlüsse;
Testobjekt als Instanz; zusätzliche Prozesse zur
Testdurchführung
test bench
e1
x1 a name: G1
e2
x2 b type: Und2
e3
e4
x3
x4
a name: G2
b type: Und2
c
c
z1
Name: TObj
Typ: G3E
a name: G3
c
b type: Oder2
y
a
z2
processes to generate input and check output signals
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 92/105
2. Modelle & Simulation
5. Structural description
e1
entity Test G3E is
end entity;
e2
architecture a of Test G3E is
signal e1,e2,e3,e4,a: STD LOGIC;
begin
TObj: entity WORK.G3E(Struktur)
port map(x1=>e1, x2=>e2, x3=>e3,
x4=>e4, y=>a);
Eingabe: process
begin
wait for 1 ns;
wait for 2 ns;
...
wait;
end process;
e3
e4
x1
name: TObj
typ1: G3E
x2
y
x3
a
x4
test input and
test output
e3<=’1’;
--- 1 ns
e1<=’1’; e4<=’1’; --- 3 ns
⇒WEB-Projekt: G3/Test G3E
Analyse mit ghdl -a Test G3E.vhdl löst Hierarchie auf.
Ergebnis 4-Prozess-Simulationsmodell wie bereits behandelt.
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 93/105
2. Modelle & Simulation
5. Structural description
Zusammenfassung
Zur hierarchischen Strukturierung werden die Prozesse zu
Entwurfseinheit zusammengefasst, mit Schnittstellen
versehen und in übergeordnete Entwurfseinheiten als
Instanzen eingebunden.
Die oberste Ebene in der Beschreibungshierarchie eines
Simulationsmodells ist der Testrahmen, eine Entwurfseinheit
ohne Anschlüsse.
Bei der Schaltungsanalyse vor der Simulation wird die
Hierarchie wieder in einzelne über Signale kommunizierende
Prozesse – das eigentliche Simulationsmodell – aufgelöst.
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 94/105
2. Modelle & Simulation
6. Aufgaben
Aufgaben
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 95/105
2. Modelle & Simulation
6. Aufgaben
Aufgabe 1.2: Signalverlauf
ϕ(b0 )
ϕ(b1 )
ϕ(b2 )
ϕ(b3 )
b = b3 b 2 b 1 b 0
0001
– gesucht –
t
In welchen Zeitbereichen ist der Signalvektor ungültig?
Welchen Wert hat er in den Gültigkeitsfenstern?
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 96/105
2. Modelle & Simulation
6. Aufgaben
Aufgabe 1.3: Typen und Datenobjekte
Vereinbaren Sie folgende Datenobjekte:
ein Signal mit dem Typ INTEGER und dem Anfangswert
30
eine Konstante vom Typ BOOLEAN und dem Anfangswert
TRUE
eine Bitvektorvariable vom STD LOGIC VECTOR, Indexbereich
von 3 bis 0 absteigend und dem Anfangswert alles null.
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 97/105
2. Modelle & Simulation
6. Aufgaben
Aufgabe 1.4: Ausdruck ⇔ Berechnungsfluss ⇔
Signalfluss
x1 ∧ x2 ∧ x̄3 ∧ x̄1 ∧ x̄2 ∧ x̄3
Zeichnen des Berechnungsbaums unter Verwendung der einund zweistelligen logischen Operationen Invertierung, UND
und ODER.
Zeichnen Sie den Signalflussplan unter Verwendung von
Invertern sowie UND- und NAND-Gattern mit n Eingängen.
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 98/105
2. Modelle & Simulation
6. Aufgaben
Aufgabe 1.5: Signale und Variablen
Welche Werte schreiben die einzelnen Write-Anweisungen?
--- Vereinbarungsteil der Entwurfseinheit
signal a: INTEGER := 0;
--- Vereinbarungsteil des Prozesses
variable b: INTEGER := 0;
--- Anweisungsteil des Prozesses
A1: a <= a +1 after 0.5 ns; b := b+1; *
A2: wait for 1 ns; *
A3: a <= a +1 after 0.5 ns; b := b+1; *
A4: a <= a +1 after 0.5 ns; b := b+1; *
A5: wait for 1 ns; *
* write("a=" & str(a) & " b=" & str(b));
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 99/105
2. Modelle & Simulation
6. Aufgaben
Aufgabe 1.6: Bestimmung der Signalverläufe von z
und y
td = 1 ns td = 1 ns
x0
z
&
&
y
x1
x2
x0
x1
x2
z
1
0
1
0
1
0
1
0
y
1
0
0 2 4 6 8 10 12 tsim
Tabelle mit allen Änderungen
Zeitverläufe zeichnen
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 100/105
2. Modelle & Simulation
Zeit
0,0 ns
2,5 ns
3,0 ns
4,0 ns
4,5 ns
5,0 ns
7,0 ns
7,5 ns
8.0 ns
9,0 ns
10,0 ns
10,5 ns
11,0 ns
12,0 ns
13,0 ns
13,5 ns
14,5 ns
15,5 ns
16,5 ns
x2
1
x1
0
1
x0
0
z
1
6. Aufgaben
y
0
td = 1 ns td = 1 ns
x0
z
&
&
y
x1
x2
1
0
0
1
0
0
1
1
0
1
1
0
1
x0
x1
x2
z
1
0
1
0
1
0
1
0
y
1
0
0 2 4 6 8 10 12 tsim
0
1
0
0
1
Änderungspfortpflanzung
und Verzögerung um 1 ns
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 101/105
2. Modelle & Simulation
6. Aufgaben
Aufgabe 1.7: Entwurfsfehler
signal a, b, c: STD LOGIC;
...
process
begin
c <= a and b after 2 ns;
wait on a, b;
end process;
a
1
0
b
c
1
0
1
0
0 2 4 6 8 10 12 tsim
Ausgabesignalverlauf des korrekten Simulationsmodells
Ausgabesignal, wenn in der Warteanweisung das Signal b
fehlt
Was passiert, wenn die gesamte Warteanweisung fehlt?
Warum ist der Fehler schwer zu lokalisieren?
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 102/105
2. Modelle & Simulation
6. Aufgaben
Lösung
korrekte Beschreibung
a 10
b
a and b
c <= a and b after 2 ns
1
0
1
0
1
0
0 2 4 6 8 10 12 tsim
ohne Neuberechung bei Änderung von b
a 10
b
a and b
c <= a and b after 2 ns
1
0
1
0
1
0
0 2 4 6 8 10 12 tsim
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 103/105
2. Modelle & Simulation
6. Aufgaben
Aufgabe 1.8: Hierarchie auflösen, Testrahmen
Gegeben sind die Strukturbeschreibung der Gesamtschaltung
und die Funktionsbeschreibung des Teilschaltungstyps.
x1
x2
x3
G1
Gxx
a
b
c
d
x4
z
G2
Gxx
a
b
c
d
y
entity Gxx is
port(a, b, c: in STD LOGIC; d: out STD LOGIC);
end entity Gxx;
architecture Verhalten of Gxx is
begin
d<=(a and not c) or (b and c) after 1 ns;
end architecture;
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 104/105
2. Modelle & Simulation
6. Aufgaben
Gesucht:
Strukturbeschreibung der Gesamtschaltung in VHDL
Funktionsbeschreibung der Gesamtschaltung mit
nebenläufigen Signalzuweisungen
Testrahmen, der nacheinander im Abstand von 5 ns folgende
Eingabewerte an x4 . . . x1 anlegt: 0000, 0001, 0011, 0111
Prof. G. Kemnitz · Institute of Informatics, Clausthal University of Technology
8. Mai 2012 105/105
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement