Einführung in Eingebettete Systeme · Einführung in Eingebettete Systeme Vorlesung 7 Bernd...

31
Einführung in Eingebettete Systeme Vorlesung 7 Bernd Finkbeiner 03/12/2014 [email protected] Prof. Bernd Finkbeiner, Ph.D. [email protected] 1

Transcript of Einführung in Eingebettete Systeme · Einführung in Eingebettete Systeme Vorlesung 7 Bernd...

Page 1: Einführung in Eingebettete Systeme · Einführung in Eingebettete Systeme Vorlesung 7 Bernd Finkbeiner 03/12/2014 finkbeiner@cs.uni-saarland.de

Einführung in

Eingebettete Systeme

Vorlesung 7 Bernd Finkbeiner 03/12/2014 [email protected]

Prof. Bernd Finkbeiner, Ph.D. [email protected]

1

Page 2: Einführung in Eingebettete Systeme · Einführung in Eingebettete Systeme Vorlesung 7 Bernd Finkbeiner 03/12/2014 finkbeiner@cs.uni-saarland.de

Schaltfunktionen

! Schaltfunktion: f: {0,1}n → {0,1}m ! (n-stellige) Boolesche Funktion: f: {0,1}n → {0,1} ! Eine Schaltfunktion entspricht m Booleschen Funktionen ! Eine Boolesche Funktion kann (unter anderem)

ausgedrückt werden durch ! einen Booleschen Ausdruck ! eine Wahrheitstafel

2

A NAND B: A · B

A B A NAND B

0 0 1

0 1 1

1 0 1

1 1 0

Page 3: Einführung in Eingebettete Systeme · Einführung in Eingebettete Systeme Vorlesung 7 Bernd Finkbeiner 03/12/2014 finkbeiner@cs.uni-saarland.de

Darstellungen

! Alle zweistelligen Booleschen Funktionen können mit Hilfe von ! NOT, AND, und OR, oder ! NOT und OR, oder ! NOT und AND, oder ! NAND, oder ! NOR

! dargestellt werden.

3

Page 4: Einführung in Eingebettete Systeme · Einführung in Eingebettete Systeme Vorlesung 7 Bernd Finkbeiner 03/12/2014 finkbeiner@cs.uni-saarland.de

Binäre Addition

! Addition von zwei Binärzahlen x = xn-1 ... x1x0 und y = yn-1 ... y1y0

! Ziffernweise Addition, so daß in jedem Schritt eine Ziffer si der Summe s = sn-1 ... s1s0 entsteht.

! Dabei werden die in jedem Schritt enstehenden Überträge bei der Addition des nächsten Paares berücksichtigt

4

Page 5: Einführung in Eingebettete Systeme · Einführung in Eingebettete Systeme Vorlesung 7 Bernd Finkbeiner 03/12/2014 finkbeiner@cs.uni-saarland.de

Halbaddierer

! Addition zweier bits x0,y0

! Summenziffer s0=1 entsteht genau dann wennentweder x0=1 oder y0=1 s0 = x0 XOR y0

! Übertrag u1=1 entsteht genau dann wennx0=1 und y0=1 u1 = x0 · y0

5

Page 6: Einführung in Eingebettete Systeme · Einführung in Eingebettete Systeme Vorlesung 7 Bernd Finkbeiner 03/12/2014 finkbeiner@cs.uni-saarland.de

Volladdierer

! Summenziffer si=1 entsteht genau dann wennentweder (entweder xi=1 oder yi=1) oder ui=1 si = xi XOR yi XOR ui

! Übertrag ui+1=1 entsteht genau dann wenn(xi=1 und yi=1) oder ((xi=1 oder yi=1) und ui=1)ui+1 = (xi · yi) + ((xi + yi) · ui)

6

Page 7: Einführung in Eingebettete Systeme · Einführung in Eingebettete Systeme Vorlesung 7 Bernd Finkbeiner 03/12/2014 finkbeiner@cs.uni-saarland.de

Volladdierer

! si = xi XOR yi XOR ui ! ui+1 = (xi · yi) + ((xi + yi) · ui)

7[H. Liebig: Logischer Entwurf digitaler Systeme, 2006]

1.2 Boolesche Funktionen 29

Beispiel 1.16. Addition. Die Funktionen ui+1 und si aus Beispiel 1.13 sollendurch Blockbilder dargestellt werden, und zwar in denjenigen Strukturen, wie siedort durch die Gleichungen vorgegeben sind. Es entsteht Bild 1-7.

Aufgabe 1.8. Subtraktion. Beschreiben Sie in Analogie zur ziffernpaarweisen Addition die zif-fernpaarweise Subtraktion in allen hier gezeigten Darstellungsformen.

Aufgabe 1.9. Paritätsprüfung. Die Datenübertragung binär codierter Zeichen (8-Bit-Codewörter)von einem Sender zu einem Empfänger (in einem Rechner z.B. von der Peripherie zum Prozes-sor) wird oft dadurch überprüft, daß zu allen Wörtern auf der Senderseite ein sog. Paritätsbit hin-zugefügt wird, wodurch sich die Anzahl der Codewörter verdoppelt. Es entstehen zu gleichenTeilen gültige und ungültige Wörter, die auf der Empfängerseite auf ihre Gültigkeit überprüftwerden. – Beschreiben Sie die folgenden Funktionen durch Gleichungen und Blockbilder. (a) Eine erste boolesche Funktion (senderseitig) soll zu einem 8-Bit-Wort, einem Byte, den Wertdes Paritätsbits erzeugen, so daß die Quersumme der entstehenden 9-Bit-Wörter ungerade ist.Als Verknüpfung ist die Äquivalenz zu verwenden. (b) Eine zweite boolesche Funktion (empfängerseitig) soll „1“ liefern, wenn die Anzahl der Ein-sen, d.h. die Quersumme der 9-Bit-Wörter, gerade ist. Als Verknüpfung ist entweder die Äquiva-lenz oder die Antivalenz zu verwenden.

Ausblick. Wir haben eine Reihe äquivalenter Darstellungen einer Funktion vor-gestellt. Die Gleichungsdarstellung nahm dabei eine zentrale Rolle ein; von ihrausgehend haben wir die anderen Darstellungsformen entwickelt. Aber genau so,wie aus der Gleichung die Tabelle oder die Tafel ermittelt werden kann, ist esmöglich, aus einer Tabelle eine Tafel und weiter eine Gleichung und darausschließlich das Blockbild zu konstruieren. Das betrifft die Schaltungssyntheseund wird im Abschnitt 1.2.3 fortgeführt.

1.2.2 Systeme von Funktionen (Vektorfunktionen)

In 1.2.1 (auf S. 24) wurde eine Funktion allgemein durch

(33)

beschrieben. Zur bequemeren Schreibweise kürzen wir das „eindimensionaleFeld“

[x1 x2 x3 … xn]

Bild 1-7. Blockbilder für die Vollad-dierfunktion bzw. die Volladdier-schaltung; a Übertrag, b Summe.

uixi

siui+1

xi yi ui

a b

yi

y f x1 x2 x3 … xn, , , ,( )=

Page 8: Einführung in Eingebettete Systeme · Einführung in Eingebettete Systeme Vorlesung 7 Bernd Finkbeiner 03/12/2014 finkbeiner@cs.uni-saarland.de

Ausgezeichnete Terme

! Produktterm Konjunktion mehrerer (möglicherweise negierter) Variablen z.B. A · B · C

! Summenterm Disjunktion mehrerer (möglicherweise negierter) Variablen z.B. A + B + C

8

Page 9: Einführung in Eingebettete Systeme · Einführung in Eingebettete Systeme Vorlesung 7 Bernd Finkbeiner 03/12/2014 finkbeiner@cs.uni-saarland.de

Ausgezeichnete Terme

! Minterm:Produktterm in dem jede Variable genau einmal vorkommt (einfach oder negiert)

! Maxterm:Summenterm in dem jede Variable genau einmal vorkommt (einfach oder negiert)

9

Page 10: Einführung in Eingebettete Systeme · Einführung in Eingebettete Systeme Vorlesung 7 Bernd Finkbeiner 03/12/2014 finkbeiner@cs.uni-saarland.de

Normalformen

! Disjunktive Normalform (DNF)Disjunktion von Produkttermen

! Konjunktive Normalform (KNF)Konjunktion von Summentermen

! Kanonische Disjunktive Normalform (KDNF)Eindeutige Darstellung einer Booleschen Funktion als Disjunktion von Mintermen

! Kanonische Konjunktive Normalform (KKNF)Eindeutige Darstellung einer Booleschen Funktion als Konjunktion von Maxtermen

10

Page 11: Einführung in Eingebettete Systeme · Einführung in Eingebettete Systeme Vorlesung 7 Bernd Finkbeiner 03/12/2014 finkbeiner@cs.uni-saarland.de

Schaltnetze! Ein Schaltnetz ist eine schaltungstechnische

Realisierung einer Schaltfunktion f: {0,1}n → {0,1}m ! f ist zerlegbar in m Boolesche Funktionen mit den

gleichen n Eingangsvariablen f1(x1,...,xn), f2(x1,...,xn), ..., fm(x1,...,xn)

! Ein Schaltnetz heißt auch kombinatorische Logik.11

x1

x2

... xn

f1(x1,...,xn) f2(x1,...,xn) ... fm(x1,...,xn)

Page 12: Einführung in Eingebettete Systeme · Einführung in Eingebettete Systeme Vorlesung 7 Bernd Finkbeiner 03/12/2014 finkbeiner@cs.uni-saarland.de

Schaltnetze

! Schaltnetze können einstufig (eine Gatterebene), zweistufig, oder mehrstufig sein

! Aus der Darstellung als kanonische Normalform folgt dass jede Schaltfunktion durch ein zweistufiges Netz realisierbar ist.

12

Page 13: Einführung in Eingebettete Systeme · Einführung in Eingebettete Systeme Vorlesung 7 Bernd Finkbeiner 03/12/2014 finkbeiner@cs.uni-saarland.de

Karnaugh-Veitch-Diagramme

! Grafische Darstellung einer Booleschen Funktion ! Ziel: Vereinfachung (kleine Realisierung) ! Gesucht: Minimaler logischer Ausdruck ! Nützlich bei bis zu vier Eingangsvariablen

13

Page 14: Einführung in Eingebettete Systeme · Einführung in Eingebettete Systeme Vorlesung 7 Bernd Finkbeiner 03/12/2014 finkbeiner@cs.uni-saarland.de

y :

x2

x1x0

y = x2

Karnaugh-Veitch-Diagramme

Beispiel:

14

0 0 0 0

1 1 1 1

Page 15: Einführung in Eingebettete Systeme · Einführung in Eingebettete Systeme Vorlesung 7 Bernd Finkbeiner 03/12/2014 finkbeiner@cs.uni-saarland.de

Primimplikanten

! Primimplikant (auch: Primterm): Konjunktionsterm minimaler Länge (minimaler Variablenanzahl)

! Implizieren die Ursprungsfunktion ! So groß wie möglich gewählte “Blöcke”

von “Einsen” im KV Diagramm ! Beispiel:

! Primterme:

15

x1x2 x0x1 x0x2

x0x1x2 _ x0x1x2 _ x0x1x2 _ x0x1x2

x2

x1x0

0 0 1 01 1 1 0

Page 16: Einführung in Eingebettete Systeme · Einführung in Eingebettete Systeme Vorlesung 7 Bernd Finkbeiner 03/12/2014 finkbeiner@cs.uni-saarland.de

Essentielle Primterme

! Essentielle Primimplikanten: Primimplikanten die mindestens eine “Eins” enthalten, die sonst von keinem anderen Block abgedeckt ist

! Redundante Primimplikanten: markieren nur von essentiellen Primimplikanten bereits abgedeckte “Einsen”

! Minimale Lösungen enthalten zumindest die essentiellen Primimplikanten, keine redundanten Primimplikanten, und ggf. eine Teilmenge der nicht-essentiellen und nicht-redundanten Primimplikanten.

! Beispiel: Essentiell:Redundant:

16

x0x2 x2

x1x0

0 0 1 01 1 1 0

x1x2 x0x1

Page 17: Einführung in Eingebettete Systeme · Einführung in Eingebettete Systeme Vorlesung 7 Bernd Finkbeiner 03/12/2014 finkbeiner@cs.uni-saarland.de

Karnaugh-Veitch-Diagramme

! Ein Diagramm pro Ausgabevariable ! Beispiel: 7-Segmentanzeige

17

98 2 Schaltnetze, Schaltketten

2 Schaltnetze, Schaltketten

2.1 Schaltungsstruktur und Funktionsweise

Schaltnetze und Schaltketten bestehen aus elementaren Schaltgliedern, derentechnische Grundlage heute Transistoren sind und deren theoretische Grundlageder Aussagenkalkül der mathematischen Logik ist (siehe 1.1). – Ihrer Strukturnach sind Schaltnetze rückwirkungsfreie Zusammenschaltungen solcher Schalt-glieder (Gatter); ihre Funktion folgt den Gesetzen der Booleschen Algebra (siehe1.2). Damit läßt sich der Begriff Schaltnetz wie folgt definieren:

• Ein Schaltnetz ist die schaltungstechnische Realisierung einer booleschenFunktion. Es wird mathematisch beschrieben durch eine Abbildung f mit x alsEingangsvektor und y als Ausgangsvektor boolescher Variablen.

Beispiel 2.1. Schaltnetz für die 7-Segment-Anzeige. Zur Anzeige von Dezimal-ziffern in der Form von sieben Segmenten (7-Segment-Anzeige, Bild 2-1a) be-nötigt man ein „Kästchen“ (Schaltnetz, Bild 2-1b), das Zusammenschaltungen

von Gattern enthält, und zwar entsprechend einer booleschen Funktion zur Um-formung der Dualzahlen 0 bis 9 in den Code zur Ansteuerung der sieben Seg-mente. Das Schaltnetz setzt also die dual codierten Dezimalziffern (x3x2x1x0) indie Signale für die Segmente [y6y5y4y3y2y1y0] um.

xSchaltnetz:

yy = f (x)

f

Bild 2-1. Ansteuerung einer 7-Segment-Anzeige für die Dezimalziffern 0 bis 9 aus denDualzahlen 0 bis 9; a Form der Anzeige, b Schaltnetz als Kästchen.

y6

y5

?y3

y4

a b

x3

y6 y5 y4 y3 y2 y1 y0

x2 x1 x0X =

Y =

y2

y1

y0

[H. Liebig: Logischer Entwurf digitaler Systeme, 2006]

Page 18: Einführung in Eingebettete Systeme · Einführung in Eingebettete Systeme Vorlesung 7 Bernd Finkbeiner 03/12/2014 finkbeiner@cs.uni-saarland.de

9. Synchrone Schaltwerke

Ziel:

! Entwurf getakteter Schaltwerke

Page 19: Einführung in Eingebettete Systeme · Einführung in Eingebettete Systeme Vorlesung 7 Bernd Finkbeiner 03/12/2014 finkbeiner@cs.uni-saarland.de

Rückgekoppelte Schaltnetze

! Schaltnetz vs. Schaltwerk

19

Digitale Schaltung

Schaltnetz (kombinatorisch) Schaltwerk

Synchron (sequentiell)

Asynchron

Page 20: Einführung in Eingebettete Systeme · Einführung in Eingebettete Systeme Vorlesung 7 Bernd Finkbeiner 03/12/2014 finkbeiner@cs.uni-saarland.de

Synchrone vs. Asynchrone Schaltwerke

! Synchrone Schaltwerke ! getaktet: Änderungen der internen Zustände nur zu

bestimmten Zeitpunkten zugelassen ! Verzögerung für alle Rückkopplungspfade gleich

(Taktperiode) ! Asynchrone Schaltwerke

! unterschiedliche Laufzeiten in verschiedenen Rückkopplungspfaden, Race-Probleme

! Vorteil: Geschwindigkeit, Energieverbrauch ! Nachteil: aufwändiger zu entwerfen

! komplexe Funktionen in der Regel synchron realisiert ! im Folgenden: synchrone Schaltwerke

(darin aber z.B. Flipflops die intern asynchron arbeiten!)20

Page 21: Einführung in Eingebettete Systeme · Einführung in Eingebettete Systeme Vorlesung 7 Bernd Finkbeiner 03/12/2014 finkbeiner@cs.uni-saarland.de

Set-Reset Flipflop

! Asynchron, pegelgesteuert

21

Q

Q

R

S

S R Operation (Q‘)

0 0 Zustand halten

1 0 Q setzen

0 1 Q zurücksetzen

1 1 undefiniert

Page 22: Einführung in Eingebettete Systeme · Einführung in Eingebettete Systeme Vorlesung 7 Bernd Finkbeiner 03/12/2014 finkbeiner@cs.uni-saarland.de

Set-Reset Flipflop

! Asynchron, pegelgesteuert

22

S R Operation (Q‘)

0 0 Zustand halten

1 0 Q setzen

0 1 Q zurücksetzen

1 1 undefiniert

Q

Q

R

S

Q

Q

R

S

! {S=1,R=0}{S=0,R=0}...

! {S=1,R=0}{S=0,R=0}{S=0,R=1}{S=0,R=0}...

Page 23: Einführung in Eingebettete Systeme · Einführung in Eingebettete Systeme Vorlesung 7 Bernd Finkbeiner 03/12/2014 finkbeiner@cs.uni-saarland.de

RS-Flipflop mit Taktpegel

! Taktgesteuert, transparent ! Operation wie SR-Latch, wenn E aktiviert ist

23

Q

Q

R

S

E

Page 24: Einführung in Eingebettete Systeme · Einführung in Eingebettete Systeme Vorlesung 7 Bernd Finkbeiner 03/12/2014 finkbeiner@cs.uni-saarland.de

D-Flipflop

! Taktflankengesteuert, rückkoppelungsfähig ! steigende Flanke: D wird eingelesen ! fallende Flanke: D wird abgespeichert

24

D Q

Q

Page 25: Einführung in Eingebettete Systeme · Einführung in Eingebettete Systeme Vorlesung 7 Bernd Finkbeiner 03/12/2014 finkbeiner@cs.uni-saarland.de

Schieberegister

! In Reihe geschaltete D-Flipflops ! Umwandlung seriell/parallel

25

D

Dser Qser

SRG4

Page 26: Einführung in Eingebettete Systeme · Einführung in Eingebettete Systeme Vorlesung 7 Bernd Finkbeiner 03/12/2014 finkbeiner@cs.uni-saarland.de

a3a2a1a0

b3b2b1b0

c

s3s2s1s0

Beispiel: Sequentieller Addierer

! Aufwand: 1 Addierer + 1 Flipflop als Carry

26

Schieberegister

Schieberegister

Flipflop

SchieberegisterAddierer

clk

clk

clk

clk

1.2 Boolesche Funktionen 29

Beispiel 1.16. Addition. Die Funktionen ui+1 und si aus Beispiel 1.13 sollendurch Blockbilder dargestellt werden, und zwar in denjenigen Strukturen, wie siedort durch die Gleichungen vorgegeben sind. Es entsteht Bild 1-7.

Aufgabe 1.8. Subtraktion. Beschreiben Sie in Analogie zur ziffernpaarweisen Addition die zif-fernpaarweise Subtraktion in allen hier gezeigten Darstellungsformen.

Aufgabe 1.9. Paritätsprüfung. Die Datenübertragung binär codierter Zeichen (8-Bit-Codewörter)von einem Sender zu einem Empfänger (in einem Rechner z.B. von der Peripherie zum Prozes-sor) wird oft dadurch überprüft, daß zu allen Wörtern auf der Senderseite ein sog. Paritätsbit hin-zugefügt wird, wodurch sich die Anzahl der Codewörter verdoppelt. Es entstehen zu gleichenTeilen gültige und ungültige Wörter, die auf der Empfängerseite auf ihre Gültigkeit überprüftwerden. – Beschreiben Sie die folgenden Funktionen durch Gleichungen und Blockbilder. (a) Eine erste boolesche Funktion (senderseitig) soll zu einem 8-Bit-Wort, einem Byte, den Wertdes Paritätsbits erzeugen, so daß die Quersumme der entstehenden 9-Bit-Wörter ungerade ist.Als Verknüpfung ist die Äquivalenz zu verwenden. (b) Eine zweite boolesche Funktion (empfängerseitig) soll „1“ liefern, wenn die Anzahl der Ein-sen, d.h. die Quersumme der 9-Bit-Wörter, gerade ist. Als Verknüpfung ist entweder die Äquiva-lenz oder die Antivalenz zu verwenden.

Ausblick. Wir haben eine Reihe äquivalenter Darstellungen einer Funktion vor-gestellt. Die Gleichungsdarstellung nahm dabei eine zentrale Rolle ein; von ihrausgehend haben wir die anderen Darstellungsformen entwickelt. Aber genau so,wie aus der Gleichung die Tabelle oder die Tafel ermittelt werden kann, ist esmöglich, aus einer Tabelle eine Tafel und weiter eine Gleichung und darausschließlich das Blockbild zu konstruieren. Das betrifft die Schaltungssyntheseund wird im Abschnitt 1.2.3 fortgeführt.

1.2.2 Systeme von Funktionen (Vektorfunktionen)

In 1.2.1 (auf S. 24) wurde eine Funktion allgemein durch

(33)

beschrieben. Zur bequemeren Schreibweise kürzen wir das „eindimensionaleFeld“

[x1 x2 x3 … xn]

Bild 1-7. Blockbilder für die Vollad-dierfunktion bzw. die Volladdier-schaltung; a Übertrag, b Summe.

uixi

siui+1

xi yi ui

a b

yi

y f x1 x2 x3 … xn, , , ,( )=

Page 27: Einführung in Eingebettete Systeme · Einführung in Eingebettete Systeme Vorlesung 7 Bernd Finkbeiner 03/12/2014 finkbeiner@cs.uni-saarland.de

x0x1

y0y1

r0 r1

clk

Schaltwerke als Realisierung von Automaten

27

Übergangs-Schaltnetz

Zustandsregister

clk

Page 28: Einführung in Eingebettete Systeme · Einführung in Eingebettete Systeme Vorlesung 7 Bernd Finkbeiner 03/12/2014 finkbeiner@cs.uni-saarland.de

Vom Automat zum Schaltwerk

28

r1r2

s0 s1 s2 s3x/y x/y x/y

x/y

x/y x/y x/y x/y

1

s0

00

s1

01

s2

10

s3

11

x/y x/y x/y

x/y

x/y x/y x/y x/y

1

Page 29: Einführung in Eingebettete Systeme · Einführung in Eingebettete Systeme Vorlesung 7 Bernd Finkbeiner 03/12/2014 finkbeiner@cs.uni-saarland.de

�r1 = r2r1x _ r2r1x

�r2 = r2r1x _ r2r1x

�y = r2r1x

Vom Automat zum Schaltwerk

29

s0

00

s1

01

s2

10

s3

11

x/y x/y x/y

x/y

x/y x/y x/y x/y

1

Page 30: Einführung in Eingebettete Systeme · Einführung in Eingebettete Systeme Vorlesung 7 Bernd Finkbeiner 03/12/2014 finkbeiner@cs.uni-saarland.de

�r1 :

r1r2

x

�r1 = xr1

KV-Diagramme

30

�r1 = r2r1x _ r2r1x

0 0 0 0

1 0 0 1

Page 31: Einführung in Eingebettete Systeme · Einführung in Eingebettete Systeme Vorlesung 7 Bernd Finkbeiner 03/12/2014 finkbeiner@cs.uni-saarland.de

Schaltwerk

31

�r2 = r2r1x _ r2r1x

�y = r2r1x

�r1 = xr1