Versuch 4 Realisierung einer Ampelsteuerung auf einem FPGA-Board

Ähnliche Dokumente
Einstellungen im Internet-Explorer (IE) (Stand 11/2013) für die Arbeit mit IOS2000 und DIALOG

Datensicherung. Beschreibung der Datensicherung

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Installation und Inbetriebnahme von Microsoft Visual C Express

Die nachfolgende Anleitung zeigt die Vorgehensweise unter Microsoft Windows Vista.

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar ZID Dezentrale Systeme

Kurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11

PDF-Erzeugung mit PDFCreator (nur für Windows, installiert universellen PDF-Druckertreiber) v11/01

Überprüfung der digital signierten E-Rechnung

Installationsanleitung unter Windows

Urlaubsregel in David

Übungen zu Architektur Eingebetteter Systeme. Teil 1: Grundlagen. Blatt 5 1.1: VHDL 28./

Starten der Software unter Windows 7

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern

Mediumwechsel - VR-NetWorld Software

Speichern. Speichern unter

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Mediumwechsel - VR-NetWorld Software

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Netzwerk einrichten unter Windows

Python Installation. 1 Vorbereitung. 1.1 Download. Diese Anleitung ist für Windows ausgelegt.

Durchführung der Datenübernahme nach Reisekosten 2011

Installation / Aktualisierung von Druckertreibern unter Windows 7

Einkaufslisten verwalten. Tipps & Tricks

Wie benutzt man TortoiseSVN

Wir wünschen Ihnen viel Freude und Erfolg mit Ihrem neuen X-PRO-USB-Interface. Ihr Hacker-Team

Folgeanleitung für Klassenlehrer

Folgeanleitung für Fachlehrer

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

Tipp: Proxy Ausschalten ohne Software Tools

Kapitel 3 Frames Seite 1

Kommunikations-Management

Handbuch B4000+ Preset Manager

Installationsanleitungen

Wie halte ich Ordnung auf meiner Festplatte?

MO1 <logo otra empresa> MO1Sync Installationshandbuch MO1. MO1Sync Installationshandbuch -1-

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

1 Konto für HBCI/FinTS mit Chipkarte einrichten

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung

ELO Print&Archive so nutzen Sie es richtig

Mediator 9 - Lernprogramm

Herzlich Willkommen bei der BITel!

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

Einführung zum Arbeiten mit Microsoft Visual C Express Edition

2. Konfiguration der Adobe Software für die Überprüfung von digitalen Unterschriften

Windows 7 Winbuilder USB Stick

1 Dokumentenmanagement

SICHERN DER FAVORITEN

Outlook 2000 Thema - Archivierung

MSI TECHNOLOGY. RaidXpert AMD. Anleitung zur Installation und Konfiguration MSI

Pascal-Compiler für den Attiny

1. Zugriff des Autostarts als Dienst auf eine Freigabe im Netz

Sich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. ist einer davon.

Starten der Software unter Windows XP

Anleitung zum Firmware-Update für das 8 INTENSOTAB

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

ACHTUNG: Es können gpx-dateien und mit dem GP7 aufgezeichnete trc-dateien umgewandelt werden.

Dokumentation IBIS Monitor

Installation Server HASP unter Windows 2008 R2 Server 1 von 15. Inhaltsverzeichnis

MetaQuotes Empfehlungen zum Gebrauch von

Faktura. IT.S FAIR Faktura. Handbuch. Dauner Str.12, D Mönchengladbach, Hotline: 0900/ (1,30 /Min)

ARAkoll 2013 Dokumentation. Datum:

Arbeiten mit XILINX - ISE - WebPACK

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

Standard Daten-Backup-Script

Qt-Projekte mit Visual Studio 2005

Punkt 1 bis 11: -Anmeldung bei Schlecker und 1-8 -Herunterladen der Software

2. Die eigenen Benutzerdaten aus orgamax müssen bekannt sein

TeamSpeak3 Einrichten

Installation der Konfigurationsdateien für alle Windows-Versionen bis einschließlich Microsoft Windows 7

Wichtig: Um das Software Update für Ihr Messgerät herunterzuladen und zu installieren, müssen Sie sich in einem der folgenden Länder befinden:

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

AUF LETZTER SEITE DIESER ANLEITUNG!!!

1. Einführung. 2. Weitere Konten anlegen

Eine Einführung in die Installation und Nutzung von cygwin

Druck von bzw. Scan auf USB-Stick

Aufrufen des Konfigurators über eine ISDN- Verbindung zur T-Eumex 628. Eine neue ISDN-Verbindung unter Windows XP einrichten

In 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC

Anleitung zur Webservice Entwicklung unter Eclipse

Anleitung zum Download und zur Bedienung des Tarifbrowsers für Mac OSX und Safari / Mozilla Firefox

Stepperfocuser 2.0 mit Bootloader

Kostenstellen verwalten. Tipps & Tricks

Installation und Sicherung von AdmiCash mit airbackup

Der einfache Weg zum CFX-Demokonto

Leitfaden zur Installation von Bitbyters.WinShutdown

Wireless LAN PCMCIA Adapter Installationsanleitung

LEHRSTUHL FÜR DATENBANKEN

Handbuch ECDL 2003 Basic Modul 2: Computermanagement und Dateiverwaltung Dateien löschen und wiederherstellen

Second Steps in eport 2.0 So ordern Sie Credits und Berichte

YouTube: Video-Untertitel übersetzen

26. November EFS Übung. Ziele. Zwei Administrator Benutzer erstellen (adm_bill, adm_peter) 2. Mit adm_bill eine Text Datei verschlüsseln

Kurzanleitung zu. von Daniel Jettka

Anleitung zum erstellen einer PDF-Datei aus Microsoft Word

Microsoft Access 2013 Navigationsformular (Musterlösung)

Einen Wiederherstellungspunktes erstellen & Rechner mit Hilfe eines Wiederherstellungspunktes zu einem früheren Zeitpunkt wieder herstellen

Transkript:

FB Elektrotechnik und Informationstechnik Prof. Dr.-Ing. Norbert Wehn Dozent: Uwe Wasenmüller Raum 12-213, wa@eit.uni-kl.de Versuch 4 Realisierung einer Ampelsteuerung auf einem FPGA-Board Bild 1: Zusatzleiterplatte Ampel HAUPT2 Ampel NEBEN 4 Ampel NEBEN 3 HAUPTSTRASSE Ampel HAUPT1 Bild2: Prinzipdarstellung Leiterplatte Ampel Seite 1 von 19

1. Ziel dieses Versuches In diesem Versuch werden Sie synthetisierbare VHDL-Modelle erstellen und die erforderlichen Schritte kennenlernen bis Ihr VHDL-Modell bzw. die entsprechende Schaltung auf einem Xilinx-FPGA des Laborboards untersucht werden kann. Bevor Sie Ihr VHDL-Modell synthetisieren können sind die Entwurfsschritte wie in den vorherigen Versuchen einschließlich der Verifikation mit einer Testbench durchzuführen. Nach erfolgreicher Verifikation werden Sie das Synthese-Werkzeug XST der Firma Xilinx verwenden sowie die Implementierungssoftware (Technology Mapping sowie Platzierung und Verdrahtung) der Firma Xilinx nutzen. Die erforderlichen Werkzeuge sind in der Xilinx-Entwicklungsumgebung ISE integriert. 2. Grundlagen zur Aufgabenstellung Bevor Sie das VHDL-Modell gemäß Spezifikation erstellen, studieren Sie im Skript nochmals die Seiten über die Synthese (getaktete Prozesse, endliche Automaten, Komponenten und Regeln für Synthetisierbarkeit). Machen Sie sich den Entwurfsablauf für die Implementierung einer digitalen Schaltung auf FPGA-Bausteinen nochmals klar. Vergewissern Sie sich, dass Sie das Kapitel Finite State Machines (FSM) des Skriptes vor Versuchsbeginn gelesen und verstanden haben. Weiterhin studieren Sie nochmals die Unterlagen über Automaten (ginf-8.pdf) und Schaltwerke (ginf-9.pdf) der Vorlesung Grundlagen der Informationsverarbeitung (EIT-EMS-314-V-2 bzw. 85-314). Die prinzipiell benötigten Informationen für die Werkzeuge von Xilinx sind in der hier vorliegenden Beschreibung zu finden. Weitergehende Informationen finden Sie in den Help- Funktionen der ISE Entwicklungsumgebung. Für diese Entwicklungsumgebung finden Sie ein Icon auf dem Desktop. Weiterführende Informationen zum Laborboard und zum darauf eingesetzten Xilinx-FPGA finden sie im Verzeichnis /docs Ihres Accounts auf den Laborrechnern. In diesem Verzeichnis finden Sie auch ein Dokument zum besseren Verständnis des Synthesereports (Hinweise_Synthesereport) sowie ein Dokument zur Hilfestellung beim Schreiben verständlichen VHDL Codes (Coding_Guidelines); ein Studium dieser beiden genannten Dokumente wird von Ihnen erwartet. Ein nochmaliges Studium des ModelSim Tutorials ist auch empfehlenswert. Die für diesen Versuch benötigten Funktionen der Xilinx Software ISE werden im vierten Abschnitt ausführlicher erläutert. Seite 2 von 19

3. Vorgehensweise ampel_top clk reset timer sec_puls clk reset ampel_sm led haupt1 haupt2 neben3 neben4 8 3 3 3 3 Entwerfen Sie die im Abschnitt 4 beschriebene Ampelsteuerung (ampel_sm) als FSM. Testen Sie Ihre Ampelsteuerung mit einer Testbench im Simulator ModelSim. Entwerfen Sie die im Abschnitt 4 beschriebene Einheit timer und testen Sie diese mit einer Testbench. Vervollständigen Sie die Gesamtschaltung (ampel_top) und führen Sie eine Verifikation der Gesamtschaltung durch. Mit Hilfe der Xilinx Tools synthetisieren Sie die Gesamtschaltung und führen Platzierung und Verdrahtung durch. Testen Sie Ihre implementierte Ampelschaltung durch Übertragung der Konfigurationsdaten des FPGA auf das Laborboard mit anschließender Ausführung. 4. Versuchsdurchführung Die gesamte Schaltung (ampel_top) besteht aus zwei Komponenten: einem Automaten (FSM) mit dem entity Namen ampel_sm und einer Schaltung zur Bereitstellung eines Sekundenimpulses mit dem entity Namen (timer). Sie werden nacheinander die VHDL Modelle ampel_sm, timer und ampel_top entwerfen und verifizieren. Die jeweilige entity declaration der drei genannten Schaltungsmodelle ist bereits im Versuchsverzeichnis vorhanden und darf nicht verändert werden. Die genannten VHDL Modelle müssen natürlich den Regeln für synthetisierbare VHDL Modelle entsprechen. Erst nach erfolgreicher Verifikation werden Sie die Schaltung synthetisieren sowie Platzierung und Verdrahtung durchführen. Alle erforderlichen Schritte nach der Verifikation werden mit Werkzeugen der Firma Xilinx durchgeführt und sind in späteren Abschnitten detailliert erläutert. Seite 3 von 19

Spezifikation der Ampelsteuerung (ampel_sm) Es soll eine Ampelsteuerung entworfen und auf einem externen Board getestet werden. Die Ampelsteuerung soll die in der nachfolgenden Abbildung gezeigten 8 Phasen einer Ampelanlage nacheinander anzeigen. Hierzu ist eine Modellierung einer FSM gefordert. Die gezeigten 8 Phasen der Ampel sind die möglichen Zustände der FSM. Die Ampelanlage besteht aus je 2 Ampeln für eine Hauptstraße und je 2 Ampeln für eine Nebenstraße. Die 2 Ampeln für die Hauptstraße zeigen jeweils die gleichen Leuchten. Das gleiche gilt für die 2 Ampeln der Nebenstraße. Daher sind im nachfolgenden Bild auch jeweils nur die Leuchten einer Hauptstraßen- bzw. Nebenstraßenampel dargestellt. Beachten Sie, dass für die jeweiligen Phasen auch eine Dauer in Sekunden angegeben ist. Eingänge der Schaltung sind ein Takt (clk), ein Sekundenimpulssignal (sec_puls) und ein asynchroner Reset (reset). Dieser Reset muss bei logisch 1 aktiv sein. Die Ausgänge heißen haupt1, haupt2, neben3 und neben4. Sie sind vom Typ std_logic_vector und jeweils 3 Bit breit. Liegt an einem Ausgang eine logische 1 an, bedeutet dies, dass das entsprechende Licht leuchten soll, entsprechend führt eine 0 zu einem nicht leuchtenden Licht. Die drei Bit entsprechen dabei grün/gelb/rot. Weisen Sie beispielsweise dem Signal haupt1 vom Typ std_logic_vector(2 downto 0) den Wert 001 zu, zeigt die Ampel die Rotphase an. Das FPGA wird mit 50 MHz getaktet; das ist aber für eine Ampel natürlich viel schneller als erforderlich. Daher wird durch das Signal sec_puls das Sekundenraster vorgegeben. Dieses Signal gibt im Abstand von einer Sekunde nur für die Dauer eines Taktes (also 20 ns lang) einen Impuls ( 1 ) aus. Das ermöglicht der Schaltung ampel_sm das Zählen von Sekunden. Sehen Sie hierfür einen Zähler mit geeigneter Bitbreite vor. Überlegen Sie, wie lange damit die längste Ampelphase dauern könnte. Verifizieren Sie Ihre Überlegung noch anhand der Simulation. Seite 4 von 19

Spezifikation des Timers (timer) Die oben beschriebene FSM arbeitet mit 50 MHz. Dieser Takt ist durch einen Quarz auf dem Board für das FPGA vorgegeben. Die Ampelphasen sollen jedoch im Sekundenraster definiert werden können. Es ist daher sinnvoll, ein Signal zu definieren, das der State Machine dieses Sekunden-Raster mitteilt. Dazu sollen Sie nun die Komponente timer entwickeln, die im Abstand von einer Sekunde einen Impuls von der Länge eines Taktes ausgibt. Der Eingang dieser Komponente ist der Takt des Boards (50 MHz) sowie der oben beschriebene asynchrone Reset(reset). Der Ausgang ist das Signal für den Sekundenimpuls sec_puls, welches für die Schaltung ampel_sm als Eingang dient. Eine Ampelphase soll exakt 1 Sekunde dauern, das heißt, Sie müssen aus dem Takt von 50 MHz das Signal sec_puls ableiten. Derartige Aufgaben lassen sich gut mit binären Zählern realisieren. Bedenken sie, dass binäre Zähler auch die 0 mitzählen. Implementierung der Spezifikation Implementieren Sie nun die Ampelschaltung mit der beschriebenen Funktionsweise. Dazu sind die Komponenten timer und ampel_sm notwendig. Es ist jeweils im Verzeichnis src ein VHDL-Code vorgegeben, in dem die Entity bereits spezifiziert ist. Ändern Sie die Namen nicht, diese müssen später mit den Vorgaben im User-Constraint- File (ucf-file) übereinstimmen, sonst funktioniert die Implementierung auf dem Board nicht. Erstellen Sie dann die Gesamtschaltung ampel_top bestehend aus diesen beiden Komponenten. Auch dafür finden Sie einen vorgegebenen VHDL-Quellcode, der entsprechend zu vervollständigen ist. Weiterhin sind auf dem Laborboard 8 LED vorhanden. Diese können beispielsweise für Fehlersuche verwendet werden. Bitte nutzen Sie diese LED Anzeigen, um ihre Gruppennummer binär codiert anzugeben. Kompilieren Sie jeweils die entsprechenden VHDL-Codes. Wenn das Kompilieren ohne Fehlermeldung erfolgt, kann mit der Simulation - wie im nachfolgenden Kapitel beschrieben - begonnen werden. Testen der Schaltung Simulieren Sie die Komponenten timer und ampel_sm jeweils für sich. Es ist viel zeitaufwändiger einen Fehler in der Gesamtschaltung zu finden als in den Einzelkomponenten. Schreiben Sie also jeweils eine einfache Testbench für beide Komponenten. Bei einem Takt von 50 MHz erhält die Schaltung ampel_sm jeweils nach 50 Millionen Takten einmal den Sekundenimpuls. In der Simulation dauert das aber sehr lange. Sie können die Taktfrequenz auch kleiner als 50 MHz machen. Überlegen Sie was in Ihrer Testbench zu ändern ist, damit die Sekundenimpulse immer noch einen Abstand von 1 Sekunde haben. Seite 5 von 19

Simulieren Sie dann, wenn Sie mit den Einzelergebnissen zufrieden sind, die Gesamtschaltung ampel_top. Sie sollten dabei die Auswirkung des reset sowie den zeitlichen Ablauf von mindestens einem kompletten Ampelzyklus (besser von zwei Ampelzyklen) simulieren. Schreiben Sie auch hier eine Testbench. Worin liegt das Problem bei der Simulation dieser Gesamtschaltung? Könnte man mit einem Trick bei der Komponente timer (siehe Hinweis zur Simulation von ampel_sm) die Simulation der Gesamtschaltung beschleunigen? Fahren Sie mit der nachfolgenden Implementierung des Designs erst fort, wenn alle Simulationsergebnisse zufriedenstellend sind. Die nachfolgenden Schritte werden in der Entwicklungsumgebung der Firma XILINX (ISE, Version 14) ausgeführt. Ein Projekt anlegen Starten Sie das Programm Xilinx ISE 14, dessen Icon auf dem Desktop abgelegt ist. Beachten Sie dabei, dass es auch eine ältere Version dieses Programmes auf dem Desktop gibt, die für unsere Zwecke nicht mehr verwendet werden kann. Das von uns verwendete FPGA wird dort noch nicht unterstützt. Wählen Sie in der ISE den Befehl File >> New Project. Geben Sie im folgenden Dialog einen Projektnamen und den Speicherort an. Der Speicherort muss sich auf dem Laufwerk Z: befinden (z.b. Z:\V5). Top-Level Source Type ist HDL. Es wird auf der Festplatte ein Verzeichnis mit diesem Namen angelegt, in dem alle später erzeugten Dateien zu finden sein werden. Seite 6 von 19

Bestätigen Sie mit Next. Seite 7 von 19

Ändern Sie in dem erscheinenden Fenster die Eigenschaften exakt wie nachfolgend dargestellt: In der neuen ISE-Version können Sie direkt das Evaluation Development Board auswählen. Dadurch werden Baustein und Gehäuse automatisch korrekt eingestellt. Diese Felder sind dann grau hinterlegt und nicht zusätzlich änderbar. Alternativ müsste man die nächsten 5 Felder mit den oben dargestellten Werten auswählen. Wählen Sie zusätzlich bei Simulator den im Labor verwendeten Modelsim-SE aus. Die ISE-Entwicklungsumgebung von XILINX enthält auch einen eigenen Simulator (ISIM), der aber nicht so leistungsfähig ist wie der Modelsim. Die Angaben bezüglich des Bausteins (Spartan 3AN, XC3S700AN, FGG484) müssen korrekt sein, sonst funktioniert die Schaltung später nicht. Bestätigen Sie dieses Fenster mit Next und das darauffolgende Fenster Project Summary mit Finish. Ihr Projekt ist nun erstellt. Sie sehen jetzt im Fenster den Project Navigator mit einem (noch) leeren Projekt. Seite 8 von 19

VHDL-Dateien einem Projekt hinzufügen Um dem Projekt VHDL-Dateien hinzuzufügen, gehen Sie wie folgt vor: - Klicken Sie im Menü: Project >> Add Source - Wählen Sie im Verzeichnis src wie oben dargestellt die zuvor von Ihnen erstellten VHDL-Quelldateien aus. Zusätzlich muss das so genannte ucf-file (user-constraint-file) ausgewählt werden, das von uns vorgegeben wurde. Dort stehen Anweisungen für das Layout wie z.b. die Position der IOs des FPGAs. Sie können diese Datei mit einem Texteditor anschauen, wenn Sie möchten. Seite 9 von 19

Die Namen der Signale der Entity in ampel_top.vhd müssen mit den im ucf- File angegebenen Namen übereinstimmen, sonst wird das Übersetzen mit Fehlermeldungen abgebrochen. Ohne das ucf-file wird Ihre Schaltung später auf dem Board nicht funktionieren. Es besteht sogar die Gefahr eines Hardwaredefektes, etwa wenn Ausgänge des FPGAs mit Ausgängen anderer Bausteine kollidieren und dadurch Kurzschlüsse entstehen. - Bestätigen Sie nach korrekter Auswahl der Dateien die Eingabe mit OK. Wurde eine Datei vergessen, kann diese nach der beschriebenen Vorgehensweise nachträglich hinzugefügt werden. Das nachfolgende Bild zeigt die ISE nachdem das Projekt komplett angelegt wurde, und bevor irgendeine Aktion gestartet wurde. Seite 10 von 19

Damit ist das Projekt nun vollständig angelegt und alle für uns notwendigen Angaben sind gemacht. Wir können nun mit der Implementierung beginnen. Das Programm ISE von Xilinx hat, wie Sie im oberen Teil des Fensters sehen können, die Hierarchie des Designs automatisch erkannt. Solange dort der Toplevel des Designs angewählt ist, können Sie im zweiten Teil des Fensters (Processes) alle notwendigen Schritte zum Erstellen des physikalischen Layouts (Synthese, Translate, Mappen, Place & Route) und zum Programmieren des FPGAs (Generate Programming File, Configure Target Device) sehen und durch Doppelklicken ausführen. Prinzipiell kann man mit einem Doppelklick auf Generate Programming File den ganzen Prozess automatisch ablaufen lassen. Oft werden dabei in dem einen oder anderen Schritt Fehler auftreten. Deshalb ist es sinnvoll, eine Vorstellung von den Aufgaben der einzelnen Programmteile zu haben. Fast alle Programmteile haben in Ihrem Kontextmenü einen Eintrag Properties, mit dem sich ihr Verhalten konfigurieren lässt. Seite 11 von 19

Im folgenden Fenster wurde alles bis Generate Programming File ausgeführt. Aktionen mit grünem Haken wurden problemlos ausgeführt, mit dem gelben Ausrufezeichen waren erfolgreich, es traten aber Warnungen auf. Synthesize Wählt man im Hierarchy die Toplevel-VHDL-Entity aus, so zeigt der Processes View zahlreiche Aktionen an. Die Synthese übernimmt die Übersetzung des VHDL Modells in eine Netzliste. Die Synthese eines VHDL-Modells unterliegt gewissen Einschränkungen im Sprachumfang und Modellierungsstil (siehe Skript). Es muss also damit gerechnet werden, dass bei der Synthese Fehlermeldungen in Konstrukten auftreten, die vom Simulator als korrekt akzeptiert wurden. Die Synthese gibt einen Bericht auf der Konsole aus, der sich auch später noch betrachten lässt (siehe nächste Seite). Wichtig sind dabei natürlich zunächst die Fehlermeldungen und Warnungen. Insbesondere die Warnungen über unvollständige Sensitivitätslisten sollten ernst genommen werden. Bei der Synthese werden die Sensitivitätslisten oftmals als vollständig angenommen, bei der Simulation stets entsprechend der Spezifikation. Dadurch kann es zu Abweichungen zwischen der simulierten und der implementierten Schaltung kommen. Darüber hinaus listet der Synthesis Report auf, welche Schaltungselemente für die Realisierung des VHDL-Modells verwendet wurden. Dies sollte auf Plausibilität Seite 12 von 19

geprüft werden. Weiterhin kann das Ergebnis der Synthese mit View RTL- Schematic als Schaltplan angezeigt werden. Will man später noch Reports zu den einzelnen Aktivitäten ansehen, geschieht das in den rechten Fenstern der ISE. Vorhandene Reports werden schwarz dargestellt, grau hinterlegte Reports sind (noch) nicht verfügbar. Die entsprechenden Aktionen wurden bisher nicht ausgeführt. Im Fenster oben links wird der gewünschte Report ausgewählt (hier Synthesis Report). Im Fenster unten links kann wie in einem Inhaltsverzeichnis zu bestimmten Kapiteln gesprungen werden (hier: HDL Compilation). Rechts ist das entsprechende Textfenster, in dem beliebig gescrollt werden kann. Suchen Sie damit die unten abgefragten Informationen im Synthese Report. Weitere generelle Hinweise zum Synthesereport finden sich im Verzeichnis /doc. Seite 13 von 19

Synthesesergebnisse: Bitte geben Sie untenstehend bei der Synthese erkannten Register (mit Anzahl der FlipFlops) und arithmetischen Einheiten (z.b. Zähler, Addierer, Vergleicher) mit Bitbreiten sowie die zugehörigen Signale an. Weiterhin geben Sie untenstehend die bei der Synthese erkannten FSM-Einheiten mit Angabe des Signals für den Zustand an. Geben Sie die Gesamtzahl der benötigten LUTs und FFs an. Geben Sie die maximal erreichbare Taktfrequenz an. Register: Arithmetische Einheiten FSM #LUTs: #FF: Max. Taktfrequenz: Seite 14 von 19

Implement Design: Translate Erst mit der Implementierung beginnt die Anpassung an die FPGA Technologie. Der erste Schritt Translate führt im Wesentlichen nur eine Konvertierung verschiedener Dateiformate durch und muss in diesem Versuch nicht weiter beachtet werden. Dieser Schritt kann wichtig sein, wenn mehrere Schaltungsteile, die in verschiedenen Formaten beschrieben sind (z.b. Netzliste und VHDL) zusammengeführt werden müssen (siehe Versuch 6). Map Dieser Schritt nimmt die eigentliche Technologieanpassung vor. Dabei wird die von der Synthese erzeugte abstrakte RTL-Netzliste mit den auf dem FPGA verfügbaren Elementen realisiert. Der dabei erstellte Map-Report enthält zahlreiche nützliche Informationen. Zum Beispiel kann man dem Abschnitt Design Summary entnehmen, wie viele LUTs und Flip-Flops benötigt werden. Place & Route Dies ist der aufwändigste Teil der Implementierung. Die Software versucht dabei, eine optimale Anordnung der Schaltungsteile im FPGA zu finden und diese dann mit den vorhandenen Ressourcen zu verdrahten. Bei den erzeugten Reports ist unbedingt der Pad-Report zu kontrollieren, ob die Einstellungen der IO-Pins korrekt sind. Es wird eine Datei designname.pad erzeugt, die schlecht lesbar ist. Es gibt weiter eine designname_pad.txt die so formatiert ist, dass sie mit einem Texteditor gut lesbar ist. Verwenden Sie diese Datei. In Ihr müssen alle Signale die in der Entity vorkommen in der Spalte Signal Name aufgeführt sein und in der Spalte Constraint als LOCATED markiert sein. Fehlt dieser Eintrag wurde die Pin- Location vom System automatisch vergeben und ist in unserem Fall falsch. Der Post Place & Route Static Timing Report informiert unter anderem, mit welcher Taktfrequenz die Schaltung höchstens betrieben werden kann. Überprüfen Sie, ob die Schaltung mit den vorgegebenen 50MHz funktioniert. Lassen Sie sich mit View/Edit Routed Design (FPGA Editor) das Layout der Schaltung im FPGA grafisch anzeigen. Nachdem man etwas hineingezoomt hat, sieht man die einzelnen Slices. Durch Doppelklick auf ein Slice kann man sich die Konfiguration des Slices anzeigen lassen. Der FPGA-Editor steht im kostenlosen WebPack nicht zur Verfügung. Seite 15 von 19

Generate Programming File Als letzter Schritt wird die generierte FPGA-Konfiguration so formatiert, wie sie im Konfigurationsspeicher des FPGAs vorliegen muss. Das Ergebnis nennt sich dann Konfigurationsbitstream oder kurz Bitstream und wird in Dateien mit der Endung *.bit gespeichert. Für diesen Versuch können dafür die Standardeinstellungen verwendet werden. Im Allgemeinen muss bei der Bitstreamgenerierung angegeben werden, wie sich der FPGA während und kurz nach der Konfiguration verhält. Nach fehlerfreiem Verlauf der oben beschriebenen Punkte kann das FPGA jetzt mit der Funktion unserer Ampel programmiert werden. Dazu verwenden wir das Programm impact wie nachfolgend beschrieben. Seite 16 von 19

Für die nachfolgenden Schritte muss das XILINX-Entwicklungsboard mit einem USB-Kabel an Ihrem Rechner angeschlossen und eingeschaltet sein! Das ist mit Xterminals nicht möglich! Starten Sie das Programm impact (Doppelklick oder rechte Maustaste -> Run). Nun wird die Programmierungskette eingestellt und die zu verwendenden Bitstreams ausgewählt. Doppelklicken Sie Boundary Scan und danach File -> Initialize Chain. Seite 17 von 19

(Wurde kein Baustein erkannt, haben Sie vielleicht vergessen das Board über USB- Kabel am Computer anzuschließen oder einzuschalten) Sie werden jetzt automatisch nach den Dateien gefragt, die für die Programmierung verwendet werden sollen. Bestätigen Sie mit Yes und weisen Sie dem FPGA das zuvor erzeugte Bitfile für die Ampel zu: Seite 18 von 19

Für den zweiten Baustein (xcf04s) geben Sie Bypass an. Er wird also nicht programmiert. Das nachfolgende Fenster Device Programming Properties bestätigen Sie einfach mit OK. Jetzt sollte das Fenster wie folgt aussehen: Führen Sie jetzt Program FPGA Only aus und nicht den ersten Punkt Flash und FPGA, damit würde die Standardkonfiguration zum Testen des Boards nach Einschalten gelöscht! Nach einer Änderung des VHDL-Codes ist die Generierung eines neuen Bitstreams beginnend mit der Synthese und der erneute Download auf das Board zwingend. Der Reset liegt auf dem Schiebeschalter rechts (SW0) und ist in der oberen Position (logic 1) aktiv. Bei aktivem Reset sollten alle Ampeln Rot anzeigen (fail save). Seite 19 von 19