Ampelsteuerung

Ziel dieses Versuches ist es, die Funktionalität einer Ampelsteuerung in eine FPGA-Struktur zu implementieren. In diesem Zusammenhang soll das Verständnis für den gesamten VLSI Designablauf vertieft werden. Der Schwerpunkt liegt dabei auf den Designschritten bis zur Logiksynthese.

2. Grundlagen

Blockschaltbild des FPGA-Board Digilent NEXYS-2

Die Hardwareimplementierung einer gegebenen Problematik beginnt mit der Entwurfs- und Spezifikationsphase. Da diese Etappe entscheidend und grundlegend für alle weiteren Schritte ist, erfordert sie die meiste Kreativität vom Entwickler. In diesem Zusammenhang muß dieser mit bekannten Beschreibungsmitteln (Blockschaltbild, textuelle Anforderungsbeschreibung, Schnittstellendefinition, Zustandsgraphen, Wahrheitstabellen usw.) das Problem spezifizieren, geeignet partitionieren und hinsichtlich der Struktur und des Verhalten entwerfen. Danach schließt sich eine Entwicklungsphase an, die mit der Abbildung der Problemlösung auf eine Gatternetzliste endet. Hier werden rekursiv verschiedene VHDL-Entwicklungsschritte sowie die zugehörigen Simulationsläufe ausgeführt. Dabei wird die Zielstellung verfolgt eine den Spezifikationen entsprechende funktionstüchtige und hinsichtlich der Fläche bzw. der Zeit optimale Struktur zu erreichen. Entsprechend sind in dieser Phase die VHDL-Beschreibungen zu entwickeln, schrittweise zu verfeinern und gleichzeitig sind geeignete Simulationsstrategien aufzustellen. Der Entwickler hat somit seine Entwürfe und Abbildungen zu bewerten und zu modifizieren. Daran schließt sich ein Technologiemapping an, wobei die Gatternetzliste in eine Technologie (ASIC, FPGA, PLD) umgesetzt wird.

3. Studienfragen

  • 3.1. Welche Designschritte sind notwendig um eine gegebene Problematik in eine FPGA-Struktur zu überführen?
  • 3.2. Erläutern Sie das Y-Diagramm nach Gajski und Kuhn und ordnen Sie die entsprechenden Designschritte ein!
  • 3.3. Nennen und erläutern Sie verschiedene Simulations-Methoden im Designzyklus bis zur Logiksynthese!
  • 3.4. Erläutern Sie den prinzipiellen Aufbau einer VHDL-Beschreibung!
  • 3.5. Worin besteht der Unterschied zwischen einer VHDL-Strukturbeschreibung und einer VHDL-Verhaltensbeschreibung?
  • 3.6. Wie kann eine geeignete Programmierung von Zustandsmaschinen in VHDL erfolgen?
  • 3.7. Wie unterscheidet sich die "2-Prozess Methodik" von einer herkömmlichen VHDL-Beschreibung? Was sind Vor- und Nachteile?
  • 3.8. Erläutern Sie Aufbau, Programmierung und Funktionsweise eines XILINX-FPGAs!

4. Aufgaben

4.1. Hausaufgaben (schriftlich)

  • 4.1.1. Skizzieren Sie die den Zustandsgraphen eines 3-Bit-Zählers, der durch ein Reset-Signal jederzeit in den Zustand "Null" versetzt werden kann!
  • 4.1.2. Erweitern Sie den Zustandsgraphen, so daß dieser entsprechend der Eingangskombinationen 101 und 011 in die jeweiligen korrespondierenden Zustände versetzt wird!
  • 4.1.3. Entwerfen Sie den Zustandsgraphen für eine Ampelsteuerung von zwei Ampeln einer Kreuzung, die keine Phasenlängen der einzelnen Zustände beachtet. Dabei soll in Abhängigkeit eines Eingangssignals ein Tag- und Nachtbetrieb (Blinken des Signals "Gelb") möglich sein! Zwischen den Betriebsarten ist nur aus sicheren Ampelzuständen zu wechseln.

4.2. Versuchsaufgaben

  • 4.2.1. Entwickeln Sie einen Zustandsgraphen für die Ampelsteuerung einer einfachen Straßenkreuzung (ohne Fußgänger- und Abbieger-Ampeln), die folgenden Bedingungen genügt:
    • Die Ampel soll in Abhängigkeit eines Eingangssignals für den Tag- und den Nachtbetrieb ausgelegt sein, der Übergang zwischen Tag- und Nachtbetrieb soll von bzw. in sichere(n) Ampelzustände(n) erfolgen..
    • Die Phasenlängen der einzelnen Ampelzustände sollen unterschiedlich und dem jeweiligen Zustand angemessen ausgelegt sein. Realisieren Sie die genannten Forderungen durch die Integration eines entsprechenden Timers.
  • 4.2.2. Entwickeln Sie ein Blockschaltbild, welches alle notwendigen Signale und geeignet partitionierte Submodule enthält!
  • 4.2.3. Setzen Sie die Struktur schrittweise in eine VHDL-Beschreibung um. Dabei ist die "2-Prozess Methodik" zu verwenden. Entwickeln Sie geeignete Simulationsstrategien für die Submodule und die gesamte Schaltung! Dabei ist auf die Wiederverwendbarkeit der Simulationselemente zu achten!
  • 4.2.4. Verifizieren und validieren Sie Ihre Lösung hinsichtlich einer optimalen Hardwareimplementierung! Erzeugen Sie die notwendigen Reports für die Syntheseergebnisse!

5. Literatur

FPGA-Board Digilent NEXYS-2
  • N. H.E. Weste, K. Eshraghian: "Principles of CMOS VLSI Design"; Addison-Wesley 1992
  • Hochintegrierte System (Vorlesung und Seminar), Universität Rostock, Fachbereich Elektrotechnik und Informationstechnik, Institut für Angewandte Mikroelektronik und Datentechnik
  • J. Siegl, H. Eichele: "Hardwareentwicklung mit ASIC"; Hüthig 1990
  • P. J. Ashenden: "The Designers Guide to VHDL"; Morgan Kaufmann Publishers 1996
  • Referenz Manual Digilent Nexys-2 Board

6. Anhang

Templates: