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
1.2 Modelle und Entwurfsraum 1.3 Entwurfsfluss
1.4 Beschreibungssprache (VHDL) 1.5 Aufgaben
Modelle & Simulation 2.1 Signale, Datentypen 2.2 Signalflussplan 2.3 Imperative Modelle 2.4 Event Driven Sim 2.5 Structural description 2.6 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¨ ur den zweiten Teil. Lernziele: theoretisches Grundverst¨andnis und praktische Fertigkeiten f¨ ur den rechnergest¨ utzten Entwurf.
Voraussetzung imperative Programmierung (C, Pascal o.¨a.)
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¨ahlen.
Wie werden solche Schaltungen erfolgreich entworfen?
¨ahnlich wie Software:
rechnergest¨ utzt
mit einer hierarchischen Struktur aus parametrierten Bausteinen
Synthese aus einer Funktionsbeschreibung
Umgang mit der Komplexit¨ at
Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 2012 5/105
1. Entwurfsprozess 1. Umgang mit der Komplexit¨ at
Digitale Systeme sind groß
Wie kann man eine digitale Schaltung mit Millionen von Gattern so entwerfen, dass sie am Ende funktioniert?
rechnergest¨ utzt in einer Programmiersprache hierarchisch
nach formal ¨ uberpr¨ ufbaren Entwurfsregeln mit Hilfe von
Simulation
Schaltungsgenerierung
rechnergest¨ utzter Synthese und Logikoptimierung
(teil-) automatischer Platzierung und Verdrahtung
Hierarchie digitaler Systeme
&
&
&
&
&
. . .
Gatter Funktions- Funktions- Schalt- Bau- Ger¨ate gruppe
kreise einheiten
bl¨ocke
Baukastenprinzip; Bibliothek zusammenpassender Bausteine + Regeln f¨ ur den Zusammenbau; Mehrfachverwendung Entwurfskomplexit¨at 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¨ at
Parametrierte Schaltungen
Parametrierte Schaltungen werden als Datens¨atze f¨ ur Algorithmen zur Schaltungsgenerierung modelliert. Beispiele parametrierter Schaltungen:
UND-Gatter mit einem Parameter f¨ ur die Eingangsanzahl und einem Parameter f¨ ur die maximale Lastanzahl (Last – am Ausgang angeschlossene Gattereing¨ange)
Speicher unterschiedlicher Gr¨oße und Organisation (Adressbusbreite, Datenbusbreite, ...)
Rechenwerke mit variabler Operandenbreite
Minderung der Entwurfskomplexit¨at durch Verringerung der
Anzahl der zu unterscheidenden Bausteintypen; in der Vorlesung
Synthese
Synthese
OS aus vorentworfenen GS
Rohschaltung optimierte Schaltung Grundschaltung GS
RS OS
Technologieabbildung Logikoptimierung
Schaltungsgeneratoren Schaltungsteile aus
universellen TS RS aus universellen GS extrahierte GS
OS aus universellen GS
Platzierung und Verdrahtung Zielfunktion, Steuerparameter Register-Transfer-Synthese
parametrierte GS
Layout, Fertigungsdaten
Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 2012 9/105
1. Entwurfsprozess 1. Umgang mit der Komplexit¨ at 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¨ ur eine bestimmte Fertigungstechnologie
Platzierung: 2D-Anordnung der vorentworfenen Teilschaltungen
Verdrahtung: Anordnung der Verbindungen
Simulation
Simulationsmodell f¨ ur das Testobjekt:
Berechnung der Ausgabesignalverl¨aufe und der internen Signalverl¨aufe aus den Eingabesignalverl¨aufen
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 201211/105
1. Entwurfsprozess 1. Umgang mit der Komplexit¨ at
Summary
Beherrschung der Entwurfskomplexit¨at rechnergest¨ utzt
durch die Beschreibungshierarchie durch parametrierte Funktionsbausteine durch Synthese und
durch Simulation.
Modelle und Entwurfsraum
Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201213/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¨ange in
einer anschaulichen Form ohne R¨ ucksicht auf
Eindeutigkeit oder Vollst¨andigkeit (Entwurfsskizzen, Spezifikation, Lehrbuchdarstellungen)
halbformales Modell Beschreibung, aus der Fachleute in der
Regel dasselbe herauslesen (Datenbl¨atter)
Design Space
3D-Raum zur Klassifizierung der Beschreibungen (Modelle), die im Entwurfsprozess entstehen:
Hierarchieebene hervorzuhebender Sachverhalt
(Beschreibungsart)
Beschrei- bungsart
F unk ti ons - b es chr ei bung St ruk tur - b es chr ei bung geo m et ri sc he B es chr ei bung Gesamtsystem
Funktionsbl¨ ocke
Transistoren Gatter Teilsysteme
Objektraum T es t- b es chr ei bung chieebene
Hierar-
dritte Dimension: informal, halbformal, formal
Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201215/105
1. Entwurfsprozess 2. Modelle und Entwurfsraum
Beschreibungsart
y = x 1 ∨ x 2
x 1 y
x 2
Funktionsbeschreibung
Algorithmus oder Formalismus, zur Berechnung der Systemausgabe aus
den Eingaben (Gleichungssystem, Tabellen, Programm) informal: Kurzbeschreibung
halbformal: Datenblatt, Applikationsbeschreibungen
formal: Simulationsmodell
&
&
Strukturbeschreibung
Abstraktionsebene
Schaltung
Beschreibung der Zusammensetzung einer Entwurfseinheit aus Teilsystemen; hierarchisch
Basis f¨ ur einen Großteil der Schaltungsoptimierungen Durch Einsetzen der Funktionsbeschreibungen der Teilsysteme ⇒ Funktionsbeschreibung (eindeutige Abbildung)
Synthese (
Funktion ⇒ Struktur
) hat einen unbegrenzt großen L¨osungsraum; Suche mit Kostenfunktion
Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201217/105
1. Entwurfsprozess 2. Modelle und Entwurfsraum
geometrische Beschreibung
Geometrische Abmessungen der einzelnen Komponenten, ihre Anordnung in einem Ger¨at, auf einer Leiterplatte oder in einem Schaltkreis
Grundlage f¨ ur die Generierung der Fertigungsdaten Beinhaltet die Strukturbeschreibung, ist aber f¨ ur strukturbasierte Algorithmen viel zu ¨ uberladen
Jede Strukturbeschreibung kann durch unbegrenzt viele
unterschiedliche geometrische Beschreibungen nachgebildet
werden.
Eingabe Ausgabe 0010
1001
101 011 . . . . . .
Testbeschreibung
Eingabewerte, Algorithmen zur Bereitstel- lung von Eingabewerten oder Regeln f¨ ur die Auswahl von Eingabewerten
zugeh¨orige Soll-Werte, Algorithmen oder Regeln zur Kontrolle der Ausgabewerte
die Testvorbereitung, die Testdurchf¨ uhrung und die Fehlerbeseitigung verursachen immer den gr¨oßten Teil des Entwurfsaufwands
Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201219/105
1. Entwurfsprozess 3. Entwurfsfluss
Entwurfsfluss
Entwurfsfluss
Entwurfsprozesses als
F¨ ullen des Entwurfsraums
Entwurf Up-Entwurf
Fertigungsdaten Konfigurationsdaten Testdaten
Simulationsmodelle
Funktion Struktur Geometrie grob
fein
Funktionseinheiten Funktionsbl¨ ocke Gatter
Transistoren Top-Down-
Bottom-
Entwurfsbeschreibung, Randbedingungen
Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201221/105
1. Entwurfsprozess 3. Entwurfsfluss
Top-Down Entwurfsziel
L¨osungs- raum . . . . . . Entwurfsfluss von oben links nach unten rechts
Bei den nachfolgenden Abbildungen gibt es jeweils unbegrenzt viele M¨oglichkeiten:
Entwurfsziel (informal) ⇒ Entwurfsskizzen (Funktion, Struktur, ...; informal)
Entwurfsskizzen (informal) ⇒ Simulationsmodell (Funktion, Systemebene, formal)
f¨ ur alle Hierarchieebenen
Funktion ⇒ Struktur aus Teilfunktionen ( ⇒ Geometrie) Gesamtfunktion Struktur ⇒ Geometrie
Was tun, um sich nicht zu verirren?
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¨ uglich der Geschwindigkeit, des Schaltungsaufwands, des Stromverbrauchs und der Testbarkeit erf¨ ullt.
Jede Nachbesserungsiteration beinhaltet:
umfangreiche Simulationen und Analysen
die Entwicklung weiterer Simulationsbeispiele und kann Nachbesserungen auf der Ebene dr¨ uber verlangen.
Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201223/105
1. Entwurfsprozess 3. Entwurfsfluss
Bottom-Up
Basiselemente . . . . . .
L¨osungs- raum Entwurfsfluss von unten rechts nach oben links.
Ausgangspunkt: Elemente mit bekannter Funktion und bekannter Realisierung Prinzip: Zusammensetzen großer aus kleinen Funktionseinheiten
Vorteil: gute Optimierungsm¨oglichkeiten hinsichtlich der der Gr¨oß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
Mensch-Maschine-Interaktion
Randbedingungen Entwurfsbeschreibungen Testbeispiele
Entwurfsziele
Fertigungsdaten Konfigurationsdaten Dokumentationen Testdaten
Simulationsmodelle Entwurfsergebnisse:
R¨ uckmeldungen:
Fehlermeldungen Warnungen G¨ utekennzahlen Simulationsergebnisse vom Rechner erzeugte
Entwurfssystem Entwickler
Entwurfsbeschreibungen
Manuelle Beschreibungen:
Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201225/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¨atzliche Hinweise, Warnungen und Fehlermeldungen
bei unzureichendem Ergebnis ¨andert der Entwerfer die
Beschreibung und/oder die Steuerparameter der Werkzeuge
Ahnlichkeit mit einem Regelkreis mit dem Entwerfer als ¨
Regler
Entwurfsautomatisierung
Vorgabe
Geometrie Struktur Funktion Struktur
Funktion Aufgabe
Ziel
gute L¨osungen
Besch¨ankung der Dar- stellungsm¨oglichkeiten zur Automatisierung Darstellungsraum
L¨osungen (Entwurfsschritt)
viele M¨oglichkeiten
eindeutig (Probe)
L¨osungsraumbeschr¨ankung schließt auch gute L¨osungen aus Einzelergebnis im Mittel schlechter als
handoptimierte
L¨osungen
Untersuchung von viel mehr L¨osungsm¨oglichkeiten; beste L¨osung oft besser als Handentwurf
Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201227/105
1. Entwurfsprozess 3. Entwurfsfluss Synthesebasierte L¨osungssuche (¨ahnlich wie genetischer
Algorithmus):
Variation auf der Ebene der manuellen Beschreibung Kombination guter L¨osungsdetails
manuelle Nachbesserung, wenn die Automatismen keine ausreichend gute L¨osung finden.
Generelle Vorteile der Entwurfsautomatisierung:
deutlich k¨ urzere Gesamtentwurfszeiten
besser vorhersagbare G¨ ute- und Aufwandskennzahlen f¨ ur die Projekt- und Kostenplanung
eine geringere zu erwartende Anzahl von Entwurfsfehlern.
Zusammenfassung
Mega- bis Gigabyte Entwurfsdaten; 3D-Klassifikation:
informal, halbformal, formal
Gesamtsystem, Teilsysteme, Funktionsbl¨ocke, Gatter, ...
Funktion, Struktur, Geometrie und Test Bewegung im Entwurfsraum
Top-Down: von der Zielfunktion zur Schaltung
Bottom-Up: Vorratsentwicklung g¨ unstiger Schaltungen Mensch-Maschine-Kommunikation
Entwerfer sieht einen strukturierten Entwurfsraum und Tools
wendet Bearbeitungsmethoden auf Entwurfsobjekte an und kontrolliert die Ergebnisse; ¨ahnlich 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 201229/105
1. Entwurfsprozess 4. Beschreibungssprache (VHDL)
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 201231/105
1. Entwurfsprozess 4. Beschreibungssprache (VHDL) Mit VHDL werden Funktionen, Strukturen und Testabl¨aufe vom Gesamtsystem bis zum Gatterniveau beschrieben
F unk ti ons - b es chr ei bung St ruk tur - b es chr ei bung geo m et ri sc he B es chr ei bung Gesamtsystem
Funktionsbl¨ ocke
Transistoren Gatter Teilsysteme
in der Ebene Hirarchie
Beschrei- bungs- art
T es t- B es chr ei bung
·
·
· ·
¨ ublich m¨oglich +
+ +
+ +
+ +
+ + + +
+ +
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 201233/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¨ ur das Innenleben:
Einbindung von Teilschaltungen ( ⇒ Strukturbeschreibung) Prozesse: Rahmen zur Verhaltensbeschreibung mit
imperativen Mitteln ( ⇒ Funktionsbeschreibung)
Kurzschreibweisen f¨ ur Verhaltensmodelle f¨ ur
Im Weiteren verwendete Schreibweisen/Farben
key Schl¨ usselwort
[...] optionales Element, darf Null mal oder einmal enthalten sein
{ ... } optionales Element, darf beliebig oft enthalten sein ... | ... Alternative, eines der aufgez¨ahlten Elemente muss
enthalten sein
Symbol Methasymbol (Nichtterminalsymbol): Symbol das nach weiteren Regeln zu ersetzen ist.
Name, IEEE eigener Bezeichner, standardisierter Bezeichner 1,”ab”, ... Wertangaben (Zahlen, Zeichenketten, ...) --- Text Kommentar
Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201235/105
1. Entwurfsprozess 4. Beschreibungssprache (VHDL) Bezeichner sind explizit zu definieren
keine Mehrfachdefinition keine Schl¨ usselworte 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¨ urfen nicht nicht mit einem Unterstrich enden und keine zwei Unterstriche hintereinander enthalten
keine Unterscheidung zwischen Groß- und Kleinschreibung
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;
Simulationsausgabe:
HalloWelt.vhdl:7:5:@0ms:(report note): Hallo Welt
⇒WEB-Projekt: HalloWelt
Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201237/105
1. Entwurfsprozess 4. Beschreibungssprache (VHDL) Gr¨oßere Teilbeschreibungen, die keine Entwurfseinheiten sind, werden in Packages ausgelagert: Typenvereinbarungen,
Konstanten, Unterprogramme, ...
--- Definitionssteil, exportierte Vereinbarungen 1: package HalloWelt pack is
2: constant c: STRING :=”Hallo Zeichenkette”;
3: function SchreibeText(s: STRING ) return STRING ; 4: end package;
--- Beschreibung der Unterprogramme 5: package body HalloWelt pack is
6: function SchreibeText(s: STRING ) return STRING is 7: begin
8: return s;
Nutzung eines Packages
1: use WORK .HalloWelt pack.all;
2: entity HalloWelt1 is 3: end entity;
4: architecture a of HalloWelt1 is 5: begin
6: process 7: begin
8: report ”Hallo Welt”;
9: wait for 1 ns;
10: report c;
11: wait for 1 ns;
12: report SchreibeText(”Hallo Funktionsaufruf”);
13: wait;
14: end process;
15: end architecture; ⇒WEB-Projekt: HalloWelt
Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201239/105
1. Entwurfsprozess 5. Aufgaben
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 201241/105
2. Modelle & Simulation
Modelle & Simulation
Begriffe
Eine digitale Schaltung ist ein System aus signalverarbeitenden Bausteinen (Teilsystemen), die ¨ uber Signale miteinander kommunizieren. Grundbegriffe:
Kombinatorische Schaltung (engl. combinational circuit, dt.
auch Schaltnetz): Schaltung ohne Speicherverhalten;
Ausgabe nur abh¨angig von den aktuellen Eingaben Sequentielle Schaltung (engl. sequential circuit, dt. auch Schaltwerk): Schaltung mit Speicherverhalten; Ausgabe auch abh¨angig von fr¨ uheren Eingaben
Signal: zeitlicher Werteverlauf einer physikalischen Gr¨oß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 201243/105
2. Modelle & Simulation 1. Signale, Datentypen
Signale, Datentypen
Bin¨ are Signale und Datentypen
x = 1 x = X x = 0
nicht darstellbar x = 0 x = 1 Sicherheitsbereich
Signal
groß
klein ϕ(x)
x (Signal)
Quelle Empf¨ anger
u(x) = ϕ(x)
Potenzial Signalwert
erweitert bin¨ ar Signal-
wechsel St¨orung
Der Datentyp beschreibt Wertebereich [+ Wertedarstellung]
Bit: zwei Wert + ung¨ ultig 1 Logik: B L = { falsch, wahr } Digitaltechnik: B = { 0, 1 [, X] }
1
Signale d¨ urfen nur innerhalb der G¨ ultigkeitsfenster ausgewertet werden
Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201245/105
2. Modelle & Simulation 1. Signale, Datentypen
VHDL-Datentypen f¨ ur die Darstellung von Bits
In VHDL sind Bit-Typen Aufz¨ahlungstypen:
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: BOOLEAN := TRUE ; ...
b1 := b1 and b2;
Bitvektoren
signal invalid t ϕ(x
0)
x = x
1x
0ϕ(x
1) b
1b
0b
2b
3· · ·
1
· · · 1
15 1 · · · 1 · · · 0
1
14 1 1 1
1
13 1 0 0
1
12 1 0 1
1
11 1 0 1 1 0 0 1 1 0 0
10 11 11 01 00 00 10 11 01
0 1 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 n = 1
n = 2 n = 3 n = 4
2 4 N = 8
numerical value (decimal):
1 1 1 0 1 0 1 0 1 0 1
4 3 2 1
0 5 6 7 8 9 10
1 1 1 1 1 0 0 0
N = 16
a)
x
1u
x0u
x1x
b) x
0ground voltage curve . . .
n Bits ⇒ N ≤ 2 n unterscheidbare Werte
N > 2 zu unterscheidende Werte ⇒ n ≥ log 2 (N ) ein BV ist nur g¨ ultig, wenn alle Bits g¨ ultig sind
Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201247/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
Ohne Textverarbeitung geht es nicht
soh, dc1,
’1’,
’A’,
’Q’,
’a’,
’!’,
’q’,
etx, dc3
’3’,
’#’,
’C’,
’S’,
’c’,
’s’,
enq, nak,
’5’,
’%’,
’E’,
’U’,
’e’,
’u’,
bel, etb,
’7’,
’’’,
’G’,
’W’,
’g’,
’w’,
’Y’,
’I’, em, ht,
’)’,
’9’,
’i’,
’y’,
’[’,
’K’, esc, vt,
’+’,
’;’,
’k’,
’ { ’,
’]’,
’M’, gsp, cr,
’-’,
’=’,
’m’,
’ } ’,
’ ’,
’O’, usp, si,
’/’,
’?’,
’o’, del,
’X’,
’H’, can, bs,
’(’,
’8’,
’h’,
’x’, ack,
syn,
’6’,
’&’,
’F’,
’V’,
’f’,
’v’, eot,
dc4
’4’,
’$’,
’D’,
’T’,
’d’,
’t’, stx,
dc2,
’2’,
’B’,
’R’,
’b’,
’"’,
’r’, . . . );
type character is (
-- 128 additional characters (ISP 8859 Latin-1) -- 128 Zeichen des ASCII character set
nul, dle,
’0’,
’@’,
’P’,
’‘’,
’ ’,
’p’,
’ \ ’, ’ ∧ ’,
’>’,
’N’, rsp, so,
’.’,
’n’,
’ ∼ ’,
’L’, lf,
’,’,
’<’,
’ | ’,
’l’, fsp,
’Z’,
’J’, sub, lf,
’:’,
’j’,
’z’,
’*’,
type STRING is array( POSITIVE range <>) of CHARACTER ; ( POSITIVE range <>) ⇒ 1 ≤ idx ≤ INTEGER’HIGH
A ¨
,
O ¨
,
U ¨
und
ß
selbst in Kommentaren unzul¨assig
Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201249/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¨ ur positive Zeiten:
subtype DELAY LENGTH is TIME range 0 fs to TIME’HIGH ;
Signalflussplan
Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201251/105
2. Modelle & Simulation 2. Signalflussplan
Schaltungsbeschreibung durch einen Signalflussplan
Strukturbeschreibung / Graphendarstellung Teilsysteme ⇒ Knoten
Signale ⇒ Kanten, gerichtet vom Sender zum Empf¨anger
G1
&
G2
G3 z
2z
1x
2x
1x
4x
3& mit Anschl¨ Verarbeitungsbaustein ussen Signal
≥ 1 y
Symbol f¨ ur die Funktion
vorerst Beschr¨ankung auf kombinatorische Schaltungen:
Bausteine ohne Speicherverhalten
Logische Grundbausteine
f () x
n−1y <= x
0⊕ x
1⊕ . . . y <= x
wenn s = 0 Multiplexer:
sonst y <= x
1dann y <= x
0y <= x
0∨ x
1∨ . . . y <= x
0∧ x
1∧ . . .
s x
0x
1allg. Funktion:
y <= f (x) y <= x
0⊕ x
1⊕ . . . y <= x
0∨ x
1∨ . . . y <= x
0∧ x
1∧ . . .
...
...
...
... ...
...
...
...
x
0y
m−1y
0&
≥1 y x
n−1y
x
0x y
== y
x
0x
0x
n−1x
n−1XOR:
ODER:
UND:
Treiber (Identit¨at):
logische Funktion
x
0=1 x
y
y y <= ¯ x
&
≥ 1
x
0y
x
0y
XNOR:
NOR:
NAND:
Inverter:
0
1 y
Symbol
x
n−1x
n−1x
n−1logische Funktion Symbol
generische Modelle mit n als Parameter; Anschlusstyp BIT oder
STD LOGIC ; links Eing¨ange rechts Ausg¨ange
Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201253/105
2. Modelle & Simulation 2. Signalflussplan
Signalflusspl¨ ane auf der Funktionsblockebene
f (x)
0 1
multiplexer diversification of a signal vector aggregation of a signal vector x
x 7
x 6,7
y x 2...6
y 1...4
y 5...8
number of bits x 1...5
z
combinatorial circuit
4 4
4
· · ·
· · ·
· · ·
Zusammenfassung von Bits zu Bussen; Typ BIT VECTOR ,
, sp¨ater auch weiter Typen
Imperative Modelle
Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201255/105
2. Modelle & Simulation 3. Imperative Modelle
Imperative Funktionsmodelle
Die Funktion der Teilschaltungen wird imperativ beschrieben; als normales Programm f¨ ur 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 1164 stellt Typen und Operationen
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 201257/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¨ ur Simulator + Hilfe zum ¨ Ubersetzen und Ausf¨ uhren:
http://techwww.in.tu-clausthal.de/
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 201259/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) ;
Variablenzuweisungen und Ausdr¨ ucke
Variablenname := Ausdruck;
Ein Ausdruck ist eine Textbeschreibung f¨ ur einen baumartigen Berechnungsfluss:
( ⋄ ) ( ⋄ )
s 1 s 2 . . . v 1 v 2 . . .
(logischer Ausdruck)
( ⊕ )
∨ ) (
( ∧ ) ( ∧ )
x 2
x 1 x 3 1 x 4
Signal Konstante
1 0
logische Funktion ein- oder zweistellige Variable
⇒ (¯ x 1 ∧ x 2 ) ∨ (¯ x 3 ∧ (1 ⊕ x 4 )) mit ⋄ ∈ {∧ , ∨ , ⊕}
Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201261/105
2. Modelle & Simulation 3. Imperative Modelle
Schl¨ usselwort
0 0 1
1 1
1 0
0 0
0 0 1 0
1 1 1 0
1 1 1 0
0 0 1 x
10 1 x
20 0
0 1 1 1
x
1⊕ x
2x
1∧ x
2XNOR XOR
NOR ODER
x
1⊕ x
2x
1∨ x
2x
1∨ x
2x
1∧ x
2UND NAND
Inverter
¯ x
11 0
VHDL- not and nand or nor xor xnor
not
hat Vorrang
2-stellige VHDL-Operatoren sind gleichberechtigt
bei unterschiedlichen Operatoren Ausf¨ uhrungsreihenfolge mit Klammern festlegen
Was wird ausgegeben?
Verarbeitung ung¨ ultiger Bitwerte
type STD LOGIC is (’U’, ’X’, ’0’, ’1’, ...) ung¨ ultig (X): Wert kann
0
oder
1
sein Simulationsregeln:
X = X X ∧ 0 = 0 X ∨ 0 = X X ⊕ 0 = X X ∧ 1 = X X ∨ 1 = 1 X ⊕ 1 = X X ∧ X = X X ∨ X = 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 201263/105
2. Modelle & Simulation 3. Imperative Modelle
Ausdruck ⇔ Berechnungsfluss ⇔ Signalfluss
Ergebnisweitergabe
Operation Verarbeitungselement
Signale ( ⊕ )
∨ ) (
( ∧ ) ( ∧ )
Berechnungsbaum
x 2
x 3
1 x 4
x 1
=1
&
≥ 1
&
x 2
x 1 x 3 1 x 4
Signalflussgraph Ausdruck
(¯ x 1 ∧ x 2 ) ∨ (
¯
x 3 ∧ (1 ⊕ x 4 ))
formal ineinander umrechenbare Beschreibungsformen
typ. Entwurfsablauf f¨ ur kombinatorische Schaltungen
Optimierung durch Konstantenelimination
Operationen mit Konstanten durch Ergebnis ersetzen Beschreibungsebene
logische Ausdr¨ ucke
((((x 1 ∧ 0) ∧ x 2 ) ∨ x 3 ) ⊕ 1) = (((0 ∧ x 2 ) ∨ x 3 ) ⊕ 1)
= ((0 ∨ x 3 ) ⊕ 1) = (x 3 ⊕ 1) = ¯ x 3 Beschreibungsebene
Signalfluss/Schaltung
& &
≥ 1
x 3 y
=1 x 1
0 0
0 x 3 x ¯ 3 y x 3 1
x 2
x 3 ⊕ 1 → x ¯ 3
x 3 ∨ 0 → x 3
x 2 ∧ 0 → 0
x 1 ∧ 0 → 0 vereinfachte
Schaltung
Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201265/105
2. Modelle & Simulation 3. Imperative Modelle
Optimierung durch Verschmelzung
mehrfach ben¨otigte Teilergebnisse nur einmal zu berechnen Beschreibungsebene
logische Ausdr¨ ucke
y 1 := x 3 x 2 x 1 ∨ (x 4 ⊕ x 2 x 1 ) y 2 := x 5 x 4 ∨ x 2 x 1
Beschreibungsebene
Signalfluss/Schaltung
G5 y
1G6 G1
G3 x
3G2
x
1x
2G5 G3
G2
y
1G1
x
3G1a x
1x = 1
z
&
& ≥ 1
= 1
≥ 1
&
&
&
Signalzuweisung
einem Signal werden Werte-Zeit-Tupel zugewiesen Signalname <= [VM ] Ausdruck [after td ]
–, Ausdruck [after td ]˝;
VM -- Verz¨ ogerungsmodell; Ausdruck -- Ausdruck Wert; td -- Ausdruck Verz¨ ogerungszeit
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 201267/105
2. Modelle & Simulation 3. Imperative Modelle
Warteanweisungen und Weckbedingungen
Eine Warteanweisung legt den Prozess, bis die Weckbedingung erf¨ ullt ist, schlafen. Weckbedingungen:
die ¨ Anderung eines Signals aus einer Weckliste wait on Weckliste ;
das Weiterr¨ ucken der Simulationszeit um eine Verz¨ogerungszeit
wait for Verz¨ ogerungszeit ;
eine beliebige Bedingung, die Signalwerte oder die Simulationszeit auswerten:
wait until Bedingung ;
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));
Ausgabe- wert von n
A1 0
A2 A3 A4/5 A6 A7
1 2 2 4 6
Zuweisung Z1 Z2
Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201269/105
2. Modelle & Simulation 3. Imperative Modelle
Summary
Testrahmenschablone f¨ ur einzelne Anweisungen;
Testausgaben
write(Text & str(Datenobjekt ) & ...);
Datenobjekte: Konstanten, Variablen und Signale;
Vereinbarung:
Objekttyp Bezeichner –,Bezeichner ˝: Typ [:=aw ];
Variablenzuweisung/Ausdr¨ ucke:
Variablenname := Ausdruck ;
logische Ausdr¨ ucke ⇔ Berechnungsfluss ⇔ Signalfluss Signalzuweisungen
<= [VM ] [after ]
Event Driven Sim
Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201271/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¨anderungen trigger new
calculation in subsequent circuits
Simulation model of a subcircuit
PV x f(. . .) y
wait ... a)
PV
wait statement statements sequence of process variable initialisation of a
wait ...
b) y <= f(x);
wait on (x);
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 201273/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;
...
process begin
y <= f(x) after td;
wait on x;
end process;
t d
f (x) y
x 6 3
y f (w2)
w1 w2
x
t d t
f (w1)
Circuit of three Gates
one process per gate + input process
t
d= 1 ns
t
d= 1 ns
t
d= 2 ns
&
G1
G2 G3 z
1z
2&
x
4x
3x
2x
1≥ 1 y entity SimModell is
end entity;
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 201275/105
2. Modelle & Simulation 4. Event Driven Sim
t
d= 1 ns
t
d= 1 ns
t
d= 2 ns
&
G1
G2 G3 z
1z
2&
x
4x
3x
2x
1≥ 1 y
--- Simulation G3 G3: process
begin
y<=z1 or z2 after 2 ns;
wait on z1, z2;
end process;
--- Eingabeprozess Input Process: process
begin
wait for 1 ns; x3 <= ’1’;
wait for 2 ns; x1 <= ’1’; x4 <= ’1’;
...
wait;
Simulation of the example
initialisation no sheduled transaction
signal value 1 ns
1 ns 2 ns
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
010 0 0 0 0 010 0 0 0 0
0 0 0 0
1
1 1
0 0 0 0
1
1 1
0 0 0 0
1
1 1
0 0 0 0 0 0 0
0 ns Eingabe 1 ns 0 ns G3 0 ns G2
z2⇐1∧0 nach 1 ns 1 ns
3 ns
3 ns 3 ns 4 ns
010 1 0 0 0
0 0 0
1
1 1
0 0
1
1 1
1
1 1
6 ns
transactions G1
0 ns
scheduled
≥1
& z1
x2 G1 x1
& z2
x4 G2 x3
y G3
y x4
x3
z2
z1
x2
x1
x3⇐1 @1 ns:x3→1 E
y ⇐0∨0 nach 2 ns z2⇐0∧0 nach 1 ns
@1 ns: E + @3 ns: E G2
E x1⇐1 x4⇐1
@3 ns:x1→1
G1 z1⇐1∧0 nach 1 ns @3 ns:x4→1 G2 z2⇐1∧1 nach 1 ns @4 ns:z2→1 + @3 ns:x4→1
@3 ns:x1→1
G3 y ⇐0∨1 nach 2 ns @6 ns:y→1
· · · ·
@3 ns: E
input process E
z1⇐0∧0 nach 1 ns
tsim process signal assignment x4x3x2x1z2z1 y
0 1
tin ns
5 10 15
0
0 1
0 1
0 1 0 1 0 1 0 1
1 ns
2 ns 1 ns
Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201277/105
2. Modelle & Simulation 4. Event Driven Sim simulation result
1 ns
1 ns
& 2 ns
&
x 4
x 3 x 2
x 1
≥ 1 y z 2
z 1 G1
G2
G3
x 2
x 1
x 1 ∧ x 2
z 1
z 1 ∨ z 2 z 2 x 4 x 3
x 3 ∧ x 4
0 1
0 1
0 1
0 1
1 ns
0 1
0 1
0 1
0 1
1 ns
0 1
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 201279/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?
Example description with concurrent signal assignments
t
d= 1 ns
t
d= 1 ns
t
d= 2 ns
&
G1
G2 G3 z
1z
2&
x
4x
3x
2x
1≥ 1 y entity SimModel is
end entity;
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 201281/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 + ...
Structural description
Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201283/105
2. Modelle & Simulation 5. Structural description
Structural description
c
c y
a
b Type: Oder Name: G3 a
b x
3x
4c
z
2a
b x
1x
2z
1Type: Und Type: Und
Name: G1 Name: TObj
Type: G2u1o test bench
Name: G2
process to generate test input and check test output
graphical presentation: data flow plan
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 201285/105
2. Modelle & Simulation 5. Structural description
Description of a single AND-Gate
t
d& c a
c
b c
t
da
010 1
0 1
--- Schnittstellenvereinbarung entity And2 is
generic(td: DELAY LENGTH :=0 ns);
port(a, b: in STD LOGIC ; c: out STD LOGIC );
end entity;
--- Beschreibungsversion mit Verz¨ogerungszeit architecture with td of And2 is
begin
c <= a and b after td;
end architecture;
--- Beschreibungsversion ohne Verz¨ogerung
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 201287/105
2. Modelle & Simulation 5. Structural description
Struktural description
of the 3-gate-circuit x
1&
x
2≥ 1 y
&
x
3x
4z
2G3 G1
G2
Entwurfseinheit: G2u1o z
1Schnittstellenvereinbarung:
entity G3E is
port(x1, x2, x3, x4: in STD LOGIC ; y: out STD LOGIC );
end entity;
architecture Struktur of G3E is --- Vereinbarung der interenen Signale
signal z1, z2: STD LOGIC ; begin
--- Instanziierung und Verbindung der Gatter
x
2x
1y
&
G2 z
1z
2&
G1
≥ 1 G3
x
3x
4--- Instanziierung und Verbindung der Gatter G1: entity WORK .Und2(mit td)
generic map(1 ns) (1)
port map(x1, x2, z1) (1) ; 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) positionsbasierte Zuordnung (kurz, fehlertr¨achtig)
(2) namensbasierte Zuordnung (l¨anger, verst¨andlicher)
Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201289/105
2. Modelle & Simulation 5. Structural description
Instanzbildung mit Platzhaltern
Der Design-Wizard von ise empfiehlt die ¨altere, umst¨andlichere Art der Instanziierung:
[Teilschaltungsname:] [component] Entwurfseinheit [generic map(Zuordnung sliste Parameter)]
port map(Zuordnung sliste Anschl¨ usse );
erfordert eine zus¨atzliche Deklaration der Schnittstelle als Komponente (in einem Package oder im Deklarationsteil der Entwurfseinheit)
component Entwurfseinheit is
[generic (Liste der Konfigurationsparameter );]
[port (Anschlussliste )];
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¨atzlichen
Konfigurationsbeschreibung (wird in der Vorlesung nicht verwendet)
Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201291/105
2. Modelle & Simulation 5. Structural description
Testrahmen
Testrahmen: oberste Hierarchieebene; keine Anschl¨ usse;
Testobjekt als Instanz; zus¨atzliche Prozesse zur Testdurchf¨ uhrung
c
x
3x
4x
1x
2a
b c
z
2a b
z
1type: Und2 name: G2 type: Und2
name: G1 Name: TObj
Typ: G3E test bench
a
b type: Oder2 name: G3
c y
e
4e
3e
2e
1a
processes to generate input and check output signals
x
3x
4x
1x
2e
4e
3e
2e
1y a
test input and test output name: TObj typ1: G3E
entity Test G3E is end entity;
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; e3<=’1’; --- 1 ns wait for 2 ns; e1<=’1’; e4<=’1’; --- 3 ns ...
wait;
end process; ⇒WEB-Projekt: G3/Test G3E
Analyse mit
ghdl -a Test G3E.vhdl
l¨ost Hierarchie auf.
Ergebnis 4-Prozess-Simulationsmodell wie bereits behandelt.
Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201293/105
2. Modelle & Simulation 5. Structural description
Zusammenfassung
Zur hierarchischen Strukturierung werden die Prozesse zu Entwurfseinheit zusammengefasst, mit Schnittstellen versehen und in ¨ ubergeordnete Entwurfseinheiten als Instanzen eingebunden.
Die oberste Ebene in der Beschreibungshierarchie eines Simulationsmodells ist der Testrahmen, eine Entwurfseinheit ohne Anschl¨ usse.
Bei der Schaltungsanalyse vor der Simulation wird die
Hierarchie wieder in einzelne ¨ uber Signale kommunizierende
Prozesse – das eigentliche Simulationsmodell – aufgel¨ost.
Aufgaben
Prof. G. Kemnitz·Institute of Informatics, Clausthal University of Technology 8. Mai 201295/105
2. Modelle & Simulation 6. Aufgaben
Aufgabe 1.2: Signalverlauf
ϕ(b
1) ϕ(b
0)
ϕ(b
2)
ϕ(b
3)
b = b
3b
2b
1b
0t – gesucht –
0001
In welchen Zeitbereichen ist der Signalvektor ung¨ ultig?
Welchen Wert hat er in den G¨ ultigkeitsfenstern?
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 201297/105
2. Modelle & Simulation 6. Aufgaben
Aufgabe 1.4: Ausdruck ⇔ Berechnungsfluss ⇔ Signalfluss
x 1 ∧ x 2 ∧ x ¯ 3 ∧ x ¯ 1 ∧ x ¯ 2 ∧ x ¯ 3
Zeichnen des Berechnungsbaums unter Verwendung der ein- und zweistelligen logischen Operationen Invertierung, UND und ODER.
Zeichnen Sie den Signalflussplan unter Verwendung von
Invertern sowie UND- und NAND-Gattern mit n Eing¨angen.
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 201299/105
2. Modelle & Simulation 6. Aufgaben
Aufgabe 1.6: Bestimmung der Signalverl¨ aufe von z und y
0 2 4 6 8 10 12 t sim
101 0
10 10 1 0