25.12.2013 Aufrufe

Gecko3 - CCC Event Weblog

Gecko3 - CCC Event Weblog

Gecko3 - CCC Event Weblog

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

5. VHDL<br />

In diesem Kapitel beschreiben wir die Entwicklungen die wir für den FPGA gemacht haben.<br />

Es wurde alles in VHDL im Xilinx ISE programmiert [Sch03]. Auch zur Simulation wurde<br />

das ISE benutzt. Als Synthesewerkzeug kam Xilinx XST zum Einsatz.<br />

Wie aus dem Projektplan ersichtlich ist, waren weitere Cores geplant, konnten aber in<br />

der zur Verfügung stehenden Zeit nicht mehr realisiert werden. Darum folgt hier nur die<br />

Beschreibung des Loopback Cores.<br />

5.1. Kommunikations Loopback<br />

5.1.1. Zweck und Anforderungen<br />

Der Loopback Core dient zum Entwickeln und Testen der Kommunikation zwischen dem<br />

FPGA und dem EZ-USB Chip. Er stellt also eine einfache Implementierung des im Kapitel<br />

4 beschriebenen Handshake-Protokolls dar. Die Daten die vom EZ-USB gesendet werden,<br />

müssen bis zum Abschluss der Sequenz gespeichert werden und sollen danach zurückgesendet<br />

werden. Dies ermöglicht eine Überprüfung der gesendeten Daten und beider Kommunikationswege.<br />

Der Core muss Sequenzen speichern können, die länger als ein Wort sind, da in<br />

der Anwendung normalerweise grössere Datenmengen ausgetauscht werden sollen und die<br />

USB Schnittstelle nur bei grösseren Datenblöcken die hohen Datenraten erreicht. Die VHDL<br />

Sourcecodes sind im Anhang ab E.2 zu finden.<br />

5.1.2. Realisierung<br />

Dem Loopback Core liegt ein klassischer FSM-D (Finite-State-Machine/Datapath) Ansatz<br />

zu Grunde. Diesem Ansatz folgend wurde zuerst der Datenpfad erstellt. Als zentrales Element<br />

dient ein Block RAM Element. Block RAMs sind direkt als Hardware im Spartan 3 integriert<br />

und müssen nicht synthetisiert werden. Der Vorteil dabei ist, dass keine Speicherstruktur<br />

erzeugt werden muss. Das spart Zeit bei der Entwicklung und schont die FPGA Ressourcen,<br />

da diese ineffizent für regelmässige Strukturen sind. Der Nachteil daran ist die Abhängigkeit<br />

der Zielplattform, da Block RAMs nur in Xilinx FPGAs (Spartan 3 oder Virtex 2 und<br />

höher) vorhanden sind. Der Rest des Datenpfads besteht aus einem Auf-/Abwärtszähler als<br />

Adressgenerator, einem Nulldetektor und dem Tri-State Buffer für den Datenbus.<br />

Die Statemachine wurde anschliessend im Xilinx ISE mit Hilfe des Programms StateCAD<br />

gezeichnet. Dieses erlaubt die graphische Eingabe der Zustände, den Übergängen, der Signalwerte<br />

und den Bedingungen und generiert daraus wahlweise VHDL oder Verilog Code.<br />

Dieser Weg wurde zum einen aus Neugier an der graphischen Eingabe gewählt und zum<br />

anderen weil Änderungen einfacher vorgenommen werden können. Damit muss die Dokumentation<br />

(State <strong>Event</strong> Diagramm) nicht separat erstellt werden und ist immer aktuell. Die<br />

so erstellte Statemachine ist in Abbildung 5.2 dargestellt.<br />

Project Report 13

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!