Timing und Glitches

Jedes Bauelement benötigt einen Moment, bis es auf eine Änderung am Eingang reagiert. Natürlich sind diese Zeiten bei einzelnen Element sehr gering, aber wenn man richtige Schaltung baut, dann kann es sehr schnell zu Problemen kommen.

Schaltungen aus primitiven Elementen

Bei Schaltungen mit einfachen Bauteilen halten sich die Zeiten, die berücksichtigt werden müssen, in Grenzen. Es gibt nur 2: t_{cd} und t_{pd}. Mit t_{cd} (engl. contamination delay) gibt man die minimale Zeit an, bis die Schaltung den neuen Wert ausgibt. Mit t_{pd} (engl. propagation delay) dagegen die maximale Zeit, bis der neue Wert feststeht.
Zu beachten ist, dass es zwischen t_{cd} und t_{pd} zu mehreren Änderungen am Ausgang der Logik geben kann, auch wenn sich der Eingangswert nur ein einziges mal geändert hat. Das sind die sogenannten Glitches.

Glitches

In Logikschaltungen gibt es Pfade in denen nur wenige Elemente liegen (engl. short path), die das Ergebnis also sehr schnell berechen. Natürlich gibt es dann auch Pfade in denen viele (oder einfach mehr Elemente als in short path) liegen (engl. critical path), und deren Ergebnis erst später fertig ist. Deshalb kann es vorkommen, dass sich der Ausgang einer Logikschaltung zwischen t_{cd} und t_{pd} mehrmals ändert, bis er dann nach t_{pd} stabil das Ergebnis zeigt.
Beispiel in der Wikipedia.

Sequenzielle Logik

In sequentielle Logik sind sowohl Logikbausteine als auch Flip-Flops verbaut. Die Logikbausteine berechnen den neuen Wert, der dann am Eingang von einem Flip-Flop anliegt, das den Wert dann zur nächsten Taktflanke übernimmt. Daraufhin kann die Logik hinter einem Flip-Flop nach der Taktflanke eine neue Berechnung beginnen, da sich die Eingangswert eventuell geändert haben.
Da die Logik eine bestimme Zeit benötigt bis sie die Berechnung definitiv abgeschlossen hat, muss genügend Zeit zwischen zwei Taktflanken zur Verfügung stehen. Da man aber nicht 100%tig sagen kann wann das Flip-Flop den neuen Wert übernimmt und wann der neue Wert ausgegeben wird, brauchen wir auch einen Zeitpuffer für das Flip-Flop.
Genau gesagt, darf sich t_{setup} vor der Taktflanke bis t_{hold} nach der Taktflanke nichts mehr am Eingangssignal des Flip-Flops ändern. Nach dem das Flip-Flop den neuen Wert übernommen hat (man spricht auch von sampled), können wieder die Berechnungen durch die Logik stattfinden. Beide Zeiten werden als Abtastzeit bezeichnet, also das Zeitintervall um die Taktflanke herum in dem sich das Eingangssignal nicht ändern darf – es muss stabil sein. t_{a}=t_{setup}+t_{hold}

t_{a} ist also ein Zeitpuffer um die Taktflanke herum, falls ein Flip-Flop etwas früher oder etwas zu spät sampled.

Allerdings gibt es bei Flop-Flops noch weitere Verzögerungen die zu beachten sind: Ähnlich wie bei Logik kann es eine bestimme Zeit dauern, bis der neue Wert nach einer Taktflanke ausgegeben wird. Dazu gibt es zwei Zeiten: t_{ccq} (engl. contamination delay) gibt die minimal Zeit an, nach der der Ausgang bereits wieder aktuell sein könnte. Des weiteren sagt sie aus, wie lang nach einer Taktflanke definitiv keine Änderungen am Ausgang auftreten.
Schließlich gibt t_{pcq} (engl. propagation delay) die Zeit an, nach der der Ausgang in jedem Fall den korrekten Wert hat. Zwischen t_{ccq} und t_{pcq} könnte der Ausgang – genau wie bei Logikschaltungen – glitchen.

Taktfrequenz

Mit diesen Zeitanforderungen lässt sich bestimmen wie hoch der Takt maximal für eine Schaltung sein kann.
Wir müssen folgende Zeiten berücksichtigen:

  • t_{pcq}
    die Zeit die das Flip-Flop braucht, bis es nach einer Taktflanke den neuen Wert ausgibt
  • t_{pd}
    die Zeit die die Logik maximal braucht, bis sie den neuen Wert berechnet hat
  • t_{setup}
    die Zeit in der das Signal vor einer Taktflanke stabil sein muss

Die Zeit zwischen 2 Takten muss mindestens die Summe dieser drei Zeiten sein, also ist die Formel: T_c = t_{pcq} + t_{pd} + t_{setup}. Damit lässt sich dann auch die Taktfrequenz berechnen: f = \frac{1}{T_c}

Schlagworte: , , , , , , , , , , , , , , , , ,

2 Kommentare zu „Timing und Glitches“

  1. [...] Blog Wissen ist der erste Rohstoff, der sich bei Gebrauch vermehrt! – brandeins « Timing und Glitches Zooma Mitschnitte zum Download [...]

  2. Thomas F. Guthörle sagt:

    TIMING ??
    Ich finde es mehr als erschreckend, daß amerikanisierte Worte, auch DENGLISCH genannt, sich immer mehr in unser Leben einschleichen!
    Statt TIMING kann man auch ZEITPUNKT, ZEITABLAUF oder
    ZEITGEFÜHL sagen, bzw. schreiben!
    Wir haben eine so reiche und ausdrucksvolle Muttersprache (die Sprache der Dichter u. Denker!), daß wir die Ami-Begriffe gar nicht benötigen! Es gibt für alles gute und passende DEUTSCHE Worte!

    Thomas F. Guthörle

Kommentieren