Minimale Taktperiode von der Einrichtungs- und Haltezeit

Ich habe verschiedene Antworten darauf gefunden, wie Setup und Haltezeit von Flip-Flops die Mindestzeit zwischen zwei steigenden Taktflanken beeinflussen.

  1. tclock >= Ausbreitungsverzögerung + tsetup + thold
  2. tclock >= Ausbreitungsverzögerung + tsetup
  3. tclock >= Laufzeitverzögerung + Max(tsetup, thold)

Welcher von ihnen hat recht? Nach meinem Verständnis sollte es die erste Version sein, aber ich habe einige Antworten gefunden, die besagen, dass die Haltezeit die Taktrate nicht ändert.

Die meisten Flip-Flops haben eine minimale Taktrate von 0 Hz.
Ah mein Fehler, ich dachte an die minimale Taktperiode.

Antworten (2)

Die Mehrdeutigkeit kommt von der Tatsache, dass das Erfüllen der Haltezeitanforderung von der Ausbreitungsverzögerung abhängt.

Wenn Sie davon ausgehen, dass die Laufzeitverzögerung des FF immer länger ist als die Haltezeit, dann stellt die Laufzeitverzögerung sicher, dass die Haltezeit eingehalten wird und tclock >= tprop + tsetup.

Es wäre ungewöhnlich, wenn die Ausbreitungsverzögerung eines FF kürzer als die Haltezeit wäre.

Es gibt natürlich zusätzliche Komplikationen, die durch die Tatsache verursacht werden, dass sich Ausbreitungsverzögerung, Setup und Hold mit Spannung und Temperatur ändern, und Sie müssen einen Versatz zwischen den Takten an den Quell- und Ziel-FFs berücksichtigen.

Es ist also eher so: tpropagation > thold AND tclock >= tprop + tsetup?
Ja. Im ungewöhnlichen Fall von tprop < thold müssten Sie dem FF-Ausgang eine Verzögerung hinzufügen, was tprop effektiv erhöhen würde.
"Die Mehrdeutigkeit ergibt sich aus der Tatsache, dass das Erfüllen der Haltezeitanforderung von der Ausbreitungsverzögerung abhängt." Nur wenn Q des FF an der Zustandsänderung des D-Eingangs beteiligt ist. Dies ist in einigen Analysefällen eine wichtige Unterscheidung.
@MichaelKaras Wenn ein FF den D-Eingang des Ziel-FF nicht beeinflusst, gibt es keinen Grund, ihn anzuschließen. Es könnte logisch eliminiert werden. Ob der FF-Zustand bei einem bestimmten Taktzyklus wichtig ist, ist irrelevant, vorausgesetzt, dass er bei einem oder mehreren Taktzyklen wichtig ist. Abhängig von der Logik zwischen dem Q-Ausgang und dem D-Eingang kann die Ausbreitungsverzögerung sicherlich vom Systemzustand abhängen. Vielleicht ist das Ihr Punkt?
@crj11 - Wenn Sie meine Antwort lesen, sollten Sie in der Lage sein, meinen Standpunkt zu verstehen. Wenn Sie sagen, dass es ein "Ziel-FF" gibt, dann erweitert dies die Analyse auf ein System von FFs und erweitert sie dann auf den zweiten Teil meiner Antwort. Die Einzel-FF-Analyse kann ins Spiel kommen, wenn mit einigen Schaltungsdesigns gearbeitet wird, bei denen FFs unabhängig von Flanken von asynchronen Signalen getaktet werden, im Gegensatz zu dem gemeinsamen Taktungsschema.

Wird das Flip-Flop bezüglich der CLK- und der D-Eingänge streng alleine analysiert, so nähert sich die minimale Taktperiode der Summe aus t setup und t hold Zeiten. Die Laufzeitverzögerung kommt nur zum Tragen, wenn die Ausgänge des Flip-Flops den nächsten Zustand des D-Eingangs bestimmen.

Damit haben die meisten analysierten Systeme ein Array aus mehreren Flip-Flops, deren CLK-Eingänge alle mit einer gemeinsamen Taktquelle verbunden sind. Zusätzlich werden die Ausgänge der verschiedenen Flops auf irgendeine Weise miteinander verbunden, möglicherweise einschließlich anderer kombinatorischer Logik, um die nächsten Zustandswerte zu den D-Eingängen zu den Flops zu bestimmen. In diesem Fall ist es notwendig, dass die Ausbreitungsverzögerung immer in die Analyse einbezogen wird und diese Verzögerung mehr als nur die Verzögerung CLK zu Q des Flip-Flops umfassen muss. Die zusätzliche Verzögerung zusätzlicher kombinatorischer Logikpfade muss hinzugefügt werden, und in Fällen von Takten mit sehr hoher Geschwindigkeit muss auch die Verzögerung der Signale entlang der Routing-Pfade hinzugefügt werden.

Bei der Analyse auf Systemebene oder vom Zustandsmaschinentyp für die minimale Taktperiode ist es üblich, die Verzögerungen aller Flip-Flops als dieselben Worst-Case-Spezifikationen zu betrachten, sodass nicht jeder einzelne Pfad durch den Logikbaum einzeln berechnet werden muss. Dies ist auch ein Grund dafür, dass ein robustes Logikdesign immer synchron in Bezug auf eine gemeinsame Taktquelle sein möchte, sodass die Analyse auf das Takt-zu-Takt-Verhalten beschränkt werden kann.