Cogita integriert Daten-Screening, Verarbeitung, und Visualisierung für simulationsbasiertes ASIC- und FPGA-Debugging. Es kann riesige Datenmengen aus unterschiedlichen Quellen handeln (z.B. Logdateien und Wellenformdaten) und bietet eine klare visuelle Ursachenanalyse. Einige Grundfunktionen werden nachfolgend beschrieben.
Eine der größten Herausforderungen des traditionellen Batch-Debugging besteht in der Korrelation von Protokolldateien mit Wellenformen. Beim Debugging mit einem Texteditor, zur Anzeige des VCD-Dateiprotokolls in Relation zu einer Wellenform, sind Daten unterschiedlicher Attribute zu interpretieren: die Protokolldatei zählt die Zeit vertikal, die Wellenform horizontal. Das Protokoll enthält Text, die Wellenformen rein numerische Werte.
Cogita aggregiert mehrere Datenformate zu einer einzigen Darstellung. Es zeigt auf horizontaler Zeitachse, eine Kombination aus Testbench- und DUT-Ereignissen und damit auch die Grenzen der Einzelanzeigen, auf. Das Umschalten zwischen Protokollmeldungen und den Wellenformen entfällt.
Die Fehlersuche erfolgt in Etappen. Fehlermeldungen dienen als Ausgangspunkt für das Debugging eines fehlerhaften Tests. Der Ingenieur trifft anschließend Annahmen und validiert sie anhand der kombinierten Daten, solange bis die Fehlerursache erkannt wurde. Mit der riesigen Gate-Anzahl im modernen VLSI, tippen Verifikationsingenieure oft daneben, weil sie aufgrund falscher Annahmen und Folgerungen vom rechten Debugpfad abkommen. Dies ist zeitaufwendig und erzeugt ineffiziente Debug-Zyklen. Typisch für eine Big-Data-Aufgabe, trifft der Ingenieur eine Hypothese und prüft diese mit einer Datenabfrage. Die Herausforderung besteht im extremen Verhältnis zwischen den aussagekräftigen und den redundanten Daten.
Beispielsweise helfen ab einem bestimmten Punkt eines Debug-Prozesses, nicht mehr als zehn Nachrichten und Wellenformen zur korrekten Entscheidung. Cogita integriert hochentwickelte Daten-Screening- und Verarbeitungsmethoden, die solche wichtigen Nachrichten und Wellenformen isolieren, wie in den folgenden Beispielen beschrieben (Abschnitt Anwendungen).
Die Visualisierung ist ein Schlüsselelement der Datenanalyse. Wie in unserem vorherigen Beitrag ausführlich erläutert [1], stellt Cogita die gescannten und verarbeiteten Daten in einer geeigneten Weise dar.
Die Datenquelle (Logmeldung oder VCD-Wellenformen) bestimmt dabei nicht die Darstellung, diese wird geeignet zum Testszenario adaptiert. Sowohl ein RTL-Bus als auch ein ganzzahliger Testbench-Wert können ausgetauscht werden, als auch Werte über einen Bus oder nach Höhe. Dies bietet enorme Vorteile gegenüber dem textbasierten Debugging und gewährleistet einen akkuraten und kürzeren Verifikationszyklus.