FPGA-Debugging mit Mixed-Signal-Oszilloskopen

Die immer weitere Verbreitung von FPGAs in modernen Elektronik-Schaltungsdesigns macht auch neue Ansätze zum Debugging nötig. Wie diese Aufgaben mit einem Mixed-Signal-Oszilloskop und „Debugging-Kernen“ unkompliziert zu lösen sind, zeigt dieser Beitrag.

Die immer weitere Verbreitung von FPGAs in modernen Elektronik-Schaltungsdesigns macht auch neue Ansätze zum Debugging nötig. Wie diese Aufgaben mit einem Mixed-Signal-Oszilloskop und „Debugging-Kernen“ unkompliziert zu lösen sind, zeigt dieser Beitrag.

In aktuellen Embedded-System-Designs spielen FPGAs oft eine tragende Rolle. Sie arbeiten in solchen Systemen zusammen mit Digital-Analog-Umsetzern, Analog-Digital-Umsetzern, digitalen Signalprozessoren, Speichern, Mikroprozessoren und anderen Bauteilen. Niedrige Entwicklungskosten und die Programmierbarkeit dieser Bauteile sorgen für eine immer stärkere Verbreitung von FPGAs in immer komplexeren Systemen. Daraus erwächst ein Bedarf an besseren Messmitteln, die speziell auf FPGAs ausgelegt sind.

Mixed-Signal-Oszilloskope (MSOs) sind Scopes, die zusätzlich zu analogen Kanälen mehrere digitale Kanäle für die Logikpegel-Darstellung bieten. Man kann mit solchen Geräten schnell Fehler finden, die anders schwer zu fassen wären. Die hier beispielhaft von Agilent Technologies (www.agilent.com) herangezogenen Scopes bieten dem Entwickler darüber hinaus eine dedizierte FPGA-Applikationslösung, die das Debugging solcher Systeme erheblich beschleunigt.

Warum Mixed-Signal-Oszilloskope?

Der ursprüngliche Grund für die Entwicklung der Geräteklasse „Mixed-Signal-Oszilloskop“ bestand darin, dass in Systemen neben langsamen analogen Signalen immer mehr schnelle Digitalsignale auftauchten. Vor etwa zehn Jahren entwickelte Agilent (damals noch Hewlett-Packard) daher ein Gerät, das beide Signaltypen simultan messen und anzeigen konnte. Der Name „Mixed-Signal-Oszilloskop“ kommt daher, dass solche Geräte sowohl analoge als auch digitale Signale darstellen können. Obwohl solche Geräte ursprünglich dafür gedacht sind, Systeme mit analogen und digitalen Signalen zu debuggen, sind sie auch in rein digitalem Umfeld sehr gut einsetzbar.

Sowohl Altera als auch Xilinx liefern kostenfreie MSO-Debugging-Kerne, die ursprünglich für Logikanalysatoren entwickelt wurden. Weil MSOs auch Digitalkanäle aufweisen, passen Debugging-Kerne auch für solche Geräte. ATC2 wird beispielsweise als Standardkomponente mit Chip-Scope Pro von Xilinx mitgeliefert und kann mit dem Programm Core Inserter an ein bestehendes Design angeflanscht werden, ohne dass dafür die originale HDL modifiziert werden müsste. Altera bietet LAI als Standardkomponente ihrer Entwicklungsumgebung Quartus 2. Auch dieser Debugging-Kern kostet den Anwender nichts.

LAI und ATC2 könnten sowohl als Zustandskerne als auch als Timingkerne parametriert werden. Bei der Konstruktion der Debugging-Kerne wurde besonders darauf geachtet, dass sie das Timing des Testobjekts möglichst wenig verändern. Zustandskerne nutzen dazu ein mehrstufiges Pipelining; bei Timingkernen hingegen werden die Signale nicht über Register geführt. Zustandskerne dienen primär dem Funktionstest; die Messsignale werden hierbei zwischengepuffert und damit sichergestellt, dass sie gleichzeitig am Ausgang erscheinen. MSOs sind eigentlich nicht dafür gedacht, den aktuellen Zustand eines endlichen Automaten zu ermitteln. Über einen Zustandskern geht das aber doch. Setzt man die Zeitkanäle des MSO ein, erhalten die Entwickler vom Zustandskern Signal- und Businhalte zusammen mit dem Taktsignal. Auf diese Weise kann der Logikzustand ermittelt werden. Manche MSOs machen das automatisch, auf anderen MSOs muss der Anwender das visuell durchführen, indem er Signal- und Bus-Werte an der entsprechenden Taktflanke abliest und daraus den Logikzustand ermittelt.