D-Flip-Flop Hold und Setup-Timing

Ich löse eine Frage, um mich auf meine Prüfung vorzubereiten, bin aber bei dieser Frage hängengeblieben und brauche Ihre Hilfe.

Geben Sie die folgende Schaltung:

Schaltkreis

Wo Eingang x aktualisiert wird 10ns, nachdem die Uhr nach unten gegangen ist, wird mir auch gegeben, dass der Taktzyklus 50nsso ist, dass die Hälfte davon die Uhr 1 und der Rest die Uhr 0 ist.

Plus die folgende Zeittabelle:

Zeittabelle

Ich muss rechnen T_cd(XOR).


Die endgültige Antwort lautet: Wir können nicht feststellen, wie sich die Schaltung verhält, die den angeforderten Wert nicht finden können.

Daraus verstehe ich, dass T_Holddie T_SetupAnforderungen nicht erfüllt sind, also habe ich eine schnelle Überprüfung vorgenommen:

Ist T_CD(FF1)+T_CD(Logic)>=T_H(FF2)? (In diesem Fall ist FF1 auch FF2 und Logik ist XOR und OR-Gatter) Antwort: Richtig

Ist T_PD(FF1)+T_PD(Logic)+T_Setup(FF2)<=T_clk? (In diesem Fall ist FF1 auch FF2 und Logik ist XOR und OR-Gatter und T_clk ist die Zeit für den vollen Taktzyklus, was ist 50ns) Antwort: Richtig

Fazit: T_Holdund T_SetupAnforderungen werden nicht erfüllt, also können wir kalkulieren T_cd(XOR).

Ich glaube, mir fehlen hier ein paar Dinge, zumal ich in meiner Berechnung nie diesen Wert von 10ns...

Wenn die Dinge in meinem Kopf nicht klar sind, zeichne ich ein Zeitdiagramm.
@ Mattman944 ​​Ich habe es getan und das hat nicht viel geholfen, eigentlich hat es bewiesen, dass alles in Ordnung ist

Antworten (1)

Die endgültige Antwort lautet: Wir können nicht bestimmen, wie sich die Schaltung verhält ... Daraus verstehe ich, dass die Anforderungen für T_Hold und T_Setup nicht erfüllt sind

Nicht unbedingt die Schlussfolgerung, die Sie ziehen sollten. Wenn das Verhalten dieser Schaltung nicht bestimmt werden kann, kann dies bedeuten, dass Timing-Verletzungen aufgetreten sind aufgrund von -

  • Entweder Hold oder Setup fehlgeschlagen.
  • Sowohl Setup als auch Hold sind fehlgeschlagen.

Wo Eingang x 10 ns aktualisiert wird, nachdem die Uhr untergegangen ist,

Eine Möglichkeit, wie Sie sich dieses Szenario ansehen möchten, ist:

  • Stellen Sie sich vor, es gibt ein weiteres Flip-Flop-A, das „vor“ sitzt, um Daten an das Flip-Flop-B in Ihrer Schaltung zu senden, das diese Daten erfasst.
  • Diese Daten wurden bei der steigenden Flanke am Flip-Flop-A gestartet und sollen bei der nächsten steigenden Flanke am Flip-Flop B erfasst werden.
  • Die gestarteten Daten von Flip-Flop-A kommen dann nach 10 ns (unter der Annahme, dass keine Drahtverzögerungen, Skews vorhanden sind) am Eingang von ODER- und XOR-Gattern an, nachdem die Uhr heruntergegangen ist. Dies bedeutet effektiv, dass es eine Ausbreitungsverzögerung von durchlaufen hat T P D ( ich N ) = T C l k / 2 + 10 = 35  ns , bevor es den Eingang von ODER- und XOR-Gattern erreicht.

Unsere "imaginäre" Schaltung für die Zeitanalyse sieht also jetzt so aus -

Geben Sie hier die Bildbeschreibung ein

Ich schätze T P D Und T C D siehe Ausbreitungs- bzw. Kontaminationsverzögerungen .

Aufbauanalyse am Flip-Flop B

Betrachten Sie den Pfad mit der schlechtesten Verzögerung zu B (mit allen Ausbreitungsverzögerungen). Laut Inspektion ist es durch -

Eingangsverzögerung bei x XOR ODER

Geben Sie hier die Bildbeschreibung ein

Mathematik für ein zufriedenstellendes Setup:

T ich N + T P D ( X Ö R ) + T P D ( Ö R ) + T S e T u P ( B ) T C l k
35 + 6 + 7 + 4 50  ns
52 50  ns  --- verletzt! 

Daher können wir aus der Setup-Analyse selbst schließen, dass diese Schaltung eine Timing-Verletzung aufweist und daher ihr Verhalten ungewiss ist. Lassen Sie uns jedoch auch eine Hold-Analyse durchführen.

Analyse bei Flip-Flop B halten

Die Kontaminationsverzögerung von XOR ist unbekannt. Okay, betrachten wir trotzdem den Pfad mit der besten Verzögerung zu B (mit allen bekannten Kontaminationsverzögerungen). Laut Inspektion ist es durch -

Clock-to-Q von B XOR ODER

Geben Sie hier die Bildbeschreibung ein

Mathe für die Befriedigung von Hold:

T C D ( C l k Q ) + T C D ( X Ö R ) + T C D ( Ö R ) T H Ö l D
5 + T C D ( X Ö R ) + 4 10  ns
T C D ( X Ö R ) 1  ns

Das Obige gilt, wenn davon ausgegangen wird, dass Hold in der Schaltung erfüllt ist (was in Ihrer Frage nicht erwähnt wird und wir auch keine Schlussfolgerung ziehen können). Wenn Hold auch als verletzt angenommen wird, dann T C D ( X Ö R ) sollte sein:

T C D ( X Ö R ) < 1  ns

Was ich nicht verstehe, ist, warum Sie in der Setup-Analyse T_pd von FF nicht berücksichtigt haben? das habe ich gelernt und woher diese 35 kamen?
"Es bedeutet effektiv, dass es eine Ausbreitungsverzögerung von 𝑇𝑝𝑑(𝑖𝑛)=𝑇𝑐𝑙𝑘/2" durchlaufen hat, warum 𝑇𝑐𝑙𝑘/2?
Warum haben Sie in Hold Analysis nicht auch Tcd(clk -> Q) für das FF genommen, das Sie gerade hinzugefügt haben?
Beim Setup muss man den schlechtesten Delay-Pfad nehmen. Es gibt drei Setup-Pfade. Ich habe den schlechtesten Verzögerungspfad für die Analyse genommen. In diesem Pfad kommt tpd von B nicht ins Bild.
Tclk/2, weil die angegebene Verzögerung von 10 ns von der fallenden Flanke gemessen wird (gemäß der Frage). Daher muss eine Halbzyklusverzögerung hinzugefügt werden, um die Gesamtverzögerung ab der ansteigenden Flanke zu finden.
Hallo, ich habe gerade Ihre Antwort noch einmal gelesen und denke, dass mit der Berechnung von T_setup etwas nicht stimmt. Lassen Sie mich erklären: Der Eingang änderte sich 10 ns, nachdem die Uhr nach unten gegangen ist, was bedeutet, dass 35 ns nach der Uhr nach oben gegangen sind. Jetzt haben wir nur noch einen Pfad vom FF zu sich selbst. Wenn die Uhr jetzt steigt, dann XOR-Gatter 6ns, um seine Arbeit zu beenden, dann warten wir auf den Eingang x, der uns sagt: "Ich werde in weiteren 29ns fertig sein", also haben wir insgesamt 35 ns gewartet. dann benötigt or weitere 7 ns, was insgesamt 42 ns ergibt. Schließlich fügen wir tpd (FF) + t_setup (FF) hinzu und erhalten insgesamt 66 ns, während Sie 52 haben
Deine Berechnungen sind falsch. Sie beziehen tpd von Flipflop + xor in Ihre Berechnungen ein, was für das Setup irrelevant ist, da es sich um einen schnelleren Pfad als den 35-ns-Eingangspfad handelt. Durch das 35-ns-Fenster erreichen diese Daten bereits innerhalb von 27 ns das Gate. Es ist kein kritischer Pfad.
Können Sie bestätigen, ob t_hold für den anderen Pfad 44 ns beträgt?