Eckdaten

Die Bereitstellung einer Infrastruktur für eine formalisierte Verifikationsmethodik, welche die speziellen Bedürfnisse des analogen Design-Flows berücksichtigt, konnte eine langjährige Lücke im Bereich des analogen Designs schließen. Verifier stellt ein umfassendes Werkzeug für das gesamte Designteam zur Verfügung. Updates werden automatisch im Cockpit dargestellt und alle Entwickler können den Verifikationsstatus abrufen und kontrollieren. Die Lösung ist vollständig in das Virtuoso ADE Framework integriert.

Bei Diskussionen über die analoge Verifikation stehen häufig Details wie die Geschwindigkeit von Spice Solvern oder statische Schwankungen aufgrund der immer kleineren Geometrien im Mittelpunkt. Fragen mit höherem Abstraktionsgrad wie „Wann ist die analoge Verifikation abgeschlossen?“ oder „Welches sind die Verifikationsziele?“ tauchen dagegen in diesen Diskussionen eher selten auf.

Moderne Designs nutzen relativ wenige analoge Blöcke: PLL, ADC, DAC, Filter, LDO und einige weitere decken den größten Teil der analogen Funktionalität ab. Komplexität und Leistungsanforderungen dieser Blöcke sowie mögliche Implementierungsvarianten haben jedoch im Laufe der Jahre deutlich zugenommen. Fast alle analogen Designs sind heute Mixed-Signal-Schaltungen. Durch die immer kleineren Prozessstrukturen gibt es Digitallogik mittlerweile fast kostenlos, während die analogen Schaltungsteile aufgrund ihrer physischen Geometriebeschränkungen teurer sind. Somit erfolgen heute viele Kalibrierungen und Korrekturen im digitalen Bereich.

Gleichzeitig nehmen auch die Verifikationsanforderungen zu. Populäres Beispiel ist der ISO26262-Standard in der Automobilindustrie. Dieser fordert, dass der gesamte Design-Flow nicht nur dokumentiert wird, sondern auch rückverfolgbar ist. Ähnliche Standards gibt es in der Medizintechnik und auch im Konsumgüterbereich steigen die Anforderungen über den gesamten Flow hinweg einschließlich Design und Verifikation. Die Dokumentation des Verifikations-Flows, mit Rückverfolgbarkeit, ist ein unmittelbares Ergebnis dieser Anforderungen. Um das Risiko gefährlicher Defekte zu minimieren, ist eine komplette Verifikation der analogen Blöcke unter allen Betriebsbedingungen und möglichen Szenarien des Umfelds erforderlich. Ebenfalls zu betrachten sind die Detektierung von Fehlfunktionen und entsprechende Gegenmaßnahmen.

Interaktive Nutzung unterstützen

Viele Analog-Entwickler nutzen das Virtuoso Analog Design Environment (ADE), ein Design- und Verifikations-Cockpit. Es wurde entwickelt, um die bei den meisten Analog-Entwicklern beliebte interaktive Nutzung zu unterstützen, und es stellt eine Reihe wichtiger Funktionen für die tägliche Arbeit zur Verfügung:

  • Nominal-, Corner- und Monte-Carlo-Simulation
  • Definition von Messungen/Spezifikationen
  • Analyse mit mehreren Testbenches mit einem Cockpit
  • komplexe Analysen für Analog-, Hochfrequenz- und Mixed-Signal-Schaltungen
  • spezielle statistische Methoden für einen hohen Yield und eine Sub-16-nm-FinFET-Verifikation

Das Cockpit ist gut für einen interaktiven Arbeitsstil geeignet. Damit lässt sich ein bedeutender Teil der Verifikation ad hoc ausführen, wobei die Entwickler die Verifikationsziele kennen und iterativ abarbeiten können. Allerdings werden keine besonderen Standards eingehalten und der Prozess wird manuell dokumentiert. Nur wenige Aufgaben sind automatisiert und werden regelmäßig in einer Regressionseinstellung wiederholt. Insbesondere gibt es bei der Analog-Verifikation kein Tool-basierendes Konzept mit einer übergeordneten Planung, wie dies im digitalen Bereich seit einigen Jahren üblich ist.

Planbasierende analoge Verifikationsmethodik

Die Metrik-Driven-Verifikationsmethodik (MDV) ist heute der De-facto-Standard bei der digitalen funktionellen Verifikation. Kernidee ist die Trennung von Verifikationsmetrik, also der Messung, wie viel des angestrebten Verifikationsziels bereits erreicht ist, und den eigentlichen Verifikationsaufgaben. Sind Verifikationsmetrik und Verifikationsziele korrekt und vollständig, werden die spezifischen Verifikationsschritte zweitranging. Durch die Trennung der Verifikationsmetrik von den Aufgaben lassen sich zufällige Stimuli und Kombinationen verschiedener Verifikationstechniken wie formelle Verifikation, Assertion-basierende Verifikation, Emulation und weitere nutzen.

Bedeutet dies, dass eine planbasierende Verifikation nicht für den analogen Bereich genutzt werden sollte? Nein, denn es lässt sich sehr viel im analogen Flow verbessern. Auf einem hohen Abstraktionsniveau sehen die analogen und digitalen Verifikationsprobleme und deren mögliche Lösungen sehr ähnlich aus. Jedoch sind der Arbeitsstil, die detaillierten Verifikationsaufgaben und die Arbeitsumgebungen recht unterschiedlich. Der Ansatz der Analog-Verifikation ist interaktiv. Ein Analog-Design ist meist nur schwer in Formeln und Grenzwerte zu fassen. Erfahrene Analog-Entwickler schätzen in Sekundenbruchteilen ab, ob Signale in Ordnung sind oder nicht. Dagegen kann der Versuch, diese Erfahrungen in genaue Messungen umzusetzen, sehr schwierig sein.

Dennoch wird auch die Analog-Verifikation mehr und mehr automatisiert. Nahezu alle Designs nutzen Messungen und Spezifikationen und die Verwendung von Assertions und Device Checks nimmt rapide zu. Diese Prüfungen helfen Analog-Entwicklern dabei, sich auf die wichtigen und komplexen Probleme zu konzentrieren, während einfach und leicht zu formalisierende Aufgaben automatisiert werden.

Hauptbestandteil eines strukturierten Verifikationsansatzes ist der Verifikationsplan, der die Anforderungen und Ziele definiert. Nur gut definierte Ziele für die gesamte Verifikation erlauben einen formalisierten Ansatz und gewährleisten einen umfassenden Überblick.

Eine neue Arbeitsumgebung

Mit dem neuen Virtuoso ADE Verifier bietet Cadence Kunden die Möglichkeit, die auf Virtuoso ADE Explorer und Virtuoso ADE Assembler basierenden Verifikationen mit einem übergeordneten Verifikationsplan zu koppeln und so die Anforderungen mit den Ergebnissen zu verbinden. Anwender erhalten einen umfassenden Überblick über den Verifikationsstatus des Teams und können potenzielle Probleme frühzeitig identifizieren. Außerdem wird der Prozess dokumentiert und Fehlerursachen lassen sich zurückverfolgen.

Die Verifikationsanforderungen decken unterschiedliche Aspekte ab – alles, was im Projekt verifiziert werden muss, gilt es hier aufzulisten. Wie diese Forderungen erfüllt werden können und ob die Überprüfung automatisch oder manuell erfolgt, ist für den Plan zunächst unwichtig.

Bild 1: In Verifier können die Anforderungen direkt in den Setup-Tab eingegeben werden. Ein integrierter Editor (rechts) zeigt die Details.

Bild 1: In Verifier können die Anforderungen direkt in den Setup-Tab eingegeben werden. Ein integrierter Editor (rechts) zeigt die Details. Cadence

In Verifier können Entwicklungsingenieure die Anforderungen direkt in den Setup-Tab eingeben. Ein integrierter Editor (rechte Seite im Bild 1) zeigt die Details, die linke Seite stellt eine hierarchische Baumstruktur aller bisher eingegebenen Anforderungen dar. Diese lassen sich auch aus vorhandenen Formaten wie Tabellenkalkulationen oder CSV-Text importieren. Anwender können die Anforderungen auch bottom-up erstellen, indem sie Explorer oder Assembler Cellviews direkt einlesen.

Definition der Implementierungen

Sobald der Anforderungsplan vollständig ist, erfolgt im nächsten Schritt die Referenzierung der Implementierungen, die diese Anforderungen erfüllen. Implementierungen in diesem Zusammenhang sind Explorer oder Assembler Cellviews, die bestimmte Aspekte des Designs simulieren, messen und verifizieren. Anwender wählen den jeweiligen Cellview aus und laden diesen in Verifier. Dargestellt ist dies auf der rechten Seite der Setup-Tab (Bild 2). Die Tests und Ausgangsmessungen mit den spezifizierten Werten werden in einer Baumstruktur gezeigt.

Bild 2: Implementierung und Mapping im Verifier.

Bild 2: Implementierung und Mapping im Verifier. Cadence

Als nächstes folgt das Mapping. Dieser Schritt beschreibt die Korrelation zwischen den Anforderungen und den Implementierungen. Dabei wählen Anwender eine oder mehrere Anforderungen und eine oder mehrere Implementierungen aus und können diese mappen. In den meisten Fällen reicht ein Eins-zu-eins-Mapping aus. Das Mapping zeigt, ob die ausgewählte Implementierung die jeweilige Anforderung erfüllt.

Verfügen Entwickler bereits über aktuelle Simulationsergebnisse, kann Verifier diese direkt laden. In anderen Fällen ist es unter Umständen vorteilhaft, die Simulation aus dem Tool heraus zu wiederholen, um sicherzustellen, dass die Ergebnisse aktuell sind. Der in Bild 3 dargestellte Run-Tab bietet Anwendern die Möglichkeit, die laufende Simulation zu steuern.

Bild 3: Run-Tabs erlaubt die Ausführung der Implementierung.

Bild 3: Run-Tabs erlaubt die Ausführung der Implementierung. Cadence

Verifikationsergebnisse

Der Verifier hat Zugriff auf die Verifikationsziele, die Implementierungen sowie auf ihre Mapping-Beziehung und auf die Ergebnisse der ausgeführten Verifikation. Mit diesen Informationen ist er in der Lage, einen ausführlichen Status des Verifikationsprojektes darzustellen. Bild 4 zeigt den Results-Tab, dessen Struktur dem zuvor eingegebenen hierarchischen Plan folgt. Die roten und grünen Symbole veranschaulichen den Status jeder Anforderung und die Prozentzahlen summieren die Ergebnisse im Baum hierarchisch.

Bild 4: Im Results-Tab dargestellte Verifikationsergebnisse.

Bild 4: Im Results-Tab dargestellte Verifikationsergebnisse. Cadence

Mit dieser Übersicht plant das Verifikationsteam die nächsten Schritte. Sobald die Hauptprobleme identifiziert sind, lassen sich Gegenmaßnahmen implementieren. Bis die Verifikation abgeschlossen ist, kann der Verifier-Flow iterativ genutzt werden.