FPGA Soft Core-Debugging

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Beim Entwickleln und Experimentieren mit neuen Soft Cores kommt es i.d.R. häufiger vor, das ein Design nicht auf Anhieb läuft. Hier sollen ein paar Hinweise gegeben werden, wo und wie man dem Fehlerteufel auf die Spur kommt.

Problem Untersuchungsmethode Ursachen
Läuft der Core überhaupt los? Adresszähler beobachten (auf 7-Segment-Anzeige oder Logikanalysator darstellen und auf Reset triggern) falsche Resetpolarität
Werden die richtigen Instruktionen gelesen? Adress- und Datenbus beobachten Speicherdefionition mit array(tiefe-1 downto ) of slv; statt

array(0 to tiefe-1) of slv;

Bleibt der Core irgendwo hängen? Adresszähler beobachten Zugriff auf nicht belegte Adressen und fehlendes Acknowledge

Werkzeuge

Neben der erwähnten 7-Segment-Anzeige, die auf vielen Evalboards verbaut ist, eignen sich natürlich auch LEDs zur Anzeige von Systemzuständen. Damit ist aber nur ein sehr rudimentäres Debugging möglich.

Neben "Hardware"-Logikanalysatoren eignen sich bei FPGAs sehr gut IP-Cores. Der Nachteil ist: sie benötigen Chipfläche.

Unter der Alteraentwicklungsumgebung heißt der IP-Logikanalysator SignalTap. Bei Xilinx nennt sich das Werkzeug ChipScope und kostet Geld. In Altium Designer ist neben anderen Modulen ebenfalls ein Logikanalysator dabei. Als OpenSource-Lösung bietet sich der FPGA Based Logic Analyzer von http://www.sump.org/projects/analyzer an, welcher natürlich auch für interne Signale funktioniert.