FPGA Soft Core-Debugging: Unterschied zwischen den Versionen

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche
(erste Version)
 
K (Textersetzung - „class="sortable“ durch „class="wikitable sortable“)
 
(Eine dazwischenliegende Version von einem anderen Benutzer wird nicht angezeigt)
Zeile 1: Zeile 1:
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.
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.


{| border="1" class="sortable"
{| border="1" class="wikitable sortable"
|-
|-
!Problem
!Problem
Zeile 28: Zeile 28:
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.  
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.
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.
[[Kategorie:FPGA und Co]]

Aktuelle Version vom 20. Januar 2014, 10:26 Uhr

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.