25.12.2013 Aufrufe

Gecko3 - CCC Event Weblog

Gecko3 - CCC Event Weblog

Gecko3 - CCC Event Weblog

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

5. VHDL<br />

Die Statemachine übernimmt die Abhandlung des Handshake-Protokolls mit dem EZ-USB<br />

und steuert dementsprechend die Signale des Datenpfads. Durch die sehr einfache Implementierung<br />

wird beim Empfangen der Adresszähler hinauf- und beim Senden heruntergezählt.<br />

Dadurch werden die Daten in umgekehrter Reihenfolge zurückgesendet (LIFO).<br />

Das in Abbildung 5.1 dargestellte Topmodul des Loopback enthält ein entscheidendes<br />

Element, das nach den Tests mit dem EZ-USB hinzugefügt werden musste: Zwei zusätzliche<br />

Buffer, die die Handshake Eingangssignale zwischenspeichern bevor sie zur Statemachine<br />

gelangen. Diese sind nötig, weil wir bei Messungen festgestellt haben dass wir mit Metastabilität<br />

zu kämpfen haben. Dies wird durch unser asynchrones System ausgelöst und kann nicht<br />

verhindert werden. Mit Hilfe des Double-Bufferings kann das Risiko Metastabilerzustände<br />

massiv reduziert werden [Cad00]. Dies wurde auch durch unsere Tests bestätigt.<br />

Dieser Core ist nur eine “Testschaltung”, eine Implementierung für eine Applikation muss<br />

sicher um zusätzliche Elemente zur Fehlerbehandlung, Prüfung des Speicherfüllstands und<br />

einem Watchdog ergänzt werden.<br />

5.1.3. Testbench und Simulationsergebnis<br />

Für die Progammierung der Testbench wurde ein anderer Codierstil gewählt, da Core und<br />

Testbench von der gleichen Person erstellt wurden. Dieses Vorgehen reduziert die Wahrscheinlichkeit,<br />

dass sich ein Fehler sowohl in den Core wie auch in die Testbench einschleicht<br />

und bis am Schluss unentdeckt bleibt.<br />

Abbildung 5.1.: Schema der höchsten Ebene des Loopback Cores<br />

14 Christoph Zimmermann

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!