Anbieter zum Thema
Wo verstecken sich die Ausfälle?
Einen guten Tipp zum Aufspüren der oder des Fehlers finden wir bei Sherlock Holmes, er zeigt uns, dass wir endlich umdenken müssen: Wenn man alle logischen Lösungen eines Problems eliminiert, ist die unlogische, obwohl unmöglich, unweigerlich richtig. Und so fragen wir uns also, was haben wir bisher ignoriert, welche Ideen sind leichtfertig und als unmöglich verworfen worden?
Wir können es nicht länger ignorieren – das perfekte Design hat einen Bug. Trotzdem unser Chip alle Prüfungen fehlerfrei besteht. Dass dieser sich ob aller Anstrengungen nicht finden lässt, bedeutet bei konsequentem Nachdenken genau eines: Er ließ sich durch die genutzte Simulationen nicht finden. Weiter nichts. Der Umkehrschluss (es gibt ihn nicht) wird allzu oft und schnell getroffen. Gern glauben wir, alles wäre richtig. Aber glauben heißt nicht wissen. Wir bekennen aber ehrlich, die erzielte Simulationsabdeckung kann bei unseren Schaltkreisen nicht mehr so recht in die Nähe von 100% kommen. Die Paarung von Komplexität und nicht erreichbarer vollständiger Verifikations-Abdeckung lässt zähneknirschend nur den einen Schluss zu: Dieser von uns liebevoll simulierte und sorgfältig verifizierte und erprobte IC ist eben noch nicht so perfekt, wie wir dachten.
Ein weiterer Trugschluss liegt darin, dass ein selten auftretender Ausfall kein systematischer Ausfall (in unserem Fall ein Bug) sein kann. Nur was ist, wenn unser Bug in der Komplexität derart tief verborgen ist, dass er nur selten zum tragen kommt? Wenn er mit einer unbedeuteten, unbekannten und kaum gezielt nachzustellenden einzigen Bedingung verknüpft ist? Was wenn unser Bug immer nur dann auftritt, wenn es regnet, die Beifahrertür offen, und das auch noch bei eingeschaltetem Blinker links und betätigter Bremse? Nun, das ist sicherlich ein willkürliches Beispiel – normalerweise treten solche Bugs nicht unter so einfach beschreibbaren Bedingungen auf.
Selbst nach jahrelangem problemlosem Einsatz eines Schaltkreises kommt es immer wieder vor, dass noch ein neuer Bug gefunden wird. Die Seltenheit seines Vorkommens versteckt in der hohen Komplexität und vermindert drastisch die Wahrscheinlichkeit seiner Entdeckung. Ähnlich wie in einem großen Softwarepaket sind derart viele Programmverzweigungen in einem digitalen Netzlisten-Code enthalten, dass die benötigte Zeit zur wirklich vollständigen Simulation und Erprobung nach herkömmlichen Methoden wohl bereits die stetig sinkende Produktlebensdauer überschreiten würde. Selbst der Einsatz beliebig vieler parallel simulierender Ingenieure (so man die überhaupt hätte) kann diese Aufgabe nicht mehr in endlicher Zeit bewältigen. Erschwerend hinzu kommt, dass vermutlich der ohnehin schon sehr komplexe Digitalteil umzingelt ist von einer Welt voll analoger Komponenten, sei es im Chip oder durch die Applikation um ihn herum. Wie wir alle wissen, die Welt ist nun mal analog, folgerichtig ist es auch die um einen digitalen Chip.
Willkommen in der Mixed-Signal-Welt
Das Dilemma in der Praxis ist noch größer. Selbst wenn man weiß, was man ändern würde, um den Fehler zu beheben, dann ist da auch noch ein Logistiknetzwerk mit einer langen Verarbeitungskette bis zum Endanwender – wer wagt das Risiko eines Austausches der Chip-Version? Denn ein neuer IC kann neue Fehler bergen und oft ist die klügere Entscheidung, lieber mit dem Bug zu leben und genau zu wissen, wie man ihm entgehen kann, als die bereits eingefahrene Verarbeitungskette zu gefährden.

Der Aufwand, alle Qualifikationen in dieser Kette erneut durchzuführen, steht nur zu oft in krassem Missverhältnis zum zu erwartenden Nutzen. Gut, wer bereits im ersten Anlauf alles richtig gemacht hatte. So bleibt oft nur eine Entscheidung: mit dem Bug leben, denn der Wunsch nach Perfektion steht konträr zu Aufwand und Risiko.
Die komplizierte Welt eines Automobil-Schaltkreises zu simulieren, ist inzwischen eine hohe Kunst geworden. Eine solche Systemverifikation erfordert vom Ingenieur eine Know-How-Mixtur die vom analogen und digitalen Design bis hin zur Software-Erstellung für den Flash-Speicher eines eingebetteten Mikrocontrollers (oder gar mehrerer parallel arbeitender und miteinander kommunizierender Mikrocontroller) reicht.
Ein solches System auch nur in einer Grundfunktion im Ganzen zu simulieren und in endlicher Zeit einen Chip in seiner Funktion agieren zu sehen, bedeutet einen erheblichen Aufwand zu investieren. Genügend Rechenleistung, Arbeitsspeicher und Plattenplatz vorausgesetzt, kann aber nur auf diese Weise bestätigt werden, dass der Chip zum Leben erwachen und seiner Erprobung und Qualifikation nichts im Wege stehen wird.
Im Unterschied zu einer analogen Schaltung ist die digital Welt des Chips immer gnadenlos – da gibt es keine „parametrischen Abweichungen“ (die ggf. immer noch die Funktion gewährleisten können und „Verhandlungsspielraum“ bieten). Digital sein heißt vorzugsweise eines – es funktioniert richtig oder falsch, ein dazwischen gibt es nicht. Das klingt furchtbar – aber wie später noch zu sehen sein wird, ist genau das das wirklich Gute daran.
(ID:356648)