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
© Copyright 2024 ExpyDoc