Digitaltechnik: Laborübung 5

Digitaltechnik
WS 15/16
8. Juni 2016
Prof. Dr. Sven-Hendrik Voß
Laborübung 5
Zur Vorbereitung des Labortermins wird empfohlen, das aktuelle Aufgabenblatt und
die darin referenzierten Unterlagen vorab durchzuarbeiten und ggf. Rechnungen, Tabellen und Herleitungen vorab anzufertigen. Die Vorbereitung ist essentiell für eine
erfolgreiche Laborteilnahme und wird im Rahmen einer Vorbesprechung überprüft.
Alle Aufgaben sind schriftlich zu lösen und in einem Protokoll festzuhalten. Alle Simulationen sowie praktische Realisierungen sind dem Dozenten im Rahmen der Gruppenrücksprache zu präsentieren. Erfolgreiche Abnahmen werden auf dem Aufgabenblatt schriftlich quittiert. Eine erfolgreiche Laborteilnahme ist Voraussetzung für die
Teilnahme an der Klausur am Ende des Semesters.
Aufgabe 1
Im Unterricht haben Sie Zustandsautomaten kennengelernt, mit Hilfe derer sequentielle Abläufe modelliert werden können. Nun soll eine sequentielle digitale Schaltung
mit drei Eingängen und zwei Ausgängen entwickelt werden, die ein digitales Zahlen”
schloss“ als Automat darstellt.
Lock
X
Clock
Digitales
Zahlenschloss
Reset
Alarm
Mit einer logischen 1“ am Reset-Eingang wird die Schaltung in den Reset-Zustand
”
versetzt, in dem die Schaltung auf die Eingabe einer fünfstelligen Zahlenkombination
wartet. Die Zahlenkombination wird als Abfolge von Nullen und Einsen als Bitsequenz
über den Eingang X eingegeben, pro Clock-Zyklus wird jeweils ein Bit eingelesen.
Das Zahlenschloss ist mit dem Reset-Zustand geschlossen, was durch eine logische 1“
”
am Ausgang Lock symbolisiert wird. Das Zahlenschloss bleibt solange verriegelt bis
die richtige Zahlenkombination eingegeben wurde.
Das Öffnen des Zahlenschlosses soll sodann durch eine logische 0“ am Ausgang Lock
”
signalisiert werden. In diesem Zustand bleibt die Schaltung solange wie am Eingang
eine logische 1“ anliegt. Sobald eine 0“ erscheint, kehrt die Schaltung in den Reset”
”
Zustand zurück. Eine falsche Eingabe der Zahlenkombination soll dagegen durch den
Logikpegel 1“ am Ausgang Alarm angezeigt werden. In diesem Zustand verweilt die
”
Schaltung bis erneut ein Reset ausgelöst wird.
1
Als Zahlenkombination wird pro Gruppe eine individuelle Sequenznummer verwendet,
für die die folgende Bildungsvorschrift gilt:
Binärsequenz = Binärdarstellung von (1 + (Matrikelnummer MOD 32))
Die Eingabe der Sequenz beginnt mit dem MSB und endet mit dem LSB. Gehen Sie
für den Entwurf dieses Zustandsautomaten in folgenden Einzelschritten vor.
1. Bestimmen Sie die individuelle Sequenznummer für Ihre Matrikelnummer und
notieren Sie diese. Für die spätere Realisierung können Sie sich mit Ihrer/m
Gruppenpartner(in) über die jeweilige Verwendung im Design abstimmen.
2. Zeichnen Sie per Hand ein Zustandsdiagramm (Zustandsgraph) für den beschriebenen Zahlenschloss-Mechanismus unter Verwendung Ihrer persönlichen
Sequenznummer. Legen Sie dabei einen Moore-Automaten zugrunde. Achten
Sie dabei auf die korrekte Anzahl der nötigen Zustände für Ihre fünfstellige
Zahl.
3. Legen Sie in Quartus II ein neues Projekt an und entwerfen Sie nun in VHDL
den Zahlenschloss-Automaten als Drei-Prozess-Beschreibung. Orientieren Sie
sich dabei an dem Beispiel aus der Vorlesung und legen Sie Ihr zuvor erstelltes
Zustandsdiagramm zugrunde.
4. Verifizieren Sie Ihren Entwurf mit Hilfe des RTL Viewer unter Tools → NetList
Viewers → RTL Viewer. Diese Ansicht entspricht der extrahierten Netzliste
nach Analyse und Synthese Ihrer VHDL-Beschreibung, allerdings ohne eventuelle Optimierungen. Diese Ansicht repräsentiert daher nicht unbedingt die
endgültige Struktur des Designs, dafür aber eine gute Näherung Ihrer beschriebenen Hardware. In der Standard-Einstellung werden State-Machine-Strukturen
— sofern erkannt — auch als solche in der üblichen Darstellung mit Kreisen
und Pfeilen gezeigt. Nutzen Sie diese Ansichtsoption, um sicherzustellen, dass
Ihr VHDL-Code korrekt geschrieben ist und wie beabsichtigt arbeitet. Zeigen
Sie dem Dozenten zunächst dieses Teilergebnis.
5. Um einen genaueren Einblick in die aus der State-Machine-Beschreibung generierte Logik zu erhalten, deaktivieren Sie die automatische FSM Extraktion in
Quartus II. Unter Assignments → Settings → Compiler Settings → Advanced
Settings (Synthesis) wählen Sie die Option Extract VHDL State Machines ab,
so dass diese auf Off steht. Lassen Sie sodann die Synthese noch einmal durchlaufen und betrachten Sie im RTL Viewer die generierte Logik. Analysieren Sie
die nun dargestellte Schaltung schriftlich und zeigen Sie, ob und inwiefern diese
Schaltung Ihr spezifiziertes Verhalten umsetzt. Diese Analyse ist ebenfalls dem
Dozenten vorzulegen.
6. Entwerfen Sie eine Testbench und simulieren Sie Ihre VHDL Beschreibung mit
Hilfe geeigneter Stimuli-Signale in ModelSim. Machen Sie dazu auch die jeweils
aktuellen Zustände in der Timing-Darstellung sichtbar. Präsentieren Sie die
Simulation dem Dozenten und lassen Sie sich die Vorführung abzeichnen.
2
7. Um das Design auf der Hardware zu erproben, müssen Sie noch die konkreten
Pin-Zuordnungen definieren. Öffnen Sie dazu den Pin Planner und geben Sie
die entsprechenden Belegungen ein. Auf dem DE2-115 Board soll mit Hilfe von
KEY[0] das Clock -Signal emuliert werden, SW[1] soll als Reset dienen, SW[0] als
Eingang X. LEDG[8] soll für den Lock -Ausgang, LEDR[0] für das Alarm-Signal
genutzt werden. Compilieren Sie Ihr Design mit der aktuellen Pinbelegung erneut.
8. Nehmen Sie das Design auf dem FPGA-Board in Betrieb und erläutern Sie die
Funktionsweise dem Dozenten. Lassen Sie sich die Vorführung abzeichnen.
Aufgabe 2
Gegeben sei die hier abgebildete sequentielle digitale Schaltung mit zwei Eingängen
und einem Ausgang. Sie stellt die schaltungstechnische Realisierung eines booleschen
Automaten dar, der zunächst analysiert und dann in VHDL beschrieben werden soll.
&
Y
1
X
D
Q
1
Clock
CLR
Q
D=
Aktueller
Zustand Q
Eingang X
Y =
Folgezustand FF-Eingang
Q+
D
Ausgang Y
1. Leiten Sie die booleschen Gleichungen für D und Y aus der abgebildeten Schaltung ab und tragen Sie sie an dem dafür vorgesehenen Ort ein.
2. Füllen Sie die vorbereitete Zustandsübergangstabelle aus.
3. Leiten Sie den Zustandsgraph zu der Schaltung ab und zeichen Sie diesen in
den unten vorgesehenen Platz ein.
4. Handelt es sich hierbei um einen Moore- oder Mealy-Automaten? Begründen
Sie Ihre Antwort.
3
Zustandsgraph
5. Ergänzen Sie Ihr Quartus II Projekt aus Aufgabe 1 um eine neue VHDL-Datei,
in der Sie den hier zugrundeliegenden Automaten anhand Ihres erstellten Zustandsdiagramms als Drei-Prozess-Realisierung beschrieben. Achten Sie dabei
insbesondere auf den Automatentyp (Moore oder Mealy?). Für die Synthese
müssen sie diese neue VHDL-Datei als Top-Level Entity markieren.
6. Erstellen Sie eine Simulation in ModelSim, um die Funktionalität des Automaten zu überprüfen. Halten Sie anhand von Stichpunkten schriftlich fest wie
die Zustandsmaschine funktioniert. Gehen Sie dabei auf folgende Fragestellungen ein: Was macht die Schaltung, wozu dient sie? Was muss bei einer realen
Hardware-Implementierung berücksichtigt werden bzw. welche Rahmenbedingungen müssen vorliegen? Wie äußert sich der Typ des Automaten in der Simulation? Dies setzt voraus, dass Sie aussagekräftige Eingangsstimuli generiert
haben, die die Eigenschaften des zeitlichen Verhaltens der Schaltung deutlich
machen. Präsentieren Sie abschließend all Ihre Ergebnisse dem Dozenten.
Ab hier bitte keine Eintragungen vornehmen!
Aufgabe 1
Aufgabe 2
4