Achillesferse Verifikation

Die Verifikation des Designs ist und bleibt derzeit die Achillesferse bei der Chipentwicklung. Bei großen Projekten übersteigt schon heute der Aufwand für die Verifikation im hohen Maße den Designaufwand. Durch neue Entwicklungsplattformen will man dieser negativen Entwicklung Einhalt gebieten.

Die Verifikation des Designs ist und bleibt derzeit die Achillesferse bei der Chipentwicklung. Bei großen Projekten übersteigt schon heute der Aufwand für die Verifikation im hohen Maße den Designaufwand. Durch neue Entwicklungsplattformen will man dieser negativen Entwicklung Einhalt gebieten.

Fragt man ASIC-Designer zu den gravierenden Veränderungen in den letzten Jahren, so antworten die meisten, dass sie die Bausteine bei immer komplexer werdenden Funktionen und Gatterzahlen in immer kürzerer Zeit fertig stellen müssen. Hinzu kommt ein weiteres Problem: Während eine zeitliche Abschätzung des Aufwands des Entwurfs der ASIC-Funktionen relativ gut gelingt, fällt es äußerst schwer, den Verifikationsaufwand zu kalkulieren. Derzeit kann die Verifikation bis 65% der gesamten Entwicklungszeit in Anspruch nehmen. In den Augen der meisten Entwickler ist das viel zu viel Zeit und wird für die Zukunft als kritischster Faktor im Bereich der Chipentwicklung angesehen.

Die Gründe dafür liegen im Wesentlichen in der steigenden Komplexität der zu entwerfenden ASICs. Vielen Funktionen erfordern entsprechend viele Test-Cases. Verschärfend kommt hinzu, dass mehr und mehr Schnittstellen zu implementieren sind, um das Einsatzspektrum des ASICs möglichst breit anzulegen. Ein Beispiel hierfür sind Prozessoren, welche neben den Standardschnittstellen (Speicher, JTAG, RS-232, I2C, usw.) immer mehr komplexe Schnittstellen beinhalten (LCD, USB, PCI-Express, Ethernet, etc.). Entsprechend viele Simulationsmodelle (C, HDL o.ä.) sind für die Simulation notwendig, welche die realen Gegebenheiten nachbilden müssen. Ein weiteres Problem ist die steigende Simulationszeit. Gerade bei Videoapplikationen oder bei der Simulation komplexer Datenübertragungen können schnell Tage und Wochen Simulationszeit für einige Sekunden Echtzeit zusammenkommen.

Aus diesen Gründen besteht der Wunsch, mittels Emulation und Rapid-Prototyping das zu entwerfende ASIC mit maximaler Geschwindigkeit in der späteren realen Umgebung zu verifizieren. Die Vorteile liegen auf der Hand: Die Systemumgebung wird nicht mit Modellen nachgebildet, welche in vielen Fällen nicht einer hundertprozentigen Abbildung entsprechen. Durch die hohe Verarbeitungsgeschwindigkeit lassen sich in kurzer Zeit viele Test- Cases bearbeiten. Einer der größten Vorteile ist es jedoch, die Funktion des ASICs in dessen Zusammenarbeit in der späteren Applikation überprüfen zu können (Systemtest). Bezogen auf das Beispiel des Prozessors, lassen sich verschiedene LC-Displays anschließen, um die korrekte Arbeitsweise des integrierten Display-Controllers zu verifizieren.

Viele Anwender verlassen den klassischen Weg, die Emulation und das Rapid- Prototyping erst nach fast vollständiger Fertigstellung des gesamten ASIC-Designs einzusetzen. Die gestiegene Komplexität machte es immer schwieriger und zeitaufwändiger, ein Design mit mehreren Millionen Gattern auf einer entsprechenden Plattform in Betrieb zu nehmen. Fehler könnten sowohl in den Teilkomponenten des Designs als auch im Zusammenspiel der Komponenten liegen. Meist wurde die Verifikation dieser Teilkomponenten mit C- oder HDLModellen durchgeführt, die entweder keine hundertprozentige Testabdeckung besitzen oder nicht vollständig dem realen Äquivalent entsprechen. Daher ließen sich entsprechende Probleme vorher nicht aufdecken. Die Ursache der Fehlfunktionen einzugrenzen war häufig nicht trivial und äußerst zeitraubend.

Ist dann der Schaltungsteil gefunden, welcher nicht wie erwartet arbeitet, muss dieser korrigiert werden. An dieser Stelle entsteht eine Gefahr für weitere Fehler. Der Entwickler muss darauf achten, nicht andere Funktionen durch die Korrektur zu verändern. Meist ist ein erneutes Einarbeiten in die Thematik unumgänglich, gerade wenn der Entwurf dieser Komponente mehrere Monate zurückliegt. Entsprechend hoch ist das Risiko, den Terminplan an dieser Stelle der Entwicklung zu sprengen.