Entwurf digitaler Schaltungen (F3)

Handwerkszeug Teil 2 Prof. G. Kemnitz Institut für Informatik, Technische Universität Clausthal

Prof. G. Kemnitz

17. Juni 2014

·

Institut für Informatik, Technische Universität Clausthal

17. Juni 2014

1/138

Inhalt F2: Handwerkszeug Teil 2

1.2 1.3 1.4 1.5 1.6 1.7

Automaten Modellierung und Klassikation Automat als Schaltung Entwurf mit KV-Diagrammen Beschreibung in VHDL Redundante Zustände Beispiel Zahlenschloss Aufgaben

2.1 2.2 2.3 2.4

Operationssteuerung Serieller Addierer Divisionswerk Beispiel Wegemessung Aufgaben

1.1

Prof. G. Kemnitz

·

Zeitverhalten 3.1 Halte- und Verzögerungszeiten 3.2 Laufzeitanalyse 3.3 Speichervor- und Nachhaltezeiten 3.4 Register-Transfer-Funktionen 3.5 Constraints 3.6 Aufgaben Asynchrone Eingabe 4.1 Abtastung 4.2 Entprellen 4.3 Asynchrone Initialisierung 4.4 Eingabesynchronisation 4.5 Aufgaben

Institut für Informatik, Technische Universität Clausthal

17. Juni 2014

2/138

Lernziele Automaten: Beschreibung von Abläufen mit Automaten. Schaltungsentwurf für Automaten mit KV-Diagrammen. Beschreibung von Automaten in VHDL und Umgang mit redundanten Zuständen. Operationssteuerungen: Erweiterung des Automatenmodells um die Steuerung und Auswertung von Register-Transfer-Operationen. Sequentiell arbeitende Rechenwerke. Zeitverhalten: Modellierung und Kontrolle von Zeitbedingungen. Asynchrone Eingabe: Robuste Datenübernahme von Schaltern, Tastern und Systemen mit einem anderen Takt.

Prof. G. Kemnitz

·

Institut für Informatik, Technische Universität Clausthal

17. Juni 2014

3/138

1. Automaten

Prof. G. Kemnitz

Automaten

·

Institut für Informatik, Technische Universität Clausthal

17. Juni 2014

4/138

1. Automaten Automaten Automaten sind ein Basismodell der Mathematik und der Theoretischen Informatik, ein Mittel zur Spezikation von Abläufen und Testfällen bei der Programmierung und Steuerungen in der Automatisierungstechnik. In der Digitaltechnik dienen Automaten vor allem zur Steuerung von Hardware-Abläufen.

Prof. G. Kemnitz

·

Institut für Informatik, Technische Universität Clausthal

17. Juni 2014

5/138

1. Automaten

Prof. G. Kemnitz

1. Modellierung und Klassikation

Modellierung und Klassikation

·

Institut für Informatik, Technische Universität Clausthal

17. Juni 2014

6/138

1. Automaten

1. Modellierung und Klassikation

Endlicher Automat (engl. FSM nite state machine) Ein endlicher Automat ist ein mathematisches Funktionsmodell zur Beschreibung sequentieller Abläufe. Er ist deniert durch

Σ = {E1 , E2 , . . .}, Zustandsmenge S = {Z1 , Z2 , . . .},

eine Eingabemenge eine

einen Anfangszustand aus der Zustandsmenge

Π = {A1 , A2 , . . .}, Übergangsfunktion: fs : S × Σ → S Ausgabefunktion: fa : S × Σ → Π.

eine Ausgabemenge: eine eine

Z1 ∈ S ,

und

In der Darstellung als Graph werden Zustände durch Knoten und Zustandsübergänge durch Kanten dargestellt. Der Anfangszustand bekommt die Startkennung. Die Kanten sind mit den Eingaben beschriftet, bei denen die Übergänge stattnden.

E1 Z1 Prof. G. Kemnitz

Z2 E2 ·

Zustand Zustands¨ ubergang Kennzeichnung des Startzustands

Institut für Informatik, Technische Universität Clausthal

17. Juni 2014

7/138

1. Automaten

1. Modellierung und Klassikation

Transduktor, Moore- und Mealy-Automat Die für die Digitaltechnik interessanten Automaten sind Transduktoren. Sie generieren Ausgaben in Abhängigkeiten von Zustand und Eingabe und werden für Steuerungsaufgaben eingesetzt. Es wird zwischen zwei Typen unterschieden: Moore-Automat: Die Ausgabe hängt nur vom Zustand ab. Mealy-Automat: Die Ausgabe ist den Zustandsübergängen zugeordnet.

Moore-Automat H

V

R

R R

D N

V ·

H/K

B L R

V

B R/K R/N R/L R/M

V/K

C M

V/M C

D H/N

H/L

V/L A

H

H Prof. G. Kemnitz

H

V

A K

Mealy-Automat

V/N

H/M

Eingabemenge Σ = {H, V, R} Zustandsmenge S = {A, B, C, D} Ausgabemenge Π = {K, L, M, N}

Institut für Informatik, Technische Universität Clausthal

17. Juni 2014

8/138

1. Automaten

1. Modellierung und Klassikation

Mit beiden Automatentypen lassen sich dieselben Zielfunktionen beschreiben. Die Moore-Form braucht mehr Zustände, die Mealy-Form hat eine kompliziertere Ausgabefunktion und ist oft unübersichtlicher. Wenn keine Ausgaben explizit zugeordnet sind, ist der Zustand die Ausgabe. Kanten mit demselben Anfangs- und Endknoten können weggelassen werden. Eine weitere Sonderform sind autonome Automaten. Sie haben keine Eingabe und schalten in jedem Schritt einen Zustand weiter. Zyklische autonome Automaten dienen z.B. als Taktteiler und zyklenfreie zur Steuerung von Initialisierungsabläufen.

zyklischer autonomer Automat

zyklenfreier autonomer Automat

A

B

C

D

A

B

C

D

H

G

F

E

E

F

G

H

Prof. G. Kemnitz

·

Institut für Informatik, Technische Universität Clausthal

17. Juni 2014

9/138

1. Automaten

1. Modellierung und Klassikation

Spezikation einer Türsteuerung In der Digitaltechnik dienen Automaten hauptsächlich zur Steuerung von Abläufen, z.B. dem Önen und Schlieÿen einer Fahrstuhltür. Eingangssignale der Türsteuerung: Sensorsignal Tür ist komplett auf (SA

= 1), Sensorsignal Tür ist komplett zu (SZ = 1), Tastereingabe Tür önen (TA = 1) und Tastereingabe Tür schlieÿen (TS = 1). Gesteuert wird der Schlieÿmotor der Tür. Die Ausgaben sind: Motor aus (A0 ), Tür önen (AA ) und Tür schlieÿen (AS ).

Prof. G. Kemnitz

·

Institut für Informatik, Technische Universität Clausthal

17. Juni 2014 10/138

1. Automaten

1. Modellierung und Klassikation

Der Steuerablauf in der Moore-Form hat die Zustände auf, schlieÿen, zu und önen. Bei den Tastereingaben wechselt der Automat in die Zustände önen bzw. schlieÿen und bei Aktivierung der Endlagenschalter in die Zustände auf bzw. zu.

Moore-Automat auf A0 TS

SA

offnen ¨ AA TA

TS TA zu A0

schließen AS SZ

Mealy-Automat offnen ¨ TS

TA schließen

wenn ”¨ offnen”∧S¯A Ausgabe AA sonst wenn ”schließen”∧S¯Z Ausgabe AA sonst Ausgabe A0

In der Mealy-Form werden nur die Zustände önen und schlieÿen unterschieden. Das Abschalten des Motors über die Endlagenschalter ist in der Ausgabefunktion enthalten. Prof. G. Kemnitz

·

Institut für Informatik, Technische Universität Clausthal

17. Juni 2014 11/138

1. Automaten

1. Modellierung und Klassikation

Die Automatenbeschreibung des Moore-Automaten ist noch fehlerhaft/unvollständig. Sie beschreibt z.B. nicht, was in den Zuständen önen und schlieÿen bei gleichzeitiger Aktivierung von Taster und Endlagenschalter passieren soll. Wenn beide Taster gedrückt sind, ist der permanente Wechsel zwischen önen und schlieÿen sicher unerwünscht. Verbesserung:

More-Automat auf A0

SA

TS ∧ S¯A ∧ T¯A

¨offnen AA

TA ∧ SZ

TA

zu A0

Mealy-Automat TS schließen AS SZ

offnen ¨ TA schließen

TS ∧ T¯A

wenn ”¨ offnen”∧S¯A Ausgabe AA sonst wenn ”schließen”∧S¯Z Ausgabe AA sonst Ausgabe A0

Die Ablaufspezikation mit Automaten ist vor allem deshalb beliebt, weil sie anschaulich ist und solche Probleme aufdeckt. Prof. G. Kemnitz

·

Institut für Informatik, Technische Universität Clausthal

17. Juni 2014 12/138

1. Automaten

Prof. G. Kemnitz

2. Automat als Schaltung

Automat als Schaltung

·

Institut für Informatik, Technische Universität Clausthal

17. Juni 2014 13/138

1. Automaten

2. Automat als Schaltung

Automaten als Schaltung Bei der Realisierung als digitale Schaltung sind die Eingaben, Zustände und Ausgaben Bitvektoren. Die Unterscheidung von

m

Werten verlangt mindestens

n ≥ log2 (m) Bits. Der Zustand wird in einem Register gespeichert. Anfangszustand ist der Initialisierungswert des Register. Die Zustandsübergänge erfolgen mit der aktiven Taktanke. Die Übergangs- und Ausgabefunktion sind Verarbeitungsfunktion:

fs (x, s)

s I

x

Prof. G. Kemnitz

fy (x, s)

y I

·

T

x Eingabe y Ausgabe s Zustand T Takt I Initialisierungssignal ¨ fs (x, s) Ubergangsfunktion fy (x, s) Ausgabefunktion

Institut für Informatik, Technische Universität Clausthal

17. Juni 2014 14/138

1. Automaten

2. Automat als Schaltung

Die Änderungen des Eingabe- und das Initialisierungssignals müssen zeitlich zur aktiven Taktanke ausgerichtet sein. Die Ausgabe wird in ihrem Gültigkeitsfenster, in der Regel mit der nächsten aktiven Taktanke, abgetastet. Die dafür erforderlichen Ein- und Ausgaberegister werden nicht zur Schaltung des Automaten gezählt.

fs (x, s) I+ x+

x I

x fy (x, s)

y

s y’

I

T x+ I+ y’ s+

s+

Eingabe einen Takt zuvor Initialisierungssignal einen Takt zuvor Ausgabesignal einen Takt verz¨ogert Folgezustandswerte Abtastzeitpunkt Wert ung¨ ultig / ohne Bedeutung

Prof. G. Kemnitz

·

I+ I T x+

X1

X1

x s+ s

X2

S1 S0

y y’

Institut für Informatik, Technische Universität Clausthal

X3 X2 S2 S1

Y1

X3

S2

Y2 Y1

Y2

17. Juni 2014 15/138

1. Automaten

2. Automat als Schaltung

Bei einem Moore-Automaten ist die Ausgabe nicht von der Eingabe abhängig.

fs (x, s)

s

I

x I

fy (s)

x Eingabe s Zustand y Ausgabe I Initialisierungssignal T Takt

y

T

Ohne explizite Zuordnung von Ausgaben ist die Ausgabe der Zustand.

fs (x, s) x

s

I I

y

T

Bei einem autonomen Automaten ist der Folgezustand nur eine Funktion des Ist-Zustands.

Prof. G. Kemnitz

fs (s)

s

I I ·

y

T

Institut für Informatik, Technische Universität Clausthal

17. Juni 2014 16/138

1. Automaten

Prof. G. Kemnitz

3. Entwurf mit KV-Diagrammen

Entwurf mit KV-Diagrammen

·

Institut für Informatik, Technische Universität Clausthal

17. Juni 2014 17/138

1. Automaten

3. Entwurf mit KV-Diagrammen

Vorwärts-/Rückwärtszähler Die Funktion sei als Graph gegeben. Das Beispiel ist ein Zähler, der bei Eingabe V vorwärts, bei R rückwärts zählt und bei H seinen Zustand beibehält. Die Zählfolge ist A, B, ... Die Ausgabe ist den Übergängen zugeordnet (Mealy-Automat):

H/K

H/L V/L A

x/y

R/K R/N

V/K

R/L

V/M

R/M D

C V/N

H/N

s

B

H/M

Σ = {H, V, R} S = {A, B, C, D} Π = {K, L, M, N}

Zustand Eingabewert Ausgabewert Eingabemenge Zustandsmenge Ausgabemenge Anfangszustand

Ausgehend davon sind die Codierung der symbolischen Werte sowie die Gröÿe des Zustandsregisters festzulegen und die Übergangs- und Ausgabefunktion zu entwerfen. Prof. G. Kemnitz

·

Institut für Informatik, Technische Universität Clausthal

17. Juni 2014 18/138

1. Automaten

3. Entwurf mit KV-Diagrammen

Aufstellen der Tabellen für die Übergangs- und Ausgabefunktion. Festlegung der Zustandscodierung.

¨ symbolorientierte Uber⇒ gangs und Ausgabefunktion

Zustandscodierung

s+ = fs (x, s) y = fa (x, s) s A B C D

x :V B C D A

H A B C D

R D A B C

V L M N K

H K L M N

R N K L M

V 00 H 01 R 10



C 10 D 11

K L A 00 M B 01 N

00 01 10 11

¨ bitvektororientierte Ubergangs und Ausgabefunktion s+ = fs (x, s) y = fa (x, s) s x: 00 01 10 11

00 01 10 11 00

01 00 01 10 11

10 11 00 01 10

00 01 10 11 00

01 00 01 10 11

10 11 00 01 10

Die drei bzw. vier symbolischen Werte für die Eingabe, die Ausgabe und den Zustand verlangen mindestens je zwei Bit. Die Eingabecodierung ist im Beispiel willkürlich gewählt. Die Ausgabecodierung ist so gewählt, das die Übergangs- und die Ausgabefunktion identisch sind. Das Zustandsregister muss zwei Bit breit sein. Der Initialisierungswert A ist mit "00" codiert. Zustandscodierung ist so gewählt, dass

Prof. G. Kemnitz

·

y = s+

gilt.

Institut für Informatik, Technische Universität Clausthal

17. Juni 2014 19/138

1. Automaten

3. Entwurf mit KV-Diagrammen

Aufstellen der KV-Diagramme Für jedes Zustands- und jedes Ausgabebit ist ein KV-Diagramm aufzustellen. Wegen

y = s+

genügen im Beispiel zwei:

s+ 1 = y1

s+ 0 = y0

a

V H

1

0

0

a

0

1

1

1

c

x0

-

R

0

x1

1

b

d

-

-

0

1

e

0

y1 =

Prof. G. Kemnitz

·

0

1

0

1

1

0

-

-

-

-

1

0

0

1

a

s1

A B D C

s+ 1

0 b

s0

y0 = s + 0

a

1

a

s0

s1

A B D C

= s¯0 x ¯ 0 ∨ s 0 x0

= s¯1 s0 x ¯1 x ¯0 ∨ s¯1 s¯0 x1 ∨ s1 s¯0 x ¯ 1 ∨ s 1 x0 ∨ s 1 s 0 x1

Institut für Informatik, Technische Universität Clausthal

17. Juni 2014 20/138

1. Automaten

3. Entwurf mit KV-Diagrammen

Vom KV-Diagramm zur Schaltung Im nächsten Schritt sind die minimierten logischen Funktionen durch verfügbare digitale Bausteine nachzubilden. Früher, als der digitale Schaltungsentwurf noch überwiegend Handarbeit war, wurden vorzugsweise Schaltkreise mit mehreren NAND-Gattern eingesetzt (vergl. Foliensatz F1). Die Gleichungsumformung aus der AND-OR-Form in die NAND-NAND-Form erfolgt mit Hilfe der de morganschen Regeln:

s0 x ¯0 ) (s0 x0 ) y0 = s+ = s¯0 x ¯0 ∨ s0 x0 = (¯ 0 y1 = s+ = s¯1 s0 x ¯1 x ¯0 ∨ s¯1 s¯0 x1 ∨ s1 s0 x1 ∨ s1 s¯0 x ¯ 1 ∨ s 1 x0 1

= (¯ s1 s0 x ¯1 x ¯0 ) (¯ s1 s¯0 x1 ) (s1 s0 x1 ) (s1 s¯0 x ¯1 ) (s1 x0 )

Prof. G. Kemnitz

·

Institut für Informatik, Technische Universität Clausthal

17. Juni 2014 21/138

1. Automaten y0 = s + 0 y1 =

s+ 1

3. Entwurf mit KV-Diagrammen

= (¯ s0 x ¯0 ) (s0 x0 ) = (¯ s1 s0 x ¯1 x ¯0 ) (¯ s1 s¯0 x1 ) (s1 s0 x1 ) (s1 s¯0 x ¯1 ) (s1 x0 )

Umsetzung der logischen Funktionen in eine Gatterschaltung. Ergänzung der Speicherzellen des Zustandsregisters, des Takts und des Initialisierungssignals.

s1 s¯1 s0 s¯0 x1 x ¯1 x0 x ¯0 &

x0

&

x R

&

x R

s0

&

x1

Prof. G. Kemnitz

y0 &

& & & I T ·

y1 s1

& ⇒Web-Projekt: P2.2/Test VRZ.vhdl

Institut für Informatik, Technische Universität Clausthal

17. Juni 2014 22/138

1. Automaten

3. Entwurf mit KV-Diagrammen

Mit dem hier dargestellten Entwurfsuss wurden noch vor wenigen Jahrzehnten Rechner und andere digitale Schaltungen entworfen. Die Klausur zum Semesterende enthält traditionell eine Aufgabe von diesem Typ. Für Übergangs- und Ausgabefunktionen mit mehr als vier Eingabebits funktioniert der Bleistift-und-Papier-Entwurf nur noch begrenzt. Übergang zu rechnergestützten Verfahren wie Quine und McCluskey. Heute Beschreibung in einer Hochsprache mit Fallunterscheidungen und Synthese.

Prof. G. Kemnitz

·

Institut für Informatik, Technische Universität Clausthal

17. Juni 2014 23/138

1. Automaten

Prof. G. Kemnitz

4. Beschreibung in VHDL

Beschreibung in VHDL

·

Institut für Informatik, Technische Universität Clausthal

17. Juni 2014 24/138

1. Automaten

4. Beschreibung in VHDL

VHDL-Fallunterscheidung als Tabellenfunktion case Ausdruck is when Wert { |W ert } => Anweisung { Anweisung } {when Wert { |W ert } => Anweisung { Anweisung }} [[when others => Anweisung { Anweisung }]] end case ;

s w0 A0 w1 A1

s w0 A0

An

w1 A1

sonst ... ...

An

s Auswahlgr¨ oße wi Auswahlwert(e) i Ai Anweisungsfolge i

Die aus Zustandsgraphen abgeleitete Übergangs- und Ausgabefunktionen lassen sich am besten mit Auswahlanweisungen und Fallunterscheidungen beschreiben, z.B.:

case Zustand is when Zi => if Eingabe=... then Zustand Zustand => -

0/1 1/0

00 1/1

0/0

01

s+

s ts then x_del ts then y tPr Abtastperiode

Achtung, dass funktioniert nicht ohne die erste Abtastung, weil

y

sonst von einem asynchronen Signal abhängt.

Prof. G. Kemnitz

·

Institut für Informatik, Technische Universität Clausthal

17. Juni 2014 120/138

4. Asynchrone Eingabe

2. Entprellen

Beschreibung in VHDL t h , td

signal T, x, x_del, x_del2, y: STD_LOGIC;

...

process(T) begin if RISING_EDGE(T) then

& x T

x’

x”

y

y’ (Takt)

x_del