HOCHSCHULE RAPPERSWIL HSR 10. Oktober 2000 Synthesis for Low Power Design Prof. Thomas Troxler Hochschule Rapperswil Abstract Power optimization at high levels of abstraction has a significant impact on reduction of power in the final gate-level design. At this lecture we would like to illuminate the aspects of different power types and the winings of clock gating which is an important high-level technique for reducing power. Also the effect of clock gating to the testability would be a subject. Th. Troxler HOCHSCHULE RAPPERSWIL HSR 10. Oktober 2000 1. Arten des Stromverbrauchs Generell wird der Stromverbrauch einer digitalen Schaltung in einen statischen und dynamischen Anteil aufgeschlüsselt. 1.1. Statischer Stromverbrauch Als statischer Stromverbrauch wird derjenige Strom bezeichnet, den ein Gatter im inaktiven oder eben statischen Betrieb benötigt. Er setzt sich aus zwei Komponenten zusammen. Einerseits verzeichnet auch ein gesperrter Transistor einen minimalen Kanalstrom zwischen Source und Drain, andererseits ist zwischen der Diffusionsschicht und dem Substrat eine parasitäre Diode vorhanden. Der statische Stromverbrauch wird oft auch als Leckstrom bezeichnet. Im Vergleich zum dynamischen Stromverbrauch kann er praktisch vernachlässigt werden. 1.2. Dynamischer Stromverbrauch Als dynamischer Stromverbrauch wird derjenige Strom bezeichnet, den ein Gatter im aktiven oder eben dynamischen Betrieb benötigt. Dabei ist die Schaltung immer dann aktiv, wenn sich die Spannung an einem Netz ändert. Diese Spannungsänderung kann dabei auch so klein sein, dass der logische Wert des Netzes derselbe bleibt. 1. Stromverbrauch durch Schaltvorgänge Der Stromverbrauch durch Schaltvorgänge ist auf das Laden und Entladen der Lastkapazitäten am Ausgang einer Zelle zurückzuführen. Diese Lastkapazität setzt sich aus der Kapazität des angeschlossenen Netzes und der Gate-Kapazität der an diesem Netz angeschlossenen Eingänge zusammen. In einer aktiven CMOS-Schaltung macht er zwischen 70 und 90% des Gesamtverbrauchs aus. 2. Stromverbrauch durch zellinterne Vorgänge Beim Schalten eines Gates wird der eine Transistor in den leitenden und der andere in den Sperrenden Zustand gebracht. Dabei können kurzzeitig beide Transistoren gleichzeitig leitend sein. Bei einer steilen Flanke des Eingangssignales ist diese Dauer sehr kurz. Wenn die Flanke aber relativ flach ausgebildet ist, dann kann der Anteil bis gegen 30% des Gesamtstromverbrauchs ausmachen. Die folgende Figur soll die verschiedenen Arten des Stromverbrauchs etwas verdeutlichen. Bild 1 Die verschiedenen Komponenten des Stromverbrauchs (Quelle Synopsys) Th. Troxler Arten des Stromverbrauchs Seite 1 HOCHSCHULE RAPPERSWIL HSR 10. Oktober 2000 2. Modelle für die Ermittlung des Stromverbrauchs Damit ein Synthesewerkzeug eine Schaltung in Bezug auf den Stromverbrauch minimieren kann, benötigt es Informationen über den Verbrauch der einzelnen Zellen. Er muss dazu in die Technologiebibliothek eingebunden sein. Durch die gezielte Auswahl der einzelnen Zellen beim Technologiemapping kann der Stromverbrauch der Gesamtschaltung minimiert werden. 2.1. Statischer Stromverbrauch Zur Berechnung des gesamten Leckstroms einer Schaltung werden einfach die Leckströme der einzelnen Zellen addiert. Bild 2 Berechnung des statischen Stromverbrauchs der Gesamtschaltung (Quelle Synopsys) Der Stromverbrauch durch Leckströme macht normalerweise ca. 1% des Verbrauches einer aktiven Schaltung aus. Er gewinnt also nur bei Schaltungen an Bedeutung, die jeweils sehr lange in einem inaktiven Zustand verweilen. 2.2. Dynamischer Stromverbrauch Der dynamische Stromverbrauch setzt sich aus der Summe des Verbrauchs durch Schalt- und zellinterne Vorgänge zusammen. 1. Stromverbrauch durch zellinterne Vorgänge Der interne Stromverbrauch einer Zelle setzt sich aus dem Verhalten der Eingänge und des Ausgangs zusammen. Dabei wird, basierend auf der Schalthäufigkeit der Eingänge, die Schaltgeschwindigkeit des Ausgangs ermittelt. Diese wiederum dient zusammen mit der Lastkapazität als Basis für die Ermittlung der Energie die benötigt wird, um den Ausgang der Zelle umzuschalten. Bild 3 Modell für die Berechnung des internen Stromverbrauchs (Quelle Synopsys) Th. Troxler Modelle für die Ermittlung des Stromverbrauchs Seite 2 HOCHSCHULE RAPPERSWIL HSR 10. Oktober 2000 Der Wert für die benötigte Energie wird mittels Interpolation zwischen Stützwerten aus einer zweidimensionalen Tabelle gewonnen. Die Tabelle selbst muss mittels einer Messreihe erstellt werden. Bild 4 Zweidimensionale Tabelle zur Ermittlung der benötigten Schaltenergie (Quelle Synopsys) 2. Stromverbrauch durch Schaltvorgänge Zur Berechnung des Verbrauchs durch Schaltvorgänge wird die folgende Formel verwendet. Bild 5 Berechnung des Stromverbrauchs durch Schaltvorgänge (Quelle Synopsys) Dabei wird die Lastkapazität eines Netzes aus der parasitären Kapazität der Verbindungsleitung und den Gate-Kapazitäten aller angeschlossenen Eingänge bestimmt. Da die parasitäre Kapazität stark vom Layout einer Schaltung abhängig ist, dieses zum jetzigen Zeitpunkt aber noch nicht vorhanden ist, muss auf ein sogenanntes Wire-Load-Modell zurückgegriffen werden. Das Wire-Load-Modell ist ein Modell für die Verbindungsleitung. Es wurde aus statistischen Auswertungen früherer Designs gewonnen. Zur Auswahl des richtigen Modelles werden die Grösse des Blockes und die Anzahl Eingänge herangezogen. 3. Ermittlung der Schaltaktivitäten Wie wir gesehen haben spielt die Aktivität einer Schaltung eine zentrale Rolle beim Stromverbrauch. Sie kann nur mit Hilfe einer Simulation ermittelt werden. Dabei wird die Schaltaktivität jedes einzelnen Netzes aufgezeichnet. Diese Daten müssen anschliessend dem Synthesewerkzeug zur Verfügung gestellt werden. Damit dieser Schritt Sinn macht, müssen die Stimulis für die Simulation möglichst genau mit dem Verhalten in der realen Umgebung übereinstimmen. Th. Troxler Ermittlung der Schaltaktivitäten Seite 3 HOCHSCHULE RAPPERSWIL HSR 10. Oktober 2000 4. Clock-Gating auf der RT-Ebene Wie wir gesehen haben spielt beim Stromverbrauch einer digitalen Schaltung der dynamische Anteil eine übergeordnete Rolle. Je häufiger z.B. ein Flipflop getacktet wird, umso grösser ist sein Stromverbrauch. Hinweis: Bei synchronen Systemen verändert sich der Stromverbrauch praktisch linear mit der Taktfrequenz. Aufgrund dieser Tatsache hat sich eine Synthesemethode ergeben, bei der spezifisch der Takt von einzelnen Speicherzellen abgeschaltet wird. Diese Methode wird als Clock-Gating bezeichnet. 4.1. Für welche Art von Schaltungen ist das Clock-Gating geeignet? Das Clock-Gating ist besonders für Schaltungen geeigent, bei denen Registerbanken vorkommen. Unter Registerbank versteht man eine Gruppe von Flipflops, die eine gemeinsame Ansteuerung besitzen. Sie entstehen wenn in einer HDL-Beschreibung z.B. Zähler verwendet oder Werte gespeichert werden. Falls der Zählerstand oder der zu speichernde Wert verändert werden soll, dann muss die entsprechende Registerbank neu gesetzt werden, ansonsten muss sie den alten Inhalt beibehalten. Die Synthese verwendet dazu einen Multiplexer, der entweder den Speicherinhalt oder den neuen Wert dem Eingang zuführt. Bild 6 Setzen des Einganges mittels Multiplexer (Quelle Synopsys) Der Nachteil dabei ist, dass mit jeder Taktflanke Strom verbraucht wird, obwohl sich am Speicherinhalt gar nichts ändert. Zusätzlich benötigt auch der Multiplexer Strom. Wenn es nun gelingt das Taktsignal an der Registerbank gezielt ein- und auszuschalten, dann könnte man sicherstellen, dass das Taktsignal nur noch dann durchkommt, wenn der Speicherinhalt verändert werden muss. Damit würde nicht nur die Registerbank weniger Strom verbrauchen, auch der Multiplexer würde entfallen. Es befindet sich so auch ein Element weniger im Datenpfad, was sich wiederum positiv auf dessen zeitliches Verhalten auswirkt. 4.2. Latchbasierendes Clock-Gating In der folgenden Figur wird der Takt mittels eines AND-Gatters ein- und ausgeschaltet. Zur Ansteuerung des AND-Gatters wird ein Latch verwendet. Dieses wird dann in den transparenten Zustand geschaltet, wenn das Taktsignal einen tiefen Pegel aufweist. Somit wird verhindert, dass ein in der Ansteuerlogik auftretender Hazard den Registerinhalt verändern kann. Th. Troxler Clock-Gating auf der RT-Ebene Seite 4 HOCHSCHULE RAPPERSWIL HSR 10. Oktober 2000 Bild 7 Latchbasierendes Clock-Gating (Quelle Synopsys) Die Ansteuerlogik vor dem Latch (Signal EN)hat sich für das Clock-Gating nicht verändert. 4.3. Latchfreies Clock-Gating Mittels latchfreiem Clock-Gating kann gegenüber dem latchbasierendem Clock-Gating nochmals Strom und auch Siliziumfläche eingespart werden. Dafür hat es einen schwergewichtigen Nachteil. Das EN-Signal muss mit Sicherheit vor der fallenden Taktflanke stabil sein. Damit halbiert sich die für die Ansteuerlogik zur Verfügung stehende Laufzeit. Hazard Bild 8 Latchfreies Clock-Gating (Quelle Synopsys) 5. Testbarkeit Natürlich muss auch ein Design testbar sein, bei dem eine Low Power Synthese durchgeführt wurde. Durch die Einführung des Clock-Gatings haben wir das Taktsignal der entsprechenden Register vom externen Zugriff abgetrennt. Dieser Zugriff ist aber notwendiger Bestandteil für einen Test mittels der Scan-Path-Methode. Ein Flipflop beeinflusst die Testbarkeit in zwei Bereichen. Einerseits muss die Ansteuerlogik und der Datenpfad vor dem Flipflop, andererseits die Logik nach dem Flipflop überprüft werden können. Th. Troxler Testbarkeit Seite 5 HOCHSCHULE RAPPERSWIL HSR 10. Oktober 2000 5.1. Einführung eines Kontrollpunktes Die Überprüfung der Logik nach dem Flipflop und des Datenpfades vor ihm kann schon mittels eines sehr geringen Aufwandes sichergestellt werden. Dazu muss nur die Möglichkeit gewährt werden, das Flipflop in die Scankette zu integrieren und ihm während des Schiebens den Takt zuzuführen. Dies geschieht am einfachsten mittels eines OR-Gatters mit dessen Hilfe das SCAN_ENABLE Signal das Clock-Gating übersteuern kann. Bild 9 Kontrollpunkt zur Übersteuerung des Clock-Gatings (Quelle Synopsys) 5.2. Einführung eines Beobachtungspunktes Grösser wird der Aufwand, wenn auch die Ansteuerlogik für das Flipflop getestet werden soll. Dazu muss sie von aussen beobachtet werden können. Dies geschieht unter Einsatz eines XOR-Trees mit einem Flipflop am Ausgang. Bild 10 Beobachtung der Ansteuerlogik mittels eines XOR-Trees (Quelle Synopsys) Mittels des XOR-Trees können beliebig viele Registerbanken zusammengeschaltet werden. Im Normalbetrieb benötigt der XOR-Tree nur den Leckstrom, da sowohl seine ENL-Eingänge wie auch der Takt des Ausgangsflipflops mittels des TEST_MODE Signals abgeschaltet werden. Th. Troxler Testbarkeit Seite 6