Zykluszeit zwischen Flip-Flops mit Verzögerung

Wie können Sie bei dieser Schaltung die minimale Zykluszeit berechnen, damit die Schaltung ordnungsgemäß funktioniert? Du musst mir erklären, wie ich mit Verzögerungen umgehe?

Geben Sie hier die Bildbeschreibung ein

Es muss etwas mit dieser Formel sein? Tclk>= Tpd (FF1) + Tpd (CL) + Tsetup (FF2) wenn ja, wie kombiniert man hier die "Verzögerung"?


Neben dem ersten Beispiel habe ich über einen anderen Fall nachgedacht. Um zu versuchen, die Formel zu verstehen, fügen Sie ein weiteres Flip-Flop hinzu. Ich bin mir nicht so sicher, wie ich im Falle von: FF2 -> FF3, FF3 -> FF2 und: FF3 -> FF1 vorgehen soll. Kannst du mir helfen?Geben Sie hier die Bildbeschreibung ein

Das ist richtig (?):
Tper12 +Tdelay1[min] ≥ Tpd(FF1)+Tpd(CL1)+Tsetup(FF2)
Tper23 +Tdelay2[min]-Tdelay1[max] ≥ Tpd(FF2)+Tpd(CL2)+ Tsetup(FF3)
Tper31 -Tdelay1[max]-Tdelay2[max] ≥ Tpd(FF3) + Tpd(CL3) + Tsetup(FF1)
Tper32 -Tdelay1[max]-Tdelay2[max]+Tdelay2[min]≥Tpd(FF3 )+Tpd(CL3)+Tsetup(FF2)

Sie haben eine Schaltung mit nur 7 Knoten. Zeichnen Sie das Zeitdiagramm, das zeigt, wann jeder dieser Knoten einen gültigen Wert hat. Es gibt zwei Pfade, die Sie berücksichtigen müssen: FF1-->CL1-->FF2 und FF2-->CL2-->FF1. Da die beiden FFs unterschiedliche Uhren haben, müssen Sie diese Beziehung auch explizit zeigen. Einer davon benötigt eine längere Taktperiode als der andere, und dies bestimmt die minimale Taktperiode des Ganzen.
Können Sie mir bitte erklären, wie ich berechnen muss: FF2-->CL2-->FF1? Ich versuche das seit zwei Tagen...
Beginnen Sie damit: Was können Sie über die Beziehung zwischen den beiden FF-Uhren sagen?
Ich weiß das: Tclk>=Tpd(FF2)+Tpd(CL2)+Tsetup(FF1). Aber was ist mit den Verzögerungen?
Nein, diese Formel funktioniert nur, wenn die beiden FFs denselben Takt haben . In diesem Fall tun sie das nicht. Was kannst du zu den Uhren sagen?
Das ist, wonach ich suche. Das ist meine Frage.
Was taktet FF1 im zweiten Beispiel?
Entschuldigung, ich habe es bearbeitet. (Können Sie meine Lösung überprüfen?)

Antworten (1)

Da dies eine "Hausaufgaben"-Frage ist, werde ich nur eine Teilantwort geben. Sie scheinen festgefahren zu sein, wie Sie mit der Tatsache umgehen sollen, dass die beiden FFs unterschiedliche Uhren haben.

Die zwei FFs werden von Takten angesteuert, die zwei unterschiedliche Verzögerungen von einem gemeinsamen Takt haben. Beginnen Sie mit dem Zeichnen eines Zeitdiagramms:

           reference time
              |________________                  ________________
Clock     ____/                \________________/                \_________
              |
           -->| |<-- Delay1(min)
           -->| |  |<--Delay1(max)
              | |__|________________               ___________________
Clk(FF1)  ____|_/__/             \__\_____________/__/             \__\____
              |
           -->|  |<-- Delay2(min)
           -->|  |   |<--Delay2(max)
                 |___|_________________             _____________________
Clk(FF2)  _______/___/             \___\___________/___/             \___\_

Wie Sie sehen können, gibt es eine beträchtliche Menge an potenziellem Taktversatz zwischen den beiden Takten.

Sie müssen zwei Extremfälle berücksichtigen:

  • Delay1 hat seinen Minimalwert und Delay2 hat seinen Maximalwert
  • Delay1 hat seinen Maximalwert und Delay2 hat seinen Minimalwert

Es kann einfacher sein, wenn Sie eine der FF-Uhren als Referenz verwenden, wodurch Sie den Gesamtversatz zwischen den beiden FFs direkt anzeigen können. Folgendes erhalten Sie, wenn Sie Clk(FF1) als Referenz verwenden:

              reference time
                 |________________                  ________________
Clk(FF1)  _______/                \________________/                \______
                 |
            -->| |<-- Delay1(min)
         -->|  | |<--Delay1(max)
            |__|_|______________               ___________________
Clock     __/__/ |           \__\_____________/__/             \__\________
            |  | |
         -->|  |<-- Delay2(min)
            -->| |    |<--Delay2(max)
               |_|____|________________            _______________________
Clk(FF2)  _____/_|____/         \______\__________/______/          \_____\
                 |                                |
                 |<------ total path delay ------>|
                          from FF1 to FF2

Beachten Sie, dass wir den Minimalwert von Delay2 relativ zur frühestmöglichen Clock-Flanke zeigen, während wir den Maximalwert relativ zur spätestmöglichen Flanke zeigen. Dies zeigt, dass der Gesamtversatz zwischen den beiden FF-Takten gleich der Summe der Versätze (Differenzen zwischen minimalen und maximalen Verzögerungen) für Delay1 und Delay2 ist.

Wenn Sie den kombinatorischen Pfad von FF1 zu FF2 betrachten, müssen Sie berücksichtigen, dass die FF2-Uhr frühestens Delay2(min)-Delay1(max) relativ zur FF1-Uhr auftreten kann und Ihre Setup-Zeit für FF2 relativ sein muss zu diesem Zeitpunkt. Bei Betrachtung des Pfades von FF2 nach FF1 ergibt sich ein entsprechender Zusammenhang.

Ich hoffe, das ist genug, um dich zum Laufen zu bringen.


Da Sie immer noch festzustecken scheinen, hier ist mehr:

Die allgemeine Regel lautet, dass bei Betrachtung des FF1→CL1→FF2-Pfads der Takt bei FF2 nicht früher kommen kann als die Summe der maximalen Verzögerungen, beginnend mit dem Takt bei FF1, einschließlich der Clock-to-Out-Verzögerung von FF1 und dem Setup Zeit von FF2. Die Dinge, über die ich oben gesprochen habe, zeigen, wie sich diese Gesamtwegverzögerung auf die Taktperiode mit den beiden Verzögerungen bezieht.

Wenn die Uhren identisch sind, können Sie sagen:

Tper(min) ≥ TpdFF1(max) + TpdCL1(max) + TsuFF2(max)

Wenn dies nicht der Fall ist, müssen Sie die allgemeinere Formel verwenden:

Tclk(FF2) - Tclk(FF1) ≥ TpdFF1(max) + TpdCL1(max) + TsuFF2(max)

Zu wissen, dass das früheste Tclk(FF2) ist:

Tclk(FF2) - Tclk(FF1) = Tper12(min) - Delay1(max) + Delay2(min)

Sie können diese miteinander kombinieren, um Folgendes zu erhalten:

Tper12(min) ≥ TpdFF1(max) + TpdCL1(max) + TsuFF2(max) + Verzögerung1(max) - Verzögerung2(min)

Wenn Sie den Pfad FF2→CL2→FF1 betrachten, erhalten Sie eine ähnliche Formel:

Tper21(min) ≥ TpdFF2(max) + TpdCL2(max) + TsuFF1(max) + Verzögerung2(max) - Verzögerung1(min)

Die endgültige Antwort wird der größere dieser beiden Werte sein.

Hast du diese Zeitdiagramme von Hand erstellt?
@ jbord39: Ja. Es in ASCII zu tun war einfacher als ein Zeichenwerkzeug zu starten. Ich bin daran gewöhnt, es von damals zu tun, als ich meine gesamte Dokumentation in ASCII machen musste.
Hier geht es nicht um Hausaufgaben, ich versuche allgemein zu verstehen, wie die "Verzögerung" in die Formel der Zykluszeit eingegeben wurde? Ich weiß, wie man das Diagramm zeichnet. Ich frage nur nach der Formel. Und ich versuche zu verstehen, wie die Formel sein sollte, und es ist immer noch nicht aus dem Diagramm ersichtlich. Es gibt keine allgemeine Formel im Falle einer Verspätung? (Ich habe diesen Fall nur als Beispiel aus meinem Kopf geholt. Nur um durch dieses Beispiel zu erkennen, was die Formel sein sollte.)
Deshalb habe ich "Hausaufgaben" in Anführungszeichen gesetzt. Unabhängig davon, woher das Problem tatsächlich kommt, es geht darum, Ihnen zu helfen, die Lösung selbst zu erarbeiten, und sie Ihnen nicht auf dem Silbertablett zu servieren.
In diesem Fall sollte es keine allgemeine Formel geben? (Ich versuche wirklich herauszufinden, wie ich dorthin komme - aber ich kann nicht ..)
Siehe die Bearbeitung oben.
Können Sie erklären, was "Tper12" bedeutet?
Tper12 = die Taktperiode für den FF1-->CL1-->FF2-Pfad.
Wie hast du das bekommen: Tclk(FF2) - Tclk(FF1) = Tper12(min) - Delay1(max) + Delay2(min)
Dies ergibt sich aus den Zeitdiagrammen. Wirklich, ich weiß nicht, wie ich das einfacher machen kann.
Ok, können Sie das andere Beispiel sehen, das ich gegeben habe? Ich habe die Frage bearbeitet. (Vielleicht mit dem zweiten Beispiel verstehe ich dieses Thema ...)
Es ist nur mehr vom Gleichen. Sie müssen den Pfad zwischen jedem Paar von FFs einzeln betrachten, indem Sie die Techniken verwenden, die ich bereits beschrieben habe. Wenn Sie alle Einzelantworten haben, bestimmt die größte davon die minimale Systemtaktperiode. Wenn Sie FFs und CLs zwischen ihnen hinzufügen, müssen Sie nur mehr Pfade berücksichtigen. Aus diesem Grund wurden Timing-Analyse-Tools für große Projekte entwickelt, da es schnell unpraktisch wird, alles von Hand zu machen. Aber Sie müssen immer noch die zugrunde liegenden Konzepte verstehen, um das zu verwenden, was sie Ihnen sagen.
Können Sie überprüfen, ob das, was ich oben geschrieben habe, wahr ist? (Ich habe die Frage bearbeitet)
@Dave Tweed♦ : Also, was sagst du?