A Digitltechnik 3 Sequenzielle Schltungen Trnsitionssysteme Synchroner sequenzieller Entwurf Timing-Anlyse Pipelining Mely und Moore Mschinen Revision. Zustndsmschinen in Verilog Sequentielle Schltungen Allgemeines sequentielles System Komintorisch (engl. comintionl ) Zustndsfrei Flyweight Pttern in OOP: Ojekte ohne Zustnd Funktionle Progrmmierung (Lisp, ML): keine Seiteneffekte Ausgen sind funktionl von den Eingen hängig Sequentiell (engl. sequentil ) Zustndsehftet vgl. Ojektorientierte Progrmmierung (OOP): Ojekte mit Zustnd vergngenes Verhlten und Eingen estimmen den nächsten Zustnd Einge Momentner Zustnd (current/presentte) Komintorische Logik Register Ausge Folgezustnd (nextte) (hier nur Hrdwresicht, kum Anlogie zu OOP) Digitltechnik Kpitel 3: Sequenzielle Schltungen 3 Digitltechnik Kpitel 3: Sequenzielle Schltungen 4 Synchron vs. synchron Astrktion sequentielles System Synchron (engl. synchronous) gloles Tktsignl (engl. clock) Zustndsänderungen zu fespezifizierten Zeiten Vereinfchter Entwurf Definition (Trnsitionssystem) Ein Trnsitionssystem ist ein Tripel S, I, T mit S: Menge der Zustände I S: Initilzustände T : S S: Üergngsreltion Asynchron (engl. synchronous) Zustndsänderung zu elieigen Zeitpunkten Auch Üergng zwischen unterschiedlichen clock domins Behndlung von Hzrds isehr schwierig Definition (Berechnung) Eine Berechnung ist eine Folge s,..., s n mi i S und s I i : (s i, s i+ ) T Hier: Nur synchrone Schltungen Vgl. endliche Automten us der theoretischen Informtik Digitltechnik Kpitel 3: Sequenzielle Schltungen 5 Digitltechnik Kpitel 3: Sequenzielle Schltungen
Beispiel: Modulo 4 Zähler Determinismus Solche Automten eschreien i. Allg. nicht-deterministische Systeme:. Dedends: Zustände ohne Nchfolgezustnd 3 2 2. Zustände mit mehreren möglichen Nchfolgern Menge der Zustände S : die Zhlen is 3 ein Initilzustnd: I = {} Trnsitionsreltion: der Zähler wird um eins erhöht modulo 4 T = {(, ), (, 2), (2, 3), (3, )} Für die Hrdwre-Generierung ruchen wir Determinismus: Jeder Zustnd ht genu einen Nchfolger Digitltechnik Kpitel 3: Sequenzielle Schltungen Digitltechnik Kpitel 3: Sequenzielle Schltungen 8 Trnsitionsfunktionen Beispiel: Modulo 4 Zähler miynchronem Reset Ws mchen wir mit den Eingängen unserer Schltung? Wir führen ein Eingelphet E ein Trnsitionsfunktion δ : (S E) S Initilzustndsprädikt: I : (S E) 3 2 S = {,..., 3} E = {, } Spezilfll einer Trnsitionsreltion: (x, y) T e E.δ(x, e) = y Vorteil: für gegeenes e offensichtlich deterministisch! Keine Dedends! Zähler wird uf zurückgesetzt wenn gilt, nsonsten wird Zähler um eins erhöht modulo 4: { : δ(s, ) = (s + ) mod 4 : sonst Fehlt noch: Bits! Digitltechnik Kpitel 3: Sequenzielle Schltungen Digitltechnik Kpitel 3: Sequenzielle Schltungen Modulo 4 Zähler: Binärkodierung Modulo 4 Zähler: Zustndsüergngsfunktion δ = { (,, ), (,, ), (,, ), (,, ), (,, ), (,, ), (,, ), (,, ) } Zustände sind Belegung von D-Flipflops mit, {, } Binärkodierung:,, 2, 3 Trnsition c esteht us momentner Zustndselegung, Nchfolgezustndselegung und Üergngsedingung c Beispiele: δ(, ) =, δ(, ) = Digitltechnik Kpitel 3: Sequenzielle Schltungen Digitltechnik Kpitel 3: Sequenzielle Schltungen 2
Modulo 4 Zähler: Zustndsüergngstelle Beispiele Berechnung Modulo 4 Zähler Zustnd 2 3 dmit ergeen sich die Zustndsgleichungen: ( ) Zeit 2 3 4 5... Zeit 2 3 4 5... Digitltechnik Kpitel 3: Sequenzielle Schltungen 3 Digitltechnik Kpitel 3: Sequenzielle Schltungen 4 Synchroner sequenzieller Entwurf Modulo 4 Zähler miynchronem Reset. Bue die Trnsitionsfunktion ls komintorische Schltung 2. Der Zustnd wird in Flipflops gespeichert clk 3. Eine glole Clock git vor, wnn eine Trnsition usgeführt wird 4. Der Initilzustnd wird ei einem Reset erechnet Gloler Tkt: clk (wird oft weggelssen) Nur eine Einge: Next-Stte Logik: Gestrichelt umrndete Gtter Hier keine Ausgelogik Digitltechnik Kpitel 3: Sequenzielle Schltungen 5 Digitltechnik Kpitel 3: Sequenzielle Schltungen Minimierung der Zustndsgleichungen Timing-Anlyse Krnugh Digrmme für Zustndsgleichungen + Wie schnell dürfen wir die Schltung tkten? Ws pssiert, wenn wir zu schnell tkten? Erinnerung: metstile Zustände in den D-Flipflops clk Digitltechnik Kpitel 3: Sequenzielle Schltungen Digitltechnik Kpitel 3: Sequenzielle Schltungen 8
D-Flipflop mit positiver Flnkensteuerung Typischer Aluf t w C t plh t phl D t w t w C Eingng stil während setup Phse vor der Flnke t plh Eingng stil während hold Phse nch der Flnke Ausgng stil e nch propgtion Phse t plh zw. t phl nch der Flnke Q t phl Minimle Clock-Signllänge (width) t w Digitltechnik Kpitel 3: Sequenzielle Schltungen Digitltechnik Kpitel 3: Sequenzielle Schltungen 2 Mximle Betriesfrequenz Overclocking Overclocker Demo Setup+Holdzeiten + Propgtion Dely der Flipflops + Verzögerung der Trnsitionsfunktion (längster Pfd!) = Zykluszeit 32 + 32 - Die mx. Betriesfrequenz ist der Kehrwert der Zykluszeit + Digitltechnik Kpitel 3: Sequenzielle Schltungen 2 Digitltechnik Kpitel 3: Sequenzielle Schltungen 22 Beispiel Frequenzerechnung Beispiel Frequenzerechnung 25 Buteil t p AND ns - NAND ns - OR ns - Buteil t p NOR 5 ns - XOR ns - D-Flipflop ns 3 ns 3 ns 5Setup+Holdzeiten 2 + ns Propgtion Dely der Flipflops 2 + 2 ns längster Pfd = 4 ns Zykluszeit 4ns Mx. Betriesfrequenz: 243244 Hz 24.4 MHz Digitltechnik Kpitel 3: Sequenzielle Schltungen 23 Digitltechnik Kpitel 3: Sequenzielle Schltungen 24
Pipelining Beispiel Pipelining Q: Wie können wir die Tktfrequenz erhöhen? (Erfreut die Mrketing-Ateilung) 5 2 2 Erinnerung: Die Tktfrequenz wird durch den längsten Pfd zwischen zwei D-Flipflops estimmt. 25 Idee: Einfügen eines D-Flipflops in diesen Pfd! 5 2 8 Digitltechnik Kpitel 3: Sequenzielle Schltungen 25 Beispiel Pipelining 3 ns Setup+Holdzeiten + ns Propgtion Dely der Flipflops + 8 ns längster Pfd = 32 ns Zykluszeit Digitltechnik Kpitel 3: Sequenzielle Schltungen 2 5 2 Moore Mschine 8 inputs outputs next stte output stte registers clock Mx. Betriesfrequenz: 32ns 325 Hz 3.3 MHz Allgemeiner Prototyp eines synchronen sequentiellen Entwurfes Ausgen hängen nur vom momentnen Zustnd und ändern sich mit der Clock-Flnke komintorische Logik ildet den ktuellen Zustnd in den nächsten (Eselsrücke: nichängig von den Eingen, lso kein E) Digitltechnik Kpitel 3: Sequenzielle Schltungen 2 Digitltechnik Kpitel 3: Sequenzielle Schltungen 28 Mely Mschine Formlisierung inputs next stte stte registers output outputs Menge von Zuständen S, Menge von Eingen E, Menge von Ausgen O clock Moore Mschine: (S, I, E, O, δ, λ) mit δ : S E S und λ: S O Mely Mschine: (S, I, E, O, δ, λ) mit δ : S E S und λ: S E O Entwurf miynchronem Output Die Ausgen hängen vom momentnen Zustnd und den ktuellen Eingen Die Ausge knn sich unhängig von der Clock mit dem Wechseln des Inputs ändern (Eselsrücke: ds e in Mely steht für Einge) Boolesche Kodierung: S = 2 n, E = 2 m, O = 2 k δ = (δ i ) mit δ i : 2 n+m {, } für i =... n λ = (λ j ) mit λ j : 2 n {, } für j =... k (Moore) λ = (λ j ) mit λ j : 2 n+m {, } für j =... k (Mely) Digitltechnik Kpitel 3: Sequenzielle Schltungen 2 Digitltechnik Kpitel 3: Sequenzielle Schltungen 3
Komposition von Mschinen Sequentielle Komposition von Moore-Mschinen sequentiell prllel hyrid Sequentielle Komposition von Moore-Mschinen erzeugt Verzögerung (Ds erechnete Ergenis wird e im nächsten Tkt weitergegeen) (Dtenfluss von links nch rechts) Digitltechnik Kpitel 3: Sequenzielle Schltungen 3 Digitltechnik Kpitel 3: Sequenzielle Schltungen 32 Sequentielle Komposition von Mely-Mschinen Mely-Mschine ls Moore-Mschine Neu Sequentielle Komposition von Mely-Mschinen erzeugt lnge Signlpfde! (Erinnerung: längste Pfde ntiproportionl zu erzielren Tktfrequenz) Mely-Mschine Äquivlente Moore-Mschine Moore-Mschine ist um einen Tkt zeitverzögert Digitltechnik Kpitel 3: Sequenzielle Schltungen 33 Digitltechnik Kpitel 3: Sequenzielle Schltungen 34 Beispiel Verilog-Muster für Zustndsmschinen zum Ausfüllen q q q 2 q q. Verilog Modul eellen O = O = O = () O = () O = 2. Zustndsits definieren Unterer Teil: spezifiziert die Ausgefunktion λ 3. Next-Stte Funktion definieren ) Mely? Moore? 2) Ist die Ausge eider Mschinen ei gleicher Eingesequenz immer gleich? 4. Output-Funktion definieren (Buch, Aufge 3.2, Seite 3) Digitltechnik Kpitel 3: Sequenzielle Schltungen 35 Digitltechnik Kpitel 3: Sequenzielle Schltungen 3
Verilog Modul Zustndsits 5 module sttemchine(input clk,,... // Inputs output reg out,...);... endmodule loclprm [2:] AUS =, ROT =, GELB =, 5 GRUEN = ; reg [2:] stte ; Annhme: Eine Clock für lles Inputs und Outputs hängen von der Anwendung loclprm definiert Modul-lokle Konstnten reg ewirkt Generierung von Flipflops stte ggf. in mehrere Vrilen ufteilen Digitltechnik Kpitel 3: Sequenzielle Schltungen 3 Digitltechnik Kpitel 3: Sequenzielle Schltungen 38 Next-Stte Logik Output Logik lwys @(posedge clk) egin if ( ) stte=init; // Synchroner Reset else cse(stte) 5 INIT: if (input) stte=q2; else stte=q; // Mely hengt uch von Inputs! lwys @(stte or or...) egin out = stte [] input; out2 = stte [] & stte [2]; 5 end Q:... Q2:... 5 defult: nextte=init; endcse end Drf uch ein weiteres cse(stte) zur Fllunterscheidung enthlten Digitltechnik Kpitel 3: Sequenzielle Schltungen 3 Digitltechnik Kpitel 3: Sequenzielle Schltungen 4