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

Post on 18-Sep-2018

215 views 0 download

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

Einführung in

Eingebettete Systeme

Vorlesung 7 Bernd Finkbeiner 03/12/2014 finkbeiner@cs.uni-saarland.de

Prof. Bernd Finkbeiner, Ph.D. finkbeiner@cs.uni-saarland.de

1

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

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

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

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

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

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, , , ,( )=

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

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

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

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)

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

Karnaugh-Veitch-Diagramme

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

13

y :

x2

x1x0

y = x2

Karnaugh-Veitch-Diagramme

Beispiel:

14

0 0 0 0

1 1 1 1

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

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

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]

9. Synchrone Schaltwerke

Ziel:

! Entwurf getakteter Schaltwerke

Rückgekoppelte Schaltnetze

! Schaltnetz vs. Schaltwerk

19

Digitale Schaltung

Schaltnetz (kombinatorisch) Schaltwerk

Synchron (sequentiell)

Asynchron

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

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

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}...

RS-Flipflop mit Taktpegel

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

23

Q

Q

R

S

E

D-Flipflop

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

24

D Q

Q

Schieberegister

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

25

D

Dser Qser

SRG4

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, , , ,( )=

x0x1

y0y1

r0 r1

clk

Schaltwerke als Realisierung von Automaten

27

Übergangs-Schaltnetz

Zustandsregister

clk

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

�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

�r1 :

r1r2

x

�r1 = xr1

KV-Diagramme

30

�r1 = r2r1x _ r2r1x

0 0 0 0

1 0 0 1

Schaltwerk

31

�r2 = r2r1x _ r2r1x

�y = r2r1x

�r1 = xr1