Bild 1: CDC-Verifikationsablauf von Low-Power-Designs.

Bild 1: CDC-Verifikationsablauf von Low-Power-Designs. (Bild: Siemens EDA)

Die Minimierung des Stromverbrauchs ist sowohl für mobile als auch für Rechenzentrumsanwendungen unerlässlich, ist jedoch oft mit erheblichen Leistungseinbußen verbunden. Eine Lösung besteht darin, Designs in mehrere Power-Domains aufzuteilen, die eine selektive Reduzierung der Spannungspegel oder das Abschalten von einzelnen Partitionen ermöglichen.

Die herkömmliche Low-Power-Verifikation validiert lediglich die funktionale Korrektheit der Power-Control-Logik. Die Verifikation dieser zusätzlich eingefügten Power-Control-Logik in verschiedenen Clock-Domains, welche möglichweise zu neuen CDC-Pfaden führt (Clock Domain Crossing), wird dabei jedoch außer Acht gelassen. Diese Verifikation der Low-Power-CDC-Pfade erfordert neue Analysetechniken:

  • Clock- und Reset-Analyse der Low Power CDC-Pfade.
  • Identifizierung von guten Synchronisierungsstrukturen in der eingefügten Low Power Logik.
  • Identifizierung von nichtexistierenden oder falsch angeschlossenen Synchronisierungsstrukturen in der eingefügten Low Power Logik.

Dabei werden diese Verifizierungsmethoden und -techniken von Low-Power-Designs durch das IEEE-1801-Unified-Power-Format (UPF- Standard) definiert und verfeinert. Die neuesten UPF-Standards ermöglichen es Designern, das Design und die Verifizierung von Stromverteilungsnetzen frühzeitig zu beginnen und diese Stromnetzwerke während des gesamten Designzyklus zu verfeinern. Hierbei ist es von entscheidender Bedeutung, dass die Designer die CDC-Verifizierung für die Stromverteilernetzwerke bereits auf RTL-Ebene beginnen.

Dieser Low Power CDC-Verifizierungsablauf ist eine Erweiterung der herkömmlichen RTL-CDC-Verifikations-Methodik. Beim traditionellen Ablauf werden die Low-Power-Elemente während der Implementierungsphase des Projekts in das Design eingefügt, sodass die Low-Power-CDC-Analyse erst spät im Design-Projekt erfolgen kann. Bei der Power-Aware-CDC-Verifikation werden die Low-Power-Elemente gemäß der UPF-Spezifikation bereits in das RTL-Design eingefügt (Bild 1).

Die Low-Power-CDC-Analyse

Die Low Power CDC Analyse besteht aus den folgenden Schritten:

  • Low-Power-Anforderung als UPF Spezifikation erstellen
  • Bereitstellung des RTL-Designs
  • Durchführen der CDC-Analyse unter Berücksichtigung der UPF-Low-Power-Anforderungen
  • Erstellen von CDC-Analyse-Berichten

Traditionell wird während des Design-Entwicklungsprozesses die CDC-Analyse angewendet, um gute, falsch eingesetzte, und nichtexistierende Synchronisationsstrukturen zu erkennen. Da Low-Power-Anforderungen als UPF-Spezifikation während der Entwicklung und Verifikation des Designs mehr und mehr zum Einsatz kommen, wurde, um Low-Power-Pfade bezüglich der Clock-Domain-Kreuzungen zu untersuchen, die Erweiterung der CDC-Analyse unabdingbar.

Das Hauptziel der Low-Power-CDC-Analyse ist es sicherzustellen, dass in den Low-Power-Pfaden keine Metastabilitäten entstehen und propagiert werden können. Die Herausforderung liegt darin, dass die einzufügenden Isolationszellen und Retentionszellen keine Gefährdung für sichere bestehende RTL-CDC-Pfade darstellen und, dass die neuen Pfade identifiziert und auf Metastabilitäten untersucht werden.

Bild 2: Das Isolationszellen-Kontrollsignal im korrekten Clock-Domain.
Bild 2: Das Isolationszellen-Kontrollsignal im korrekten Clock-Domain. (Bild: Siemens EDA)

Szenarien der CDC-Analyse

Die Low-Power-CDC-Analyse identifiziert die Pfade, in denen Power-Elemente eingefügt sind. Dabei sind drei mögliche Szenarien zu unterscheiden.

Szenario 1: Das Einfügen von Isolationszellen/Retentionszellen muss nicht zwangsläufig zu neuen CDC-Pfaden führen. Bild 2 zeigt, dass sowohl Daten (B1) als auch das Isolationskontrollsignal (B3) in derselben Clock-Domäne wie das Zielregister (B2) liegen.

Szenario 2: Ein Einfügen von Isolationszellen/Retentionszellen führt zu neuen CDC-Pfaden. In Bild 3 existiert der Pfad B1 nach B2 bereits in RTL. Dieser Pfad wird nicht als CDC-Kreuzung eingestuft, da beide Register von dem gleichen Clock getrieben werden. In diesem Beispiel sieht die UPF-Spezifikation vor, dass dieser Pfad zu isolieren ist. Dadurch wird eine Isolationszelle zwischen den Registern B1 und B2 eingefügt. Das Kontrollsignal (iso_en) zum Aktivieren und Deaktivieren der Isolationszelle wird jedoch von einem anderen Clock (clk2) getrieben, welcher asynchron zu Clock clk1 ist. Aufgrund dieser Low-Power-Veränderung ist der Pfad B3 nach B2 nun unsicher und kann Metastabilität beim Register B2 verursachen.

Bild 3: Nicht-synchronisiertes Isolationszellen-Kontrollsignal.
Bild 3: Nicht-synchronisiertes Isolationszellen-Kontrollsignal. (Bild: Siemens EDA)

Szenario 3: Das Einfügen von Isolationszellen/Retentionszellen verursacht möglicherweise auf zuvor als gut eingestuften RTL-CDC-Pfaden Metastabilitäten. In Bild 4 wird die 2DFF-Synchronisationsstruktur (Sync) als eine gute und sichere RTL-Synchronisationsstruktur betrachtet. Die per UPF-Spezifikation einfügte Isolationszelle (ISO) stellt eine kombinatorische Logik vor dem Synchronizer dar und verletzt damit die grundlegenden Prinzipien einer guten/zuverlässigen Synchronisation. Dieses Beispiel veranschaulicht, wie CDC-Pfade in RTL nach Platzierung von Power-Elementen nicht mehr sicher sein könnten und zeigt damit, dass eine CDC-Analyse für Low-Power-Designs unerlässlich ist.

Die Low-Power-CDC-Analyse identifiziert und berichtet über alle CDC-Pfade. Um zwischen Pfaden mit Power-Element und anderen zu unterscheiden, wird ein Präfix „pa_“ in den Pfadnamen benutzt: pa_combo_logic (Low-Power-Pfade mit kominatorischer Logik vor der Synchronisationsstruktur), pa_iso_en_no_sync (Isolationszelle mit Kontrollsignal, nicht synchronisiert) und pa_retention_restore (Retentionszelle ohne Synchronisationsstruktur).

Bild 4: Isolationszelle als kombinatorische Logik vor der Synchronisationsstruktur.
Bild 4: Isolationszelle als kombinatorische Logik vor der Synchronisationsstruktur. (Bild: Siemens EDA)

Die Low-Power-CDC-Analyse in Kürze

Die Low-Power-CDC-Analyse ermöglicht es Designern, CDC-Pfade zu identifizieren und diese gesondert in Low-Power- und Nicht-Low-Power-Pfaden auszugeben. Diese Unterscheidung vereinfacht die Analyse und das Debuggen dieser Pfade erheblich. Die sukzessiven Verfeinerungsfunktionen, definiert im UPF-Standard (IEEE 1801), ermöglichen es Entwicklern, bereits in der Entwicklungsphase mit der Verifikation von Low-Power-Designs zu beginnen und die Stromnetzwerke während des gesamten Entwicklungszyklus weiter zu verfeinern.

Fallbeispiel für die CDC-Verifikation

Um die Anwendung der vorgestellten Verifikationsmethode zu erläutern, dient ein Fallbeispiel aus der Praxis. In diesem Beispiel handelt sich um ein Teilsystem eines vollständigen und komplexen Designs. Die Low-Power-Konfiguration für dieses Teilsystem ist aus der UPF-Spezifikation des Designs extrahiert. 

Als erster Schritt der Analyse wird das RTL und die entsprechende UPF-Konfiguration gelesen (und interpretiert). Dabei werden die einzufügenden Power Elemente (Isolationszellen, Retentionszellen, Leistung Schalter, etc.) identifiziert und ihre Platzierungen bestimmt. Im Fallbeispiel wurden 268 Isolationszellen eingefügt. Als nächstes folgt die Ermittlung der asynchronen Pfade, die Power Elemente enthalten. Die Low-Power-CDC-Verifikation besteht nun darin, statisch sicher zu stellen, dass das Design über gute Synchronisationsstrukturen verfügt, die das Auftreten von Metastabilitäten in diesen Pfaden blockieren.

Bild 5 zeigt einen Pfad, in dem eine Isolationszelle benutzt wird, um zu verhindern, das undefinierte Werte aus einer abgeschalteten Power Domain zu einer aktiven Power Domain propagiert werden. Dieser Pfad wird von der Low-Power-CDC-Analyse als unsicher/kritisch eingestuft, da Metastabilitäten entstehen und propagiert werden können. Das Kontrollsignal der Isolationszelle wird in diesem Pfad von einer zur Ziel-Clock (RX-Clock) asynchronen Clock Domain getrieben (Farben zeigen die verschiedenen asynchronen Clock-Domänen). Basierend auf dieser CDC Analyse, kann der Designer Vorkehrung treffen, um das Zielregister (RX-Register) metastabilitätsfrei zu halten.

Für das Fallbeispiel hat die Low-Power-CDC-Analyse CDC-Verletzungen gefunden:

  • Isolationskontrollsignale ohne Synchronisationsstrukturen (43378)
  • Power-Aware kombinatorische Logik vor Synchronisierer (14)
  • Power-Aware-Fan-in-Logik aus multiplen Clock-Domains (10)
Bild 5: Low-Power-Isolationszelle identifiziert als pa_iso_en_no-sync.
Bild 5: Low-Power-Isolationszelle identifiziert als pa_iso_en_no-sync. (Bild: Siemens EDA)

Autor

Kurt Takara ist Produkt-Ingenieur bei Siemens EDA.

Sie möchten gerne weiterlesen?