Verifikation Die Geschichte zeigt, dass Debugging für das Engineering unerlässlich ist

Von Sumit Vishwakarma *

Firmen zum Thema

„First actual case of a bug being found“: Der Programmiererin Grace Hopper gilt als die Person, die den Begriff „Debugging“ allgemein gebräuchlich machte, als sie in den 1947 Jahren eine Motte im a Mark II Computer der Harvard University entdeckte, die Fehler verursachte. Damals wie heute stellt die Suche nach Fehlern eine der zeitraubendsten Tätigkeiten von Software- und Hardware-Ingenieuren dar.
„First actual case of a bug being found“: Der Programmiererin Grace Hopper gilt als die Person, die den Begriff „Debugging“ allgemein gebräuchlich machte, als sie in den 1947 Jahren eine Motte im a Mark II Computer der Harvard University entdeckte, die Fehler verursachte. Damals wie heute stellt die Suche nach Fehlern eine der zeitraubendsten Tätigkeiten von Software- und Hardware-Ingenieuren dar.
(Bild: gemeinfrei / Montage von Siemens EDA)
Wenn ich eine Stunde Zeit hätte, um ein Problem zu lösen, würde ich 55 Minuten damit verbringen, über das Problem nachzudenken und fünf Minuten über die Lösung.

Albert Einstein

Jeder Ingenieur weiß genau, was Einstein mit seinem berühmten Zitat meint. Wahrscheinlich gibt es kaum eine Tätigkeit, die besser zu diesem Zitat passt als Debugging.

Der Begriff Debugging entstand in den 1940er Jahren, als die amerikanische US-Navy-Wissenschaftlerin Admiral Grace Hopper in der Harvard University an einem Mark-II-Computer arbeitete. Im Mark II wurden statt den im Mark I verwendeten elektromechanischen Zählern elektromagnetische Hochgeschwindigkeitsrelais eingesetzt. Dadurch erzielte Mark II im Vergleich zu seinem Vorgänger deutliche Geschwindigkeitsvorteile.

Eines Tages stellte Grace Hopper Störungen im Betrieb des Computers fest. Als ihre Teammitglieder der Ursache des Problems auf den Grund gingen, fanden sie eine Motte (ein echtes Insekt, auf Englisch als „Bug“ bezeichnet), die in den Computer geflogen und in einem der Relais steckengeblieben war. Nach dem Entfernen der Motte, also des „Bugs“, nahm der Computer seinen normalen Betrieb wieder auf. In diesem Moment merkte Grace Hopper an, dass ihr Team das System „debugged“ (den Bug entfernt) hätte. Damit hatte sie einen Ausdruck geprägt, der für immer im ingenieurwissenschaftlichen Bereich Bestand haben sollte.

Am 9. September 1947 wurde die tote Motte mit folgendem Hinweis in das Logbuch des Computers eingeklebt: Erster Fall eines tatsächlich vorgefundenen Bugs.

Debugging umfasst fast die Hälfte der Arbeitszeit

Umfrage unter Ingenieuren: Egal ob bei ASICs oder in der FPGA-Entwicklung, Debugging ist der Tätigkeitsbereich, mit dem in der Regel die meiste Zeit verbracht wird.
Umfrage unter Ingenieuren: Egal ob bei ASICs oder in der FPGA-Entwicklung, Debugging ist der Tätigkeitsbereich, mit dem in der Regel die meiste Zeit verbracht wird.
(Bild: Wilson Research Group)

Das von Grace Hopper durchgeführte erstmalige „Debugging“ war jedoch nur der Anfang, wie eine aktuelle Studie der Wilson Research Group beweist, die untersucht, wieviel Zeit Verifikationsingenieure mit verschiedenen Arbeitstätigkeiten verbringen. Obwohl sie an unterschiedlichen Aufgaben wie Testplanung, Entwicklung des Testaufbaus und Simulationsdurchführung beteiligt sind, nimmt das Debugging mehr als 40% der Arbeitszeit jedes Ingenieurs in Anspruch.

Das Debugging umfasst alle Aspekte des Halbleiterdesigns und Verifikationsprozesses. Gegenüber allen anderen Klassen ist das Debugging eines Mixed-Signal-Designs jedoch eine äußerst mühsame und zeitaufwändige Aufgabe. Das liegt daran, dass das Debugging eines Mixed-Signal-Designs sowohl digitales als auch analoges Fachwissen erfordert.

Fehler in Verifikationsprozessen früh auffangen

Um eine schnelle Durchlaufzeit zu erreichen und Bugs in der Vorlaufphase zu vermeiden, setzen die meisten Verifikationsingenieure bei ihrer Verifikationsmethodik auf einen höheren Abstraktionsgrad. Hierfür gibt es unterschiedliche Ansätze, die man verfolgen kann. Ein beispielsweise von Siemens EDA empfohlenes Vorgehen ist der Einsatz eines Real Number Models (RNM). Dieses ermöglicht es Verifikationsingenieuren, einen analogen Block als diskretes Gleitkommamodell zu beschreiben und ihn fast mit derselben Geschwindigkeit wie bei Digitalsimulationen in einem digitalen Solver zu simulieren.

Simulation eines analigen Blocks in einem Gleitkommamodell mittels eines Real Number Models (RNM) und eines digitalen Solvers.
Simulation eines analigen Blocks in einem Gleitkommamodell mittels eines Real Number Models (RNM) und eines digitalen Solvers.
(Bild: Siemens EDA)

Wenn ein RNM-Block eines Designs mit einem Standardlogikblock interagiert, findet eine Signalumwandlung statt. Vom digitalen Solver werden dabei „real to logic“- und „logic to real“-Randelemente eingefügt. Dasselbe gilt auch für eine Mischsignalsimulation, wenn SPICE mit Logik- oder RNM-Blöcken zur Interaktion gelangt. Der Mixed-Signal-Simulator fügt jeweils ein „electrical to real“- oder „electrical to logic“-Randelement ein. Mit zunehmender Hierarchie und Komplexität des Designs steigt auch die Anzahl der Iterationen, was das Debugging dieser Randbereichsumwandlungen umständlich macht.

Weitere Informationen hierzu finden Sie im Artikel „

“ desselben Autors, der detailliertere Informationen über die Methodik für Mischsignale bietet.

* Sumit Vishwakarma ist Product Manager for Mixed-Signal Solutions in der AMS BU von Siemens EDA

(ID:47872243)