Gecko3 - CCC Event Weblog
Gecko3 - CCC Event Weblog
Gecko3 - CCC Event Weblog
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