Top Banner
A Digitaltechnik 3 Sequenzielle Schaltungen Revision 1.1
54

Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Aug 15, 2018

Download

Documents

duongthuan
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

A

Digitaltechnik

3 SequenzielleSchaltungen

Revision 1.1

Page 2: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Transitionssysteme

Synchroner sequenzieller Entwurf

Timing-Analyse

Pipelining

Mealy und Moore Maschinen

Zustandsmaschinen in Verilog

Page 3: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Sequentielle Schaltungen

I Kombinatorisch (engl. ”combinational“)

Zustandsfrei

Flyweight Pattern in OOP: Objekte ohne Zustand

Funktionale Programmierung (Lisp, ML): keine Seiteneffekte

Ausgaben sind funktional von den Eingaben abhangig

I Sequentiell (engl. ”sequential“)

Zustandsbehaftet

vgl. Objektorientierte Programmierung (OOP): Objekte mit Zustand

vergangenes Verhalten und Eingaben bestimmen den nachstenZustand

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 3

Page 4: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Allgemeines sequentielles System

(current/present state)Momentaner Zustand

(next state)Folgezustand

Eingabe Ausgabe

Register

KombinatorischeLogik

(hier nur Hardwaresicht, kaum Analogie zu OOP)

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 4

Page 5: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Synchron vs. asynchron

I Synchron (engl. synchronous)

globales Taktsignal (engl. clock)

Zustandsanderungen zu fest spezifizierten Zeiten

4 Vereinfachter Entwurf

I Asynchron (engl. asynchronous)

Zustandsanderung zu beliebigen Zeitpunkten

Auch Ubergang zwischen unterschiedlichen clock domains

8 Behandlung von Hazards ist sehr schwierig

Hier: Nur synchrone Schaltungen

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 5

Page 6: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Abstraktion sequentielles System

Definition (Transitionssystem)

Ein Transitionssystem ist ein Tripel 〈S, I, T 〉 mitI S: Menge der ZustandeI I ⊆ S: InitialzustandeI T : S × S: Ubergangsrelation

Definition (Berechnung)

Eine Berechnung ist eine Folge s0, . . . , sn mit si ∈ S undI s0 ∈ II ∀i : (si, si+1) ∈ T

Vgl. endliche Automaten aus der theoretischen Informatik

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 6

Page 7: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Abstraktion sequentielles System

Definition (Transitionssystem)

Ein Transitionssystem ist ein Tripel 〈S, I, T 〉 mitI S: Menge der ZustandeI I ⊆ S: InitialzustandeI T : S × S: Ubergangsrelation

Definition (Berechnung)

Eine Berechnung ist eine Folge s0, . . . , sn mit si ∈ S undI s0 ∈ II ∀i : (si, si+1) ∈ T

Vgl. endliche Automaten aus der theoretischen Informatik

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 6

Page 8: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Beispiel: Modulo 4 Zahler

0 1

23

I Menge der Zustande S : die Zahlen 0 bis 3

I ein Initialzustand: I = {0}

I Transitionsrelation: der Zahler wird um eins erhoht modulo 4

T = {(0, 1), (1, 2), (2, 3), (3, 0)}

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 7

Page 9: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Determinismus

I Solche Automaten beschreiben i. Allg. nicht-deterministischeSysteme:

1. Deadends: Zustande ohne Nachfolgezustand

2. Zustande mit mehreren moglichen Nachfolgern

I Fur die Hardware-Generierung brauchen wir Determinismus:

Jeder Zustand hat genau einen Nachfolger

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 8

Page 10: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Determinismus

I Solche Automaten beschreiben i. Allg. nicht-deterministischeSysteme:

1. Deadends: Zustande ohne Nachfolgezustand

2. Zustande mit mehreren moglichen Nachfolgern

I Fur die Hardware-Generierung brauchen wir Determinismus:

Jeder Zustand hat genau einen Nachfolger

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 8

Page 11: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Transitionsfunktionen

I Was machen wir mit den Eingangen unserer Schaltung?

I Wir fuhren ein Eingabealphabet E ein

I Transitionsfunktion δ : (S × E)→ SInitialzustandspradikat: I : (S × E)

I Spezialfall einer Transitionsrelation:

(x, y) ∈ T ⇐⇒ ∃e ∈ E.δ(x, e) = y

4 Vorteil: fur gegebenes e offensichtlich deterministisch!Keine Deadends!

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 9

Page 12: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Transitionsfunktionen

I Was machen wir mit den Eingangen unserer Schaltung?

I Wir fuhren ein Eingabealphabet E ein

I Transitionsfunktion δ : (S × E)→ SInitialzustandspradikat: I : (S × E)

I Spezialfall einer Transitionsrelation:

(x, y) ∈ T ⇐⇒ ∃e ∈ E.δ(x, e) = y

4 Vorteil: fur gegebenes e offensichtlich deterministisch!Keine Deadends!

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 9

Page 13: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Beispiel: Modulo 4 Zahler mit synchronem Reset

rst

rst

rst

0 1

23

rst

rst

rst

S = {0, . . . , 3}E = {rst , rst}

Zahler wird auf 0 zuruckgesetzt wenn rst gilt,ansonsten wird Zahler um eins erhoht modulo 4:

δ(s, rst) ={

0 : rst(s+ 1) mod 4 : sonst

Fehlt noch: Bits!

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 10

Page 14: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Beispiel: Modulo 4 Zahler mit synchronem Reset

rst

rst

rst

0 1

23

rst

rst

rst

S = {0, . . . , 3}E = {rst , rst}

Zahler wird auf 0 zuruckgesetzt wenn rst gilt,ansonsten wird Zahler um eins erhoht modulo 4:

δ(s, rst) ={

0 : rst(s+ 1) mod 4 : sonst

Fehlt noch: Bits!

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 10

Page 15: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Modulo 4 Zahler: Binarkodierung

rst

rst

rst

rst

00

11 10

01

rst

rst

I Zustande ab sind Belegung von D-Flipflops mit a, b ∈ {0, 1}

Binarkodierung: 0 7→ 00, 1 7→ 01, 2 7→ 10, 3 7→ 11

I Transition c a′b′ab besteht aus

momentaner Zustandsbelegung ab,

Nachfolgezustandsbelegung a′b′ und

Ubergangsbedingung c

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 11

Page 16: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Modulo 4 Zahler: Zustandsubergangsfunktion

δ = { (00, 0, 01), (00, 1, 00),(01, 0, 10), (01, 1, 00),(10, 0, 11), (10, 1, 00),(11, 0, 00), (11, 1, 00) }

Beispiele:I δ(00, 0) = 01,I δ(10, 1) = 00

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 12

Page 17: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Modulo 4 Zahler: Zustandsubergangstabelle

Zustand a b rst a′ b′

0 0 0 0 0 1

1 0 1 0 1 0

2 1 0 0 1 1

3 1 1 0 0 0

– – – 1 0 0

damit ergeben sich die Zustandsgleichungen:

a′ ≡ rst · (a⊕ b)

b′ ≡ rst · b

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 13

Page 18: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Beispiele Berechnung Modulo 4 Zahler

Zeit 0 1 2 3 4 5 6 . . .rst 1 0 0 0 0 0 0a 1 0 0 1 1 0 0b 0 0 1 0 1 0 1

Zeit 0 1 2 3 4 5 6 . . .rst 1 0 0 1 0 0 0a 1 0 0 1 0 0 1b 1 0 1 0 0 1 0

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 14

Page 19: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Beispiele Berechnung Modulo 4 Zahler

Zeit 0 1 2 3 4 5 6 . . .rst 1 0 0 0 0 0 0a 1 0 0 1 1 0 0b 0 0 1 0 1 0 1

Zeit 0 1 2 3 4 5 6 . . .rst 1 0 0 1 0 0 0a 1 0 0 1 0 0 1b 1 0 1 0 0 1 0

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 14

Page 20: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Synchroner sequenzieller Entwurf

1. Baue die Transitionsfunktion als kombinatorische Schaltung

2. Der Zustand wird in Flipflops gespeichert

3. Eine globale Clock gibt vor, wann eine Transition ausgefuhrt wird

4. Der Initialzustand wird bei einem Reset berechnet

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 15

Page 21: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Modulo 4 Zahler mit synchronem Reset

ab

rst

clk

I Globaler Takt: clk (wird oft weggelassen)I Nur eine Eingabe: rstI Next-State Logik: Gestrichelt umrandete GatterI Hier keine Ausgabelogik

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 16

Page 22: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Minimierung der Zustandsgleichungen

Karnaugh Diagramme fur Zustandsgleichungen

rst

a

b

0 1

1 0

0 0

00

rst

a

b

1 0

0 0

00

1 0

b′ ≡ rst · b a′ ≡ rst · a · b + rst · a · b

clk

rst

b a

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 17

Page 23: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Timing-Analyse

Wie schnell durfen wir die Schaltung takten?

Was passiert, wenn wir zu schnell takten?

Erinnerung: metastabile Zustande in den D-Flipflops

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 18

Page 24: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Timing-Analyse

Wie schnell durfen wir die Schaltung takten?

Was passiert, wenn wir zu schnell takten?

Erinnerung: metastabile Zustande in den D-Flipflops

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 18

Page 25: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Timing-Analyse

Wie schnell durfen wir die Schaltung takten?

Was passiert, wenn wir zu schnell takten?

Erinnerung: metastabile Zustande in den D-Flipflops

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 18

Page 26: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

D-Flipflop mit positiver Flankensteuerung

t ht st ht s

t w

C

tt plh phl

I Eingang stabil wahrend setup Phase ts vor der FlankeI Eingang stabil wahrend hold Phase th nach der FlankeI Ausgang stabil erst nach propagation Phase tplh bzw. tphl nach der

FlankeI Minimale Clock-Signallange (width) tw

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 19

Page 27: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Typischer Ablauf

ts th

twtw

ts th

tplh

tphl

C

D

Q

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 20

Page 28: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Maximale Betriebsfrequenz

Setup+Holdzeiten+ Propagation Delay der Flipflops+ Verzogerung der Transitionsfunktion

(langster Pfad!)= Zykluszeit

Die max. Betriebsfrequenz ist der Kehrwert der Zykluszeit

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 21

Page 29: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Overclocking

1

+

32

1

-

32

+

Overclocker Demo

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 22

Page 30: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Beispiel Frequenzberechnung

Q’

7

66

99

69

QD

Q’

D Q

D Q

Q’

D Q

Q’

Bauteil tp ts

AND 7 ns -NAND 6 ns -OR 6 ns -

Bauteil tp ts

NOR 5 ns -XOR 9 ns -D-Flipflop 11 ns 3 ns

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 23

Page 31: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Beispiel Frequenzberechnung

Q’0

0

09

7

1521

1625

27

0

0

0

7

66

99

69

QD

Q’

D Q

D Q

Q’

D Q

Q’

Bauteil tp ts

AND 7 ns -NAND 6 ns -OR 6 ns -

Bauteil tp ts

NOR 5 ns -XOR 9 ns -D-Flipflop 11 ns 3 ns

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 23

Page 32: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Beispiel Frequenzberechnung

Q’0

0

09

7

1521

1625

27

0

0

0

7

66

99

69

QD

Q’

D Q

D Q

Q’

D Q

Q’

Bauteil tp ts

AND 7 ns -NAND 6 ns -OR 6 ns -

Bauteil tp ts

NOR 5 ns -XOR 9 ns -D-Flipflop 11 ns 3 ns

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 23

Page 33: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Beispiel Frequenzberechnung

3 ns Setup+Holdzeiten+ 11 ns Propagation Delay der Flipflops+ 27 ns langster Pfad= 41 ns Zykluszeit

Max. Betriebsfrequenz:

141ns

≈ 24390244 Hz ≈ 24.4 MHz

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 24

Page 34: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Pipelining

Q: Wie konnen wir die Taktfrequenz erhohen?(Erfreut die Marketing-Abteilung)

Erinnerung: Die Taktfrequenz wird durch den langsten Pfad zwischenzwei D-Flipflops bestimmt.

Idee: Einfugen eines D-Flipflops in diesen Pfad!

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 25

Page 35: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Pipelining

Q: Wie konnen wir die Taktfrequenz erhohen?(Erfreut die Marketing-Abteilung)

Erinnerung: Die Taktfrequenz wird durch den langsten Pfad zwischenzwei D-Flipflops bestimmt.

Idee: Einfugen eines D-Flipflops in diesen Pfad!

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 25

Page 36: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Beispiel Pipelining

Q’0

0

09

7

1521

1625

27

0

0

0

7

66

99

69

QD

Q’

D Q

D Q

Q’

D Q

Q’

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 26

Page 37: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Beispiel Pipelining

Q’0

0

09

7

156

918

12

0

0

0

7

66

99

69

QD

Q’

D Q

D Q

Q’

D Q

Q’

D Q

D

D

Q

Q

Q’

Q’

Q’

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 26

Page 38: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Beispiel Pipelining

Q’0

0

09

7

156

918

12

0

0

0

7

66

99

69

QD

Q’

D Q

D Q

Q’

D Q

Q’

D Q

D

D

Q

Q

Q’

Q’

Q’

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 26

Page 39: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Beispiel Pipelining

3 ns Setup+Holdzeiten+ 11 ns Propagation Delay der Flipflops+ 18 ns langster Pfad= 32 ns Zykluszeit

Max. Betriebsfrequenz:

132ns

≈ 31250000 Hz ≈ 31.3 MHz

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 27

Page 40: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Moore Maschine

stateregisters

outputlogic

nextstatelogic

clock

inputs outputs

I Allgemeiner Prototyp eines synchronen sequentiellen EntwurfesI Ausgaben hangen nur vom momentanen Zustand ab

und andern sich mit der Clock-FlankeI kombinatorische Logik bildet den aktuellen Zustand in den nachsten

abI (Eselsbrucke: nicht abhangig von den Eingaben, also kein E)

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 28

Page 41: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Mealy Maschine

stateregisters

outputlogic

nextstatelogic

clock

outputs

inputs

I Entwurf mit asynchronem OutputI Die Ausgaben hangen vom momentanen Zustand und den aktuellen

Eingaben abI Die Ausgabe kann sich unabhangig von der Clock mit dem

Wechseln des Inputs andernI (Eselsbrucke: das e in Mealy steht fur Eingabe)

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 29

Page 42: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Formalisierung

Menge von Zustanden S,Menge von Eingaben E,Menge von Ausgaben O

Moore Maschine: (S, I, E,O, δ, λ) mit δ : S × E → S und λ : S → O

Mealy Maschine: (S, I, E,O, δ, λ) mit δ : S × E → S und λ : S × E → O

Boolesche Kodierung: S = 2n, E = 2m, O = 2k

δ = (δi) mit δi : 2n+m → {0, 1} fur i = 0 . . . nλ = (λj) mit λj : 2n → {0, 1} fur j = 0 . . . k (Moore)λ = (λj) mit λj : 2n+m → {0, 1} fur j = 0 . . . k (Mealy)

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 30

Page 43: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Komposition von Maschinen

parallel

sequentiell

hybrid

(Datenfluss von links nach rechts)

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 31

Page 44: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Sequentielle Komposition von Moore-Maschinen

Sequentielle Komposition von Moore-Maschinen erzeugt Verzogerung(Das berechnete Ergebnis wird erst im nachsten Takt weitergegeben)

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 32

Page 45: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Sequentielle Komposition von Mealy-Maschinen

Sequentielle Komposition von Mealy-Maschinen erzeugt langeSignalpfade!

(Erinnerung: langste Pfadeantiproportional zu erzielbaren Taktfrequenz)

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 33

Page 46: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Mealy-Maschine als Moore-Maschine

Neu

Aquivalente Moore-MaschineMealy-Maschine

Moore-Maschine ist um einen Takt zeitverzogert

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 34

Page 47: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Beispiel

a

O = 0

q0a

a

q1a

a

q2

a

O = 0 O = 1

a a

q1a

a

q0

O = 0 O = a

(a) (b)

Unterer Teil: spezifiziert die Ausgabefunktion λ

1) Mealy? Moore?

2) Ist die Ausgabe beider Maschinen bei gleicher Eingabesequenzimmer gleich?

(Buch, Aufgabe 3.2, Seite 103)

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 35

Page 48: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Beispiel

a

O = 0

q0a

a

q1a

a

q2

a

O = 0 O = 1

a a

q1a

a

q0

O = 0 O = a

(a) (b)

Unterer Teil: spezifiziert die Ausgabefunktion λ

1) Mealy? Moore?

2) Ist die Ausgabe beider Maschinen bei gleicher Eingabesequenzimmer gleich?

(Buch, Aufgabe 3.2, Seite 103)

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 35

Page 49: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Beispiel

a

O = 0

q0a

a

q1a

a

q2

a

O = 0 O = 1

a a

q1a

a

q0

O = 0 O = a

(a) (b)

Unterer Teil: spezifiziert die Ausgabefunktion λ

1) Mealy? Moore?

2) Ist die Ausgabe beider Maschinen bei gleicher Eingabesequenzimmer gleich?

(Buch, Aufgabe 3.2, Seite 103)

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 35

Page 50: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Verilog-Muster fur Zustandsmaschinen zum Ausfullen

1. Verilog Modul erstellen

2. Zustandsbits definieren

3. Next-State Funktion definieren

4. Output-Funktion definieren

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 36

Page 51: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Verilog Modul

module statemachine(input clk, rst, ... // Inputsoutput reg out, ...);

...5

endmodule

I Annahme: Eine Clock fur allesI Inputs und Outputs hangen von der Anwendung ab

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 37

Page 52: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Zustandsbits

localparam [2:0]AUS = ’b000,ROT = ’b001,GELB = ’b010,

5 GRUEN = ’b011;

reg [2:0] state ;

I localparam definiert Modul-lokale KonstantenI reg bewirkt Generierung von FlipflopsI state ggf. in mehrere Variablen aufteilen

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 38

Page 53: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Next-State Logik

always @(posedge clk) beginif ( rst )

state=INIT; // Synchroner Resetelse case(state)

5 INIT:if (input1)

state=Q2;else

state=Q1;10

Q1: ...

Q2: ...

15 default: next state=INIT;endcase

end

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 39

Page 54: Digitaltechnik Sequenzielle Schaltungen · Allgemeines sequentielles System (current/present state) Momentaner Zustand (next state) Folgezustand EingabeAusgabe Register Kombinatorische

Output Logik

// Mealy haengt auch von Inputs ab!always @(state or rst or ...) begin

out1 = state [1] | input1;out2 = state [1] & state [2];

5 end

Darf auch ein weiteres case(state) zur Fallunterscheidung enthalten

Digitaltechnik – Kapitel 3: Sequenzielle Schaltungen 40