Navigation Statische Timing-Analyse Delay Elmore-Delay Wire-Load-Modell Pfad-Problem Pfade/Cones Kritischer Pfad... Breitensuche Setup- und Hold-Zeit Ein- und Ausgänge Sensibilisierbarkeit Slack-Histogramm Zusammenfassung Borrowing Retiming Close http://edascript.ims.uni-hannover.de/240_statischetiminganalyse/menue.html
Statische Timing-Analyse Schaltungen zur Realisierung von logischen Gatterfunktionen verhalten sich, wie bereits in vorigen Kapiteln erwähnt, nicht ideal. Die Realität ist durch folgende wesentliche Schaltungseigenschaften gekennzeichnet: Die Werte der Spannungen und Ströme sowie die Zeit sind kontinuierliche Größen. Außerdem sind die wirkenden elektrischen und magnetischen Felder über der Zeit stetig. Beides führt dazu, dass Ströme und Spannungen ebenfalls immer stetig sind, also jede Wertänderung Zeit benötigt. Die Grafik zeigt eine Schaltung mit einem AND-Gatter. Die steigende Flanke an Eingang a bewirkt eine zeitlich verzögerte Flanke am Ausgang b. Die Zeitverläufe der Spannungen sind dargestellt. Allgemein bezeichnet das Delay die Verzögerung eines Signals zwischen einem Ein- und einem Ausgang eines Systems. In der Abbildung ist ein Delay abgebildet. Im vorliegenden Fall ist es die Zeitdifferenz zweischen den 50%-Schwellen der Signalübergänge. Betrachtet man das Ausgangssignal genauer, stellt man fest, dass es nicht einfach durch eine Verschiebung um den Wert des Delays aus dm Eingangssignal hervorgegangen ist. Zusätzlich hat sich auch die Kurvenform verändert. Es ist daher eine genauere Definition des Delay nötig. http://edascript.ims.uni-hannover.de/240_statischetiminganalyse/folie_01.html
Elmore-Delay Ein Beispiel für eine genauere Delay-Definition ist das so genannte Elmore- Delay. Es ist in folgender Weise definiert: Das System wird am Eingang mit einem Einheitssprung erregt. Die Ausgangskurve e(t) wird nach der Zeit abgeleitet. Der Flächenschwerpunkt dieser Ableitung ist das Elmore-Delay (Formel). Wird das reale System durch ein lineares Modell beschrieben, so kann das Elmore-Delay in folgender Weise interpretiert werden: h(t)=d/dt(e(t)) sei die Impulsantwort des linearen Systems und H(s) seine Systemübertragungsfunktion. H(s) kann als Potenzreihenentwicklung von e^(- st) dargestellt werden (Taylor-Reihe). Dabei werden die Koeffezienten als Momente i-ter Ordnung bezeichnet. Das Elmore-Delay ist identisch mit dem Moment erster Ordnung. Seine Berechnung ist für Netzerke aus R und C direkt durch Summen- und Produktbildung möglich. http://edascript.ims.uni-hannover.de/240_statischetiminganalyse/folie_02.html
Wire-Load-Model Seite 1 von 2 Ein weiteres Problem entsteht, wenn das Delay einer mehrstufigen Logik aus den Delays der einzelnen Gatter berechnet werden soll. Die Delays von Teilsystemen können nur dann addiert werden, wenn es sich um rückwirkungsfreie Systeme handelt. Gatterschaltungen werden deshalb sinnvollerweise am Eingang eines Gatters aufgetrennt, da sich der Eingangstransistor im Wesentlichen rückwirkungsfrei verhält. Große Fehler entstünden, wenn statt dessen an den Ausgängen der Gatter aufgetrennt würde, da sich die Last eines Gatters i.a. nicht rückwirkungsfrei verhält. Unter Last versteht man hier die Impedanz der Leitungen und die Eingangskapazitäten der angeschlossenen Gatter. Außerdem ist das Delay i.a. abhängig von der Flankenform. Diese wird bei der Delaybestimmung der einzelnen Gatter an Aus- und Eingang als identisch angenommen. Ein vereinfachtes Ersatzmodell für ein Gatter zeigt das Bild. Das Gatter selbst ist als Spannungsquelle mit Innenwiderstand modelliert. Der Innenwiderstand entsteht u.a. durch die Kanalwiderstände der Transistoren. Der Widerstand RL repräsentiert den Leitungswiderstand und C die Kapazitäten der Leitungen und die Gate-Kapazitäten der angeschlossenen Transistoren. Das Delay hängt maßgeblich von der Last ab. Da Untersuchungen des Zeitverhaltens einer Schaltung bereits durchgeführt werden, wenn noch kein Layout vorliegt, sind die Leitungseigenschaften noch nicht bekannt. Es werden daher zunächst übliche Werte aufgrund statistischer Untersuchungen verwendet. Dies wird als Wire Load Model bezeichnet. Sobald das Layout vorliegt, können aus den Geometrien exaktere Modelle für diese Lasten extrahiert und in das Schaltungsmodell annotiert werden. Programme, die aus Ersatzmodellen ein http://edascript.ims.uni-hannover.de/240_statischetiminganalyse/folie_04.html
Wire-Load-Model Seite 2 von 2 Delay errechnen, nennt man Delay-Calculator. http://edascript.ims.uni-hannover.de/240_statischetiminganalyse/folie_04.html
Pfad-Problem Die Grafik zeigt einen Ausschnitt aus dem Digitalteil der Ampelsteuerung. Aus dem zum Taktzeitpunkt ta in FF1 gespeicherten Zustandswert wird durch das Gatter ein neuer Wert erzeugt, der im folgenden Taktzeitpunkt tb von FF2 übernommen werden soll. Das Beispiel enthält einen so genannten Pfad beginnend beim Ausgang Q1 über den Inverter bis zu Eingang D2. Berücksichtigt man eine Verzögerung, die auf diesem Pfad besteht, so ergeben sich die dargestellten Signale über der Zeit. Die gewünschte Funktion wird nur dann erfüllt, wenn das Pfad-Delay kleiner als die Taktperiode ist. http://edascript.ims.uni-hannover.de/240_statischetiminganalyse/folie_05.html
Pfade/Cones Die Grafik stellt einen anderen, größeren Ausschnitt der Schaltung dar. Ein Signalwechsel an Q2 kann sich auf die Ausgangssignale aller folgenden Gatter auswirken. Da der Ausgang eines Gatters wie im Beispiel mit Eingängen mehrerer anderer Gatter verbunden sein kann, gibt es hier mehrere Pfade, die von Q2 ausgehen. Es ergibt sich ein sich verbreiterndes Bündel von Pfaden. Dieses wird Cone genannt. In der Abbildung sieht man, dass ein Gatter oder Netz in mehreren Cones und damit auch in mehreren Pfaden enthalten sein kann. Allgemein ist ein Pfad eine Folge von miteinander in Signalflussrichtung verbundenen Gattern. Pfade beginnen an externen Eingängen oder Flip-Flop- Ausgängen und enden an externen Ausgängen oder Flip-Flop-Eingängen. Um sicher zu stellen, dass die Schaltung die gewünschte Funktion ausführt, muss für jeden Pfad die Verzögerung kleiner als die Taktperiode sein. http://edascript.ims.uni-hannover.de/240_statischetiminganalyse/folie_06.html
GAG/Kritischer Pfad Zur Untersuchung des Zeitverhaltens wird eine synchrone digitale Schaltung in einen gerichteten azyklischen Graphen (GAG) umgewandelt. Die Ein- und Ausgänge der Schaltung und der Flip-Flops sowie die Logikgatter werden Knoten. Für jede Verbindung zweier Schaltelemente gibt es eine gerichtete Kante. Ein zusätzlicher Knoten s (Quelle) wird mit allen Eingangsknoten und ein Knoten t (Senke) mit allen Ausgangsknoten über gerichtete Kanten verbunden. Die Kanten erhalten Gewichte, die die Zeitverzögerung zwischen den durch die adjazenten Knoten bezeichneten Signalen angeben. Die Grafik zeigt eine Schaltung und ihren zugehörigen DAG. Die Suche nach dem längsten Pfad von s nach t liefert den so genannten kritischen Pfad. Die Länge ist dabei die Summe der Kantengewichte entlang des Pfades. Der kritische Pfad bestimmt die maximale Taktfrequenz. http://edascript.ims.uni-hannover.de/240_statischetiminganalyse/folie_07.html
Kritischer Pfad: Breitensuche Seite 1 von 2 Die Suche nach dem längsten Pfad basiert auf einem Breitendurchlauf durch den Graphen beginnend am Knoten s. Diese ist in O(E+V) durchführbar. Bemerkenswert ist dabei, dass die Anzahl der Pfade zwar durch O(2^(E+V)) begrenzt ist, die Suche nach dem längsten Pfad aber eine geringere Komplexität hat. Auf dieser Tatsache beruht die große praktische Bedeutung der statischen Timing-Analyse. Zum gleichen Ergebnis führt die Simulation sämtlicher möglicher Signalwechsel und deren Auswirkungen auf alle anderen Gatter, was einen deutlich höheren Aufwand bedeuten würde. Bemerkungen: Die Kantengewichte im DAG wurden als konstant angenommen. Indirekt bedeutet das, dass die Delays nicht von Signalen abhängen. Diese Einschränkung bewirkt, dass das wirkliche Schaltungsverhalten nicht mit ausreichender Genauigkeit darstellbar ist. Insbesondere ist das Delay bei steigender und fallender Signalflanke signifikant verschieden. Daher wird in der Praxis das beschriebene Verfahren erweitert. Bisher wurde von einem bestimmten Taktschema ausgegangen, nämlich von einem globalen Takt und der ausschließlichen Verwendung von flankengesteuerten, nichttransparenten Flip-Flops. Abweichungen von diesem Schema können in der Regel in ähnlicher Weise behandelt werden. http://edascript.ims.uni-hannover.de/240_statischetiminganalyse/folie_08.html
Kritischer Pfad: Breitensuche Seite 2 von 2 Die Signalflussrichtung muss bekannt sein, da sonst kein DAG erzeugt werden kann. Ein Problem stellen daher Transmission-Gates dar, deren Signalflussrichtung in einer Schaltung wechseln kann. http://edascript.ims.uni-hannover.de/240_statischetiminganalyse/folie_08.html
FlipFlop/Setup- Hold-Zeit Seite 1 von 2 Untersucht man ein reales Flip-Flop, so fallen zwei Situationen auf, in denen es sich anders verhält, als man vom idealen Flip-Flop erwartet: 1. Wechselt der Wert am Dateneingang erst sehr kurz vor der steigenden Taktflanke, dann wechselt der Ausgang Q nicht wie erwartet. Nur wenn der Wechsel eine ausreichende Zeit vorher den neuen zu übernehmenden Wert besitzt, funktioniert das Flip-Flop wie erwartet. 2. Wechselt der Wert am Dateneingang sehr kurz nach der steigenden Taktflanke, so wechselt der Ausgang Q nicht wie erwartet. Also muss der Wert auch eine bestimmte Zeit lang nach der Taktflanke noch den beabsichtigten Wert behalten. Diesen Problemen wird dadurch begegnet, dass zwei Bedingungen an das Timing gestellt werden: Das Eingangssignal muss bereits um die Setup-Zeit ts vor und um die Hold- Zeit th nach der steigenden Taktflanke den gewünschten Wert haben. Die Setup-Zeit ist eingehalten, wenn das Delay des kritischen Pfades kleiner oder gleich der Taktperiode minus der Setup-Zeit beträgt. Um zu prüfen, ob die Hold-Zeit eingehalten wird, muss das minimale Delay berechnet werden. Es muss also nicht nur der längste, sondern auch der kürzeste Pfad im DAG gefunden werden. Das minimale Delay (Länge des kürzesten Pfades) muss mindestens die Hold-Zeit betragen. http://edascript.ims.uni-hannover.de/240_statischetiminganalyse/folie_09.html
FlipFlop/Setup- Hold-Zeit Seite 2 von 2 Die Suche nach dem kürzesten Pfad im DAG kann mit dem gleichen Algorithmus wie zur Suche nach dem längsten Pfad durchgeführt werden. Es muss nur eine Entscheidungsbedingung verändert werden. http://edascript.ims.uni-hannover.de/240_statischetiminganalyse/folie_09.html
Ein- und Ausgänge Weitere Timing-Bedingungen entstehen aus der Interaktion der zu untersuchenden Schaltung mit der Umgebung. Sind die Eingangssignale gegen den Takt versetzt, so wird dies als input arrival time bezeichnet. Sie kann im GAG durch Gewichtung der von s ausgehenden Kanten berücksichtigt werden. In entsprechender Weise lässt sich eine output required arrival time in den Kanten berücksichtigen, die auf t weisen. Die Kurvenform an den Eingängen wirken sich auf das Delay aus. Dem wird in der Praxis durch Angabe einer input slew rate, also der Steigung von Signalwechseln an den Eingängen Rechnung getragen. An den Ausgängen bestimmt die angeschlossene Last das Delay, diese kann durch Angabe einer output capacitance load beschrieben werden. http://edascript.ims.uni-hannover.de/240_statischetiminganalyse/folie_10.html
Sensibilisierbarkeit Die Grafik zeigt einen Ausschnitt aus einem Addierer. Unabhängig vom Wert des Eingangs x1 kann entlang des Pfads x1-a-b-z1-z2 kann kein Signalwechsel stattfinden. Diesen Pfad nennt man einen falschen Pfad. Er ist nicht statisch sensibilisierbar. Ein Pfad ist dann statisch sensibilisierbar, wenn es eine Wertebelegung aller Signale gibt, die nicht zum Pfad gehören, so dass ein Wechsel am ersten Signal im Pfad eine Änderung der Signale entlang des Pfades verursacht. Um falsche Pfade erkennen zu können, ist die Kenntnis der Logikfunktionen der Elemente erforderlich. Falsche Pfade können mit dem D-Algorithmus erkannt werden, der im Kapitel zum Thema ATPG beschrieben wird. Dort ist das Ziel, Signalwechsel über Pfade hinweg zu sensibilisieren und zu beobachten. Im Zusammenhang mit falschen Pfaden geht es darum, die Sensibilisierbarkeit von Pfaden zu überprüfen. Der D-Algorithmus leistet beides. http://edascript.ims.uni-hannover.de/240_statischetiminganalyse/folie_11.html
Slack-Histogramm Als Slack wird die Zeit bezeichnet, die ein Pfad länger sein könnte, ohne die Timing-Bedingungen zu verletzen. Ein negativer Slack bedeutet, dass ein Pfad zu lang, die Setup-Zeit also unterschritten wird. Im Slack-Histogramm ist über dem Slack-Wert die Anzahl der diesen Slack-Wert besitzenden Pfade aufgetragen. Aus diesem Diagramm ist ersichtlich, ob nur wenige Pfade negativen Slack besitzen, und daher lokale Optimierungen sinnvoll sind, oder ob im anderen Fall grundlegende Architekturänderungen erforderlich sind, um ein Design zu erhalten, das die Timing-Bedingungen einhält. http://edascript.ims.uni-hannover.de/240_statischetiminganalyse/folie_12.html
Zusammenfassung Input: Netzliste Delaymodell sowie -pararameter aller Verbindungen Verzögerungszeiten der Elemente Taktschema, -perioden, input arrival time, input slew rate, output capacitance load Einzuhaltende Bedingungen: Setup-, Hold-Time-Bedingungen der Speicherelemente output required arrival time Output: Aussage, ob Bedingungen eingehalten werden Kritischer Pfad Path-Slack-Histogramm http://edascript.ims.uni-hannover.de/240_statischetiminganalyse/folie_13.html
Borrowing Das Beispiel zeigt einen Latch-basierten Entwurf. Die drei Latches (auch taktzustandsgesteuerte Flip-Flops ) funktionieren folgendermaßen: Solange G high ist, besteht zwischen D und Q eine direkte Verbindung (Latch ist transparent). Wechselt G von High nach Low, so wird der Wert von D im Moment des Wechsels gespeichert und solange an Q ausgegeben, wie G Low bleibt. Ph1 und Ph2 beschreiben einen nicht-überlappenden Zwei-Phasen-Takt. Das heißt, sie sind abwechselnd aber nicht gleichzeitig high. L1 und L3 werden durch Ph1, L2 durch Ph2 getaktet. Die Setup- und Verzögerungszeiten der Latches sollen vernachlässigt werden. Im Zeitdiagramm ist erkennbar, was Time Borrowing bedeutet. Die steigende Flanke zum Zeitpunkt t=0 an L1 wird als Startpunkt der Daten von L1 angesehen. Sie erreichen L2 aber nicht rechtzeitig zum Zeitpunkt t=10. L2 ist aber transparent zwischen t=10 und t=20, so dass der erste Pfad sich bis zu 10 Zeiteinheiten der vom zweiten Pfad verfügbaren Setup-Zeit borgen kann. In diesem Fall sind das 5 Einheiten, so dass genug Zeit übrig ist, dass die Daten zum Zeitpunkt t=20 an L3 anliegen. http://edascript.ims.uni-hannover.de/240_statischetiminganalyse/folie_14.html
Retiming Die Grafik zeigt zwei hintereinander liegende Pfade. Das Gesamtdelay des ersten Pfades beträgt 11 Einheiten, erlaubt sind aber nur 10. Der folgende Pfad hat ein Delay von 7 Einheiten, also einen Slack von 3. Wird der Inverter an den Anfang des zweiten Pfades verschoben, so halten beide Pfade die Zeitbedingungen ein. Auch der Signalwert an FF3 bleibt unverändert. Nur der in FF2 gespeicherte Wert ist ein anderer. Je nach Abhängigkeit weiterer Pfade von FF2 müssen also logische Veränderungen in den Folgepfaden vorgenommen werden. http://edascript.ims.uni-hannover.de/240_statischetiminganalyse/folie_15.html