Formale Grundlagen von Schaltwerken L6-L8 1 L6-1: d-Flipflops d-Fliflops vermeiden den Nachteil der d-Latches sie interessieren sich nur für Eingangsbelegungen zu bestimmten Zeitpunkten Sie "diskretisieren" die Zeit: Wirkung des Einschreibens in ein d-Fliflop erfolgt: nur zu den durch Belegungsänderungen (z.B.: L O) des Taktsignals festgelegten diskreten Zeitpunkten. Vernachlässigung der setup-Zeit Formale Grundlagen von Schaltwerken L6-L8 2 d-Flipflops q: d: t: T=5: : Ausgangssignal Eingangssignal Zeit Beispiel für Taktperiode Verzögerungszeit im Flipflop nur die Werte von d zu Zeiten, die ganzzahlige Vielfache der Periodendauer T sind, werden aufgenommen und ausgegeben Verhalten: t q(t ) d * 5 5 Formale Grundlagen von Schaltwerken L6-L8 Beispiel: Verhalten d-Flipflop t 5 * 5 3 d t 0 1 2 3 4 5 6 7 8 9 10 11 12 13 takt5 t 0 1 2 3 4 5 6 7 8 9 10 11 12 13 konstant für Dauer T Sei = 0 qRücksetzen t q(t) d * 5 5 t 0 1 2 3 4 5 6 7 8 9 10 11 12 13 Formale Grundlagen von Schaltwerken L6-L8 4 Zeitsteuerung zur Einhaltung der Vereinbarung zwischen Schaltnetz und Umgebung Ich, Schaltnetz, verspreche: Fertigstellung zur Zeit Ich, Umgebung, verspreche: Bei Anlieferung t1 zur Zeit * T T Konstanthalten bis fast zur t1 Zeit * T + T T t1 T * T + tproc Schaltnetz Umgebung Hier sind die Flipflops drin Konsequenz: Forderung Taktperiode T tproc Formale Grundlagen von Schaltwerken L6-L8 5 Wir wissen was wir wollen: Ein Flipflop mit der Funktion: t q(t ) d * T T Formale Grundlagen von Schaltwerken L6-L8 Aber wie kriegen wir es hin? 6 Formale Grundlagen von Schaltwerken L6-L8 7 L6-3: Struktur eines d-Flipflops d taktT R d- q i latch T/2 ddlatch latch q d taktT taktT,T/2 Phasenschieber: T 2 dflipflop q Formale Grundlagen von Schaltwerken L6-L8 8 L6-2: Idee der Funktion eines d-Flipflops takt4(t) = L, takt4,2(t) = O: d 6 t 8 q d(?) d(t) q(t) = d ? takt4 L q(t)=d(?) O 0 2 4 6 8 10 t Es wird zwar wegen takt4(t) = L dauernd in das erste d-Latch eingelesen, doch das zweite dLatch behält seinen Wert, da takt4,2(t) = O Formale Grundlagen von Schaltwerken L6-L8 9 L6-2: Idee der Funktion eines d-Flipflops Taktwechselzeit von L nach O: d t=8 d(8) q d(?) q(t)=d(?) takt4 L Das erste Latch schaltet ab und bewahrt den Wert d(8) auf O 0 2 4 6 8 10 t q(8+ ) = d(8) Formale Grundlagen von Schaltwerken L6-L8 10 L6-2: Idee der Funktion eines d-Flipflops 8 takt4(t) = O, takt4,2(t) = L: d d(8) 10 t q d(8) takt4 L q(t) = d(8) O 0 2 4 6 8 10 t q(t) = d(8) Das zweite Latch übernimmt wegen takt4,2(t) = L den in diesem Intervall nicht mehr veränderbaren Wert d(8) vom ersten Latch Formale Grundlagen von Schaltwerken L6-L8 11 L6-2: Idee der Funktion eines d-Flipflops 10 t 12 takt4(t) = L, takt4,2(t) = O: d d(t) d(8) q q(t) = d(8) 4 6 8 10 12 14 t q(t) = d T Das erste Latch ist zwar aufnahmebereit, das zweite aber behält den Wert d( T ), da sein Taktsignal den Wert O besitzt. Formale Grundlagen von Schaltwerken L6-L8 12 L6-2: Idee der Funktion eines d-Flipflops Taktwechselzeit von L nach O: t = 12 d d(12) d(12) q q(t) = d T T Ein neuer Wert wird ausgegeben 4 6 8 10 12 14 t Formale Grundlagen von Schaltwerken L6-L8 13 L6-2: Zusammenfassung Vom Zeitpunkt t T und für alle nachfolgenden Zeiten t T T gilt: q(t) = d T Beispiel: T = 4 takt4 1 L q(t) = d T O 0 2 4 6 8 letzter eingelesener Wert wird ausgegeben 10 t Formale Grundlagen von Schaltwerken L6-L8 14 L6-6: Was wir könnten ... Wir könnten die Verhaltensbeschreibung des d-Fliflops aus der sequentiellen Komposition zweier d-Latches formal ableiten, ……. d taktT qi dlatch taktT,T/2,T/2 T— /2 ddlatch latch q Formale Grundlagen von Schaltwerken L6-L8 …, wenn wir nur wollten 15 Formale Grundlagen von Schaltwerken L6-L8 16 Ergebnis unserer virtuellen Bemühungen Verhalten eines d-Flipflops mit T = 5: Für t 5.0: t q t d * 5 5 Formale Grundlagen von Schaltwerken L6-L8 17 d t 0 1 2 3 4 5 6 7 8 9 10 11 12 13 takt5 t 0 1 2 3 4 5 6 7 8 9 10 11 12 13 konstant für T q t 0 1 Rücksetzen 2 3 4 5 6 7 8 9 t q(t ) d * 5 5 10 11 12 13 t 5 , im Bild: = 0 Formale Grundlagen von Schaltwerken L6-L8 18 Das gewünschte Verhalten des d-Flipflop stellt sich ein. Formale Grundlagen von Schaltwerken L6-L8 19 L6-7: Definition: d-Flipflop (allgemein) Ein d-Flipflop werde durch ein Taktsignal taktT(t) gesteuert. Das d-Flipflop habe die Verzögerungszeit . Bei Einhaltung von Setupzeiten ( t setup ) gilt: t d * T q t T O für tT für tT Initialisierung Formale Grundlagen von Schaltwerken L6-L8 20 L6-8: Bewertung des d-Flipflops t d * T q t T O für tT für tT Die Werte des d-Signals werden nur zu den Zeitpunkten t * T mit Latch) übernommen und ausgegeben um verzögert ausgegeben in das Flipflop (zweite d- Formale Grundlagen von Schaltwerken L6-L8 21 L6-8: Bewertung des d-Flipflops Wertänderungen im zweiten d-Latch können nur beim Taktwechsel von L nach O erfolgen und nicht während taktT = L ist einziger Nachteil: aufwändiger Formale Grundlagen von Schaltwerken L6-L8 22 L7: Zeitabstraktion Bisher: konkrete Zeit Zu jedem Zeitpunkt t R ist das Verhalten d-Flipflops festgelegt Nun: abstrakte Zeit Diskrete, d.h. abzählbare Zeitpunkte * T mit Nur zu diesen Zeitpunkten passiert etwas Entscheidendes im Schaltwerk (Hoffentlich!) Formale Grundlagen von Schaltwerken L6-L8 23 L7-2: Beispiel: Konkrete und abstrakte Zeit in einem Schaltwerk 1 takt3 1 t R d 1 dflip flo p q q Rücksetzen q 0 t ta kt 3 d0 tse tu p = 1 d t vor der ersten Taktwechselzeit von L nach O Formale Grundlagen von Schaltwerken L6-L8 24 L7-4: Beispiel: Konkrete und abstrakte Zeit in einem Schaltwerk 1 =1 takt3 1 t 1 R d 1 dflip flo p q q Rücksetzen q 0 ta kt 3 d0 tse tu p = 1 q1 q reagiert um 1 (konkret) verzögert auf die Taktflanke und d0=1 t d t Taktwechselzeit T: abstrakter Zeitindex von q wird um 1 erhöht Formale Grundlagen von Schaltwerken L6-L8 25 Beispiel: Konkrete und abstrakte Zeit in einem Schaltwerk abstrakt=1 1 takt3 1 t 1 q 1 R d 1 dflip flo p q q 0 Rücksetzen:q konkret: jetzt hat d als Reaktion auf q1 einen neuen Wertt angenommen: d1 = 0 d0 ta kt 3 tse tu p = 1 d 2 d1 t abstrakte Zeit 1 Formale Grundlagen von Schaltwerken L6-L8 26 L7-4: Beispiel: Konkrete und abstrakte Zeit in einem Schaltwerk =1 1 takt3 1 t q1 1 1 q R d 1 =2 dflip flo p q q Rücksetzen:q 0 d0 ta kt 6 tse tu p = 1 der Wert d1 = Ot wird übernommen d 2 d1 d1 t setup-Zeit tsetup = 1 wird eingehalten Formale Grundlagen von Schaltwerken L6-L8 27 L7-4: Beispiel: Konkrete und abstrakte Zeit in einem Schaltwerk =2 =1 1 takt3 1 t 1 R d 1 dflip flo p q q1 q 0 Rücksetzen: q d ta kt 6 tse tu p = 1 =3 d 1 q2 q2 t 0 2 2 d 1 d 2 d2 setup-Zeit tsetuo = 1 wird eingehalten Der Wert d2= L wird übert nommen Formale Grundlagen von Schaltwerken L6-L8 28 L7-3: Beispiel: Analyse der Zeitbedingungen Bedingung: Verzögertes Signal muss vor der nächsten setup-Zeit am Flipflop-Eingang ankommen *T + d + NOT + tsetup +1)*T Periodendauer T muss entsprechend gewählt werden 1 1 R d 1 dflip flo p q ta kt 6 tse tu p = 1 Alle Schaltnetzsignale ändern jeweils sich zur gleichen abstrakten Zeit Formale Grundlagen von Schaltwerken L6-L8 29 L7-5 Abstraktes d-Flipflop Bisherige Definition mit konkreten Zeiten: t d * T q t T O für für tT tT Von jetzt ab: zeitabstraktes d-Flipflop q0 O (Einstellung über den Rücksetzeingang im Intervall 0, T ) q1 d mit 0 Formale Grundlagen von Schaltwerken L6-L8 30 Merkregel zur Vergabe abstrakter Zeitindizes Gegeben: Schaltwerksstruktur Sequenz von Eingangswerten mit fortlaufenden, bei 0 beginnenden abstrakten Zeitindizes Ausführung: 1. Initialisierung Die durch Rücksetzung erzeugten Ausgangswerte von d-Flipflops erhalten den Zeitindex 0; 0; Formale Grundlagen von Schaltwerken L6-L8 31 Ausführung: 2. Wiederholung Wiederhole bis zu einem vorgegebenen Maximalwert max von : Verfolgung der Eingangssignale und d-Flipflop-Ausgangssignalen mit Index : Alle Signale, die in einem Schaltnetz erzeugt werden, erhalten denselben abstrakten Zeitindex wie ihre Eingangssignale; Von Flipflops generierte Signale erhalten den erhöhten abstrakten Zeitindex: q1 d ; 1; Ende der Bearbeitung nach max Durchgängen Formale Grundlagen von Schaltwerken L6-L8 32 Beispiel: Analyse eines Schaltwerk mit abstrakten Zeiten Formale Grundlagen von Schaltwerken L6-L8 1 1 Rücksetzen: q0 O R d 1 dflip flo p ta kt 3 tse tu p = 1 q 33 Formale Grundlagen von Schaltwerken L6-L8 34 Beispiel: Analyse eines Schaltwerk mit abstrakten Zeiten 1 1 Rücksetzen: q0 O 0: R d 1 dflip flo p ta kt 3 tse tu p = 1 q Ausgang der NOT-Komponente: d0 q0 L Formale Grundlagen von Schaltwerken L6-L8 35 Beispiel: Analyse eines Schaltwerk mit abstrakten Zeiten 1 Rücksetzen: q0 O 1 0: Ausgang der NOT-Komponente: d0 q0 L R d 1 dflip flo p ta kt 3 tse tu p = 1 q Ausgang des Flipflops: q1 d0 L 1 Zeitschritt Formale Grundlagen von Schaltwerken L6-L8 36 Beispiel: Analyse eines Schaltwerk mit abstrakten Zeiten 1 1 Ausgang des Flipflops: q1 d0 L , 1 Ausgang der NOT-Komponente: d1 q1 O R d 1 dflip flo p ta kt 3 q usw. Ergebnis: q = q q q q q .... OLOLO.... 0 1 2 3 4 tse tu p = 1 Stimmt aber nur, wenn die Bedingungen von den konkreten Zeiten eingehalten werden Formale Grundlagen von Schaltwerken L6-L8 37 Zusammenfassung: für alle 0: d q ; q1 d Formale Grundlagen von Schaltwerken L6-L8 L7-8: Was bringt die Abstraktion? Nachteil: Informationsverlust Vorteil: einfacher zu verstehen bessere Dokumentation einfachere Schaltungsanalyse einfachere Schaltungssynthese 38 Formale Grundlagen von Schaltwerken L6-L8 39 L8-2: Schaltwerksanalyse mit abstrakten Zeiten und Eingaben x(t): Eingangssignal R 1 x 1 1 1 AND d 1 taktT R 1 dflipflop 1 dflipflop 2 setup= 1 xd(t): synchronisiertes Eingangssignal xd q y Formale Grundlagen von Schaltwerken L6-L8 40 L8-3 Diskretisierung von Eingangssignalen R x tak tT d1 flipflo p 1 x d x0d O (Rücksetzen) x d1 x mit 0 Beispiel: x O L L O O xd O durch Rücksetzsignal eingestellt O L L O O Formale Grundlagen von Schaltwerken L6-L8 41 L8-5/6:Beispiel: Schaltwerksanalyse mit abstrakten Zeiten R 1 x 1 1 1 AND d 1 taktT R 1 dflipflop 1 dflipflop 2 tsetup = 1 Schaltnetz: xd x0d O (Rücksetzen) x d1 x mit q 0 y q0 O (Rücksetzen) q1 d mit d x d q 0 y q Formale Grundlagen von Schaltwerken L6-L8 42 L8-5/6: Anfangssituation: Rücksetzen =0 R 1 x x O 0 d 1 1 q O 0 1 AND d 1 taktT R 1 dflipflop 1 dflipflop 2 xd q y tsetup = 1 x d1 x q1 d y q d x d q Formale Grundlagen von Schaltwerken L6-L8 43 L8-5/6: Anfangssituation: Eingabe =0 x x O 0 d 1 x0 1 q O 0 R 1 1 AND d 1 taktT R 1 dflipflop 1 dflipflop 2 xd q y tsetup = 1 x d1 x , q1 d , y q d x d q Formale Grundlagen von Schaltwerken L6-L8 44 L8-5/6: Anfangssituation: das Schaltnetz berechnet den neuen q-Wert =0 x x O 0 d 1 x0 1 q O 0 1 AND d 1 taktT d0 x 0d q0 OL O R 1 R 1 dflipflop 1 dflipflop 2 xd q y tsetup = 1 x d1 x q1 d y q d x d q Formale Grundlagen von Schaltwerken L6-L8 =0 =1 x O x x 0 d 1 d 45 x 0 1 x0 1 q0 O R 1 q1 = d0 = O 1 AND d 1 taktT R 1 dflipflop 1 dflipflop 2 xd q y tsetup = 1 d0 x 0d q0 OL O x d1 x q1 d , y q d x d q Die Taktwechselzeit bestimmt den neuen Zeitindex: Übernahme in die Flipflops Formale Grundlagen von Schaltwerken L6-L8 46 Es kommt eine neue EingabeR =1 x x 1 d x 0 1 x1 1 q1 = d0 = O 1 1 AND d 1 taktT R 1 dflipflop 1 dflipflop 2 xd q y tsetup = 1 x d1 x , q1 d , y q d x d q Formale Grundlagen von Schaltwerken L6-L8 Das Schaltnetz kann den neuen Zustand berechnen 47 R 1 =1 x x1d x 0 x1 q1 = d0 = O 1 1 1 AND d 1 taktT d1 x1d q1 x0 L x0 R 1 dflipflop 1 dflipflop 2 xd q y tsetup = 1 x d1 x q1 d d x d q y q Formale Grundlagen von Schaltwerken L6-L8 48 L8-5/6: Beispiel: Schaltwerksanalyse mit abstrakten Zeiten Die Taktwechselzeit bestimmt die neue abstrakte Zeit =1 =2 x x x 2 d R 1 1 1 x1 1 q2 = d1 = x0 1 AND d 1 taktT d1 x1d q1 x0 L x0 R 1 dflipflop 1 dflipflop 2 xd q y tsetup = 1 x d1 x q1 d y q d x d q Formale Grundlagen von Schaltwerken L6-L8 49 =2 Die neue Eingabe x x x 2 d 1 x2 1 1 q2 = d1 R 1 = x0 1 AND d 1 taktT R 1 dflipflop 1 dflipflop 2 xd q y tsetup = 1 x d1 x q1 d d x d q y q Formale Grundlagen von Schaltwerken L6-L8 Die Berechnung des neuen Zustandes 50 =2 x x x 2 d 1 1 x2 1 q2 = d1 = x0 R 1 1 AND d 1 taktT d2 x 2d q2 x1 x 0 R 1 dflipflop 1 dflipflop 2 xd q y tsetup = 1 x d1 x q1 d y q d x d q Formale Grundlagen von Schaltwerken L6-L8 51 L8-9: Beispiel: Schaltwerksanalyse mit abstrakten Zeiten Wert des q-Signals zu einer Zeit hängt von vorhergehenden Werten des Eingangssignal x ab Rekursive Darstellung: q1 x 1 q In q sind alle Informationen über die früheren Werte des Eingangssignals gespeichert, die man benötigt, um q+1 zu ermitteln. Formale Grundlagen von Schaltwerken L6-L8 Überleitung zum nächsten Kapitel 52 Formale Grundlagen von Schaltwerken L6-L8 53 L8-11: Definition: Zustand Ein Schaltwerk sei aus m + h d-Flipflops aufgebaut Ausgangssignale der Flipflops: o xd,1, xd,2, ..., x d,m für die diskretisierten Eingangssignale o q1, q2,..., qh für die übrigen Flipflop-Ausgänge (innerer Zustand) Jede Belegung der m + h Ausgangsvariablen der Flipflops definiert einen (Gesamt-) Zustand des Schaltwerks. Ein solches Schaltwerk kann 2m+h unterschiedliche (Gesamt-) Zustände einnehmen. Formale Grundlagen von Schaltwerken L6-L8 54 L8-11: Beispiel: Anzahl der Zustände R 1 x 1 1 1 AND d 1 taktT R 1 dflipflop 1 dflipflop 2 tsetup = 1 xd m = 1: diskretisiertes Eingangssignal q y h = 1: inneres Zustandssignal 22 = 4 Gesamt-Zustände sind möglich L 89 Formale Grundlagen von Schaltwerken L6-L8 L8-12: Schaltwerksfunktion: Erzeugung von Ausgangssequenzen aus Eingangssequenzen Ein Schaltwerk erhält Sequenzen von Eingangswörter und erzeugt interne Zustände und Sequenzen von Ausgangswörtern 55 Formale Grundlagen von Schaltwerken L6-L8 56 L8-12: Beispiel: Schaltwerksfunktion x O L L O O R 1 x 1 1 1 AND d 1 taktT R 1 dflipflop 1 dflipflop 2 xd q y tsetup = 1 yq O O O L O Formale Grundlagen von Schaltwerken L6-L8 57 L8-12: Definition: Menge der endlichen Sequenzen Bn : B : n * Menge der n-stelligen Booleschen Wörter Menge der endlichen Sequenzen von n-stelligen Booleschen Wörtern. Die Sequenzen dürfen beliebig lang sein. Formale Grundlagen von Schaltwerken L6-L8 58 Korrekte Schaltwerksfunktion Ein Schaltwerk arbeitet korrekt, wenn 1. die möglichen Eingabesequenzen die jeweils geforderten Ausgabesequenzen erzeugen 2. die maximale Zeitverzögerung der Zustandssignale kleiner als die Taktperiode ist Entsprechend sind zwei Entwurfsphasen notwendig Formale Grundlagen von Schaltwerken L6-L8 59 L8-14: Zweite Phase: konkrete Zeitanalyse eines Schaltwerks Formale Grundlagen von Schaltwerken L6-L8 60 R 1 Periodendauer T= 5 x xd d = 1 q d = 1 abstrakte Zeit tsetup =1 abstrakte Zeit +1 d: Verzögerungszeit im Flipflop 1 1 1 AND d 1 taktT R 1 dflipflop 1 dflipflop 2 xd q y Formale Grundlagen von Schaltwerken L6-L8 61 L8-14: Zweite Phase: Zeitanalyse eines Schaltwerks R 1 Periodendauer T= 5 x x xd d = 1 and= 1 and= 1 q d = 1 d not= 1 abstrakte Zeit setup =1 abstrakte Zeit +1 1 1 1 AND d 1 taktT R 1 dflipflop 1 dflipflop 2 xd q y setup= 1 L 813 Formale Grundlagen von Schaltwerken L6-L8 Struktur- und Verhalten von Schaltwerken Notwendigkeit von Schaltwerken: Wenn das zukünftige Verhalten einer Schaltung von der Vergangenheit und nicht nur von der aktuellen Eingabe abhängt, muss man die Vergangenheit in kompakter Form speichern. 62 Formale Grundlagen von Schaltwerken L6-L8 63 Beispiel: Wenn der Hahn kräht, wirst du mich dreimal verraten haben Aussage Takt Falls Rücksetzen: Lügzahl = 0 Falls Aussage = Lüge setze Lügzahl = Lügzahl + 1; Hahn beauftragen zu krähen Falls Lügzahl == 3 beauftrage Hahn; Rücksetzen Auswertung bei jeder Taktflanke