Hier besteht die Aufgabe des Verifikationsingenieurs darin, zu prüfen, dass alle Signale – soweit erforderlich – isoliert bzw. gesichert werden und dass die Ausschaltsequenz eingehalten wird. Wird die Versorgung abgeschaltet, bevor die Isolation aktiviert werden konnte, dann können undefinierte Werte in die noch aktivierten Zonen propagiert werden. Dies würde zu einer Erhöhung des Leckstroms führen, und eine solche ist natürlich unerwünscht, wenn man sparsam mit der Energie umgehen will und die Schaltung beispielsweise aus einer Batterie versorgt. Daher ist unbedingt zu verifizieren, dass das SoC nicht irrtümlich abgeschaltet wird.
Aus-Zustand
Während dieser Phase des Betriebszykluss ist der Großteil des SoC ohne Versorgungsspannung. Nur solche Blöcke, die im Aus-Zustand arbeiten sollen, nehmen jetzt noch Strom auf. Diese noch aktiven Blöcke reagieren besonders sensibel auf Signale, die von deaktivierten Zonen kommen. Daher muss der Verifikationsingenieur prüfen, ob alle Isolationsvorgaben korrekt ausgeführt werden und ob Signale eventuell nicht isoliert werden. Wird beispielsweise ein Signal auf einen High-Zustand isoliert, so könnte sich die noch in Betrieb befindliche Logik fehlerhaft verhalten oder sogar „aufhängen“.
Einschaltsequenz
Dies ist die Sequenz, die eingehalten wird, wenn die Versorgungsspannung für das SoC eingeschaltet wird, z.B. wenn der Hauptschalter umgelegt wird. Während dieser Phase muss in der Schaltung sichergestellt sein, dass die Versorgungsspannung dauerhaft vorhanden ist, bevor die Isolation und die Datenerhaltung deaktiviert werden, und dass die primären Ein-/Ausgänge vor dem SoC-Kern mit Strom versorgt werden. Hier muss der Verifikationsingenieur darauf achten, dass die Einschaltsequenz korrekt abläuft, vom Anlegen der Versorgungsspannung über die Deaktivierung der Isolation/ Datenerhaltung bis zur korrekten Ansteuerung der Ausgänge der aktiven Schaltungsteile. Im Laufe der Einschaltsequenz muss das System eventuell zurückgesetzt werden, und der Verifikationsingenieur sollte daher prüfen, ob der Reset für die Logik korrekt erzeugt wird und ob keine Logikteile beim Reset ausgelassen werden.
Ein-Zustand
Dies ist der normale Betriebszustand des SoC. Das SoC sollte nun wieder genau so arbeiten wie vor der Aktivierung des Energiespar-Modus. Der Verifikationsingenieur sollte also sicherstellen, dass der Normalbetrieb nach dem Einschalten auch möglich ist und dass Isolation und Datenerhaltung völlig deaktiviert wurden. Weiterhin sollte er überprüfen, ob die CPU auch richtig booten kann und im Energiespar-Modus aufgelaufene Interrupts bedient hat, bevor der Betrieb normal weiterläuft. Alle Speicher, die im Energiespar-Modus für die Datenerhaltung herangezogen wurden, sollten auf die Gültigkeit ihrer Inhalte hin geprüft werden, indem diese zurückgelesen werden.
CPF-basierter Entwicklungsablauf
CPF oder Common Power Format ist ein Dateiformat, in dem alle Energiespar-Vorgaben für die IC-Entwicklung erfasst werden. Für alle Entwicklungsphasen, für die Verifikation und für die Schluss-Prozeduren kommt hier die gleiche Datei zum Einsatz. Die Datei ist Tcl-basiert (Tcl: Tool command language) und daher einfach zu editieren. Die meisten Software-Werkzeuge verstehen CPF, und dadurch können entstehende Unschärfen in Bezug auf die Energiespar-Ziele des IC-Entwurfs vermieden werden. Die Datei enthält die Beschreibung der Energiespar-Architektur des IC-Entwurfs: welche Zonen abgeschaltet werden können, welche isoliert und welche Registerinhalte erhalten werden müssen. Neben diesen Informationen enthält die CPF-Datei alle Signale für die Steuerung der Versorgungsspannung, für den Datenerhalt und die Isolation sowie die Aktivierung und Deaktivierung von Zonen und Signalen.
Der Entwicklungsablauf muss leicht modifiziert werden, wenn CPF ins Spiel kommt. Die Energiespar-Vorgaben des IC-Entwurfs werden vom Systemarchitekten bzw. vom Systemintegrator definiert. Die CPF-Datei wird während der Architekturdefinition erstellt. In sie fließen auch entsprechende Beiträge des RTL-Integrators ein. Diese CPF-Datei stellt das Sammelbecken für die Daten aller Funktionen im Entwicklungszyklus dar. Bei der funktionellen Verifikation wird diese Datei als Referenz herangezogen, um den Entwurf auf die Korrektheit von Leistungssequenzen, Isolation und Datenerhaltung zu prüfen. Wird eine Simulation mit der CPF-Datei durchgeführt, so wird für die Simulation die gleiche RTL-Datei herangezogen – diese verfügt über keinerlei leistungsrelevante Implementationsdaten –, aber so simuliert, als ob sie alle Leistungsvorgaben enthalten würde.
Während der physikalischen Implementierung wird die CPF-Datei von den abschließenden Software-Werkzeugen herangezogen, um Logik für das „Power-Gating“, für die Isolationsschaltungen und die Datenerhaltungszellen im Schaltungsentwurf einzufügen. Diese Netzliste, die jetzt alle Versorgungsaspekte mit berücksichtigt, wird noch einmal mit CLP verifiziert, das seine Vorgaben durch Einlesen der CPF-Datei erhält. Auf diese Art und Weise kann CLP zur Verifikation der physikalischen Implementierung und der CPF-Datei selbst herangezogen werden. Mit der CPF-Datei durchgeführte Simulationen auf Gatterebene verifizieren das dynamische Verhalten der Netzliste mit Versorgungsspannung. Dieser modifizierte Designzyklus ist in Bild 5 dargestellt.