Grundlagen der Informatik Teil III Boolesche Algebra, Signalarten, Elektronische Bauteile Seite 1
Boolesche Algebra George Boole => englischer Mathematiker Mitte 19. Jahrhundert Formale Sicht digitaler Strukturen => Boolesche Algebra Zwei Werte: 0, 1 also false und true wichtig für Konstruktion und den Bau von effizienten Strukturen und Schaltungen zur Verarbeitung binärer Größen Grundlage für die heutige Rechner-Hardware. Seite 2
Boolesche Algebra Zwei Werte 0 => false, falsch 1 => true, wahr Grundlage moderne Rechner-Hardware Einsatz in Programmierung If( BEDINGUNG ) { TU WAS } else { TU WAS ANDERES } Zwei Variablen => a, b Drei Operationen => OR, AND, NOT Für jede Operation verschiedene Schreibweisen Seite 3
Operatoren Steueraufgaben eines Mikroprozessors lassen sich mit drei grundlegenden Verknüpfungsarten beschreiben UND (AND) ODER (OR) NICHT (NOT) Zwei weitere durch Kombination NICHT-UND (NAND) NICHT-ODER (NOR) Seite 4
Operatoren Technisch realisiert mit Transistoren Beschreibung der Funktion logischer Gatter (Verknüpfungen): Stromlaufplan Schaltzeichen Wahrheits- oder Arbeitstabelle Zeitablaufdiagramm Funktionsgleichung Seite 5
Signalarten 3 Arten Analoge Signale Digitale Signale Binärsignale Seite 6
Signalarten Analog Digital Binär Seite 7
Signalarten Analoge Signale Zu jedem Zeitpunkt ein anderer Spannungswert Können unendlich viele Werte annehmen Fortwährend veränderbar Seite 8
Signalarten Digitale Signale Größe wächst sprunghaft und gleichmäßig Nur begrenzte Menge an Werten Stufig veränderbar Seite 9
Signalarten Binäre Signale Nur zwei Zustände Nur zwei Werte Seite 10
Operatoren OR-Gatter Seite 11
Operatoren OR-Operator Logische Summe +, v Ergebnis der OR-Operation ist wahr, wenn mindestens eine der Variablen den Wert 1 besitzt Wahrheitstabelle: a b a OR b 0 0 0 0 1 1 1 0 1 1 1 1 Seite 12
Operatoren Beispiel OR-Operator: Schnupfen v Kopfschmerzen v zu wenig für Klausur gelernt Ist eine Bedingung wahr, so ist das Ergebnis wahr Krankmeldung: Sie erscheinen nicht zur Klausur Alter < 6 + Alter >= 67 Ist eine Bedingung erfüllt, ist das Ergebnis wahr Ermäßigung für Kinder unter 6 Jahren und Senioren ab 67 Seite 13
Operatoren AND-Gatter Seite 14
Operatoren AND-Operator Logische Produkt *, ^ Ergebnis der AND-Operation ist wahr, wenn beide Variablen den Wert 1 besitzen Wahrheitstabelle: a b a AND b 0 0 0 0 1 0 1 0 0 1 1 1 Seite 15
Operatoren Beispiel AND-Operator: Dezember ^ vier Kerzen brennen ^ es gibt Geschenke Wenn alle 3 Bedingungen wahr sind, ist das Ergebnis wahr Es ist Weihnachten Alter > 6 * Alter < 67 Sind beide Bedingungen erfüllt, ist das Ergebnis wahr Voller Fahrpreis für Menschen zwischen 6 und 67 Jahren Seite 16
Operatoren NOT-Gatter Seite 17
Operatoren NOT-Operator Invertierung -a, a Ergebnis der NOT-Operation ist wahr, wenn die invertierte Variable den Wert 0 besitzt, bzw. umgekehrt Wahrheitstabelle: a NOT a 0 1 1 0 Seite 18
Operatoren Beispiel NOT-Operator: -(Temperatur über 30 C * Sonnenbrand * Cocktail) Wenn alle 3 Bedingungen wahr sind, ist das Ergebnis wahr durch NOT-Operator invertiert Bedingung ist erfüllt, wenn alle drei Bedingungen unwahr sind Ich bin NICHT im Urlaub Seite 19
Operatoren XOR Exklusiv-Oder Ergebnis genau dann 1, wenn genau eine der Variablen in a + b den Wert 1 besitzt Unterschied zu OR: nur eine Variable darf den Wert 1 besitzen NOR & NAND Das Ergebnis dieser einer OR- bzw. AND-Verknüpfung wird negiert Seite 20
Boolesche Algebra In einer booleschen Algebra gelten verschiedene Gesetze (Axiome) Da * höhere Priorität als + hat, wird * oft auch weggelassen, um die Lesbarkeit zu erhöhen. Seite 21
Boolesche Algebra Axiome Seite 22
Boolesche Algebra Axiome Seite 23
Die De Morgan schen Gesetze nicht (a und b) = (nicht a) oder (nicht b) nicht (a oder b) = (nicht a) und (nicht b) Gleiche Logische Aussage Seite 24
Boolesche Algebra Axiome Seite 25
Boolesche Algebra Funktionen Allgemeine Definition boolesche Algebra: Unterscheidung nach Stelligkeit Die Menge aller möglichen n-tupel aus {0,1} auf {0,1} ab Darstellung als Tabelle mit Werten Seite 26
Boolesche Algebra Funktionen Fall: n = 0 - zwei Konstanten: 1 und 0 bzw. true und false Seite 27
Boolesche Algebra Funktionen Fall: n = 1 - vier mögliche Booleschen Funktionen Seite 28
Boolesche Algebra Funktionen Fall: n = 2-16 mögliche Booleschen Funktionen y = f0(x1, x2) f15(x1, x2) Seite 29
Boolesche Algebra Funktionen Seite 30
Boolesche Algebra Funktionen Seite 31
Boolesche Algebra Funktionen Fall: n < 2 n=3 => 256 n=4 => 65.536 n=5 => 4.294.966.416 n=6 => über 18 Trillionen Seite 32
Boolesche Funktionen Äquivalenz (a b) Ergebnis nur dann 1, wenn beide Variablen den gleichen Wert besitzen Wenn-dann (a => b) Ergebnis nur dann 0, wenn die erste Variable den Wert 1 und die zweite Variable den Wert 0 hat X Y X => Y Es regnet Schirm ist aufgespannt Wahrheitswert 0 0 1 False False True 0 1 1 False True True 1 0 0 True False False 1 1 1 True True True Seite 33
Boolesche Funktionen Erklärung durch Aussage-Logik: Wenn es regnet, dann muss man den Schirm aufspannen Wenn es nicht regnet, ist die Aussage immer erfüllt! Unabhängig davon, ob der Schirm aufgespannt ist Wenn es regnet und der Schirm aufgespannt ist, ist die Aussage ebenfalls erfüllt Wenn es regnet und der Schirm ist nicht aufgespannt, ist die Aussage nicht erfüllt Seite 34
Boolesche Funktionen Für die einzelnen Funktionen gilt dabei Folgendes: Null- bzw. einstellige Funktionen sind nicht von Interesse Einfache Funktionen mit den Operatoren AND, OR und NOT Seite 35
Boolesche Funktionen Andere Funktionen =>Nachbildung mit AND, OR, NOT Für die restlichen Funktionen wird in der letzten Zeile noch gezeigt, wie diese sich mittels der Operatoren AND, OR und NOT realisieren lassen. Seite 36
Boolesche Funktionen AND OR: A ^ 0 = 0 A ^ 1 = A A ^ A = 0 A ^ A = A A v 0 = A A v 1 = 1 A v A = 1 A v A = A Seite 37
Boolesche Funktionen Rechenregeln A ^ 0 = 0 A ^ 1 = A A ^ A = 0 Für die Variable A kann 0 und 1 eingesetzt werden 0 ^ 0 = 0 1 ^ 0 = 0 Für die Variable A kann 0 und 1 eingesetzt werden 0 ^ 1 = 0 1 ^ 1 = 1 Die Ergebnisse entsprechen den eingesetzten Variablen, demnach darf für die Lösung die Variable A geschrieben werden Wenn z.b. für die Variable A der Wert 0 eingesetzt wird, ergibt das für die invertierte Variable A den Wert 1 0 ^ 1 = 0 1 ^ 0 = 0 A ^ A = A 0 ^ 0 = 0 1 ^ 1 = 1 Die Ergebnisse entsprechen den eingesetzten Variablen, demnach darf für die Lösung A geschrieben werden Seite 38
Boolesche Funktionen Vertauschungsgesetz X = A ^ B ^ C = A ^ C ^ B = B ^ A ^ C = C ^ A ^ B Seite 39
Boolesche Funktionen Vertauschungsgesetz Eingänge Ausgang X A B C A ^ B ^ C A ^ C ^ B B ^ A ^ C C ^ A ^ B 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 1 1 1 Seite 40
Boolesche Funktionen Verbindungsgesetz X = A ^ B ^ C = (A ^ B) ^ C = A ^ (B ^ C) = (A ^ C) ^ B Seite 41
Boolesche Funktionen Verbindungsgesetz Eingänge Ausgang X Eingänge Y Ausgang X A B C A ^ B ^ C 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 A B C (A ^ B) (A ^ B) ^ C oder Y ^ C 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 Seite 42
Boolesche Funktionen Konjunktives Verteilungsgesetz X = (A ^ B) v (A ^ C) = A ^ (B v C) Seite 43
Boolesche Funktionen Konjunktives Verteilungsgesetz Eing. Y Z Ausg. X A B C (A ^ B) (A ^ C) (A ^ B) v (A ^ C) oder Y v Z 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 1 0 1 1 1 1 0 1 0 1 1 1 1 1 1 1 Eing. U Ausg. X A B C (B v C) A ^ (B v C) oder A ^ U 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 0 1 0 0 0 0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 Seite 44
Boolesche Funktionen Disjunktives Verteilungsgesetz X = (A v B) ^ (A v C) = A v (B ^ C) Seite 45
Boolesche Funktionen Disjunktives Verteilungsgesetz Seite 46
Boolesche Funktionen disjunktives Verteilungsgesetz Seite 47
Boolesche Funktionen Es lassen sich nun folgende Sätze aufstellen: 1. Satz: Alle zweistelligen booleschen Funktionen können mit Hilfe der Negation ( ), der Konjunktion (*) und der Disjunktion (+) dargestellt werden. 2. Satz: Alle zweistelligen booleschen Funktionen können entweder mit Hilfe der Negation und der Konjunktion, oder mit Hilfe der Negation und der Disjunktion dargestellt werden. 3. Satz: Alle zweistelligen booleschen Funktionen können entweder mit Hilfe der NAND-Verknüpfung oder mit Hilfe der NOR-Verknüpfung dargestellt werden. Der letzte Satz hat zur Folge, dass alle Schaltnetze aus Gattern einer einzigen Art, wie z.b. nur aus NAND-Gattern, aufgebaut werden können. Seite 48
Bistabile Elemente, Speicher- und Zähl-Flipflops Speicherung von Daten finden binär statt Zwei Zustände: 0, 1 Jeder Speicherplatz wird 1 Bit (kleinste Einheit) zugeordnet Für 1 Bit sind zwei Zustände definiert: 0 => Low-Pegel => L (z.b. 0 Volt) 1 => High-Pegel => H (z.b. 5 Volt) Speicherzellen wechseln Zustand zwischen 0 und 1 => Elektronische Kippschaltung => Flipflops Seite 49
Bistabile Elemente, Speicher- und Zähl-Flipflops Bistabile RS-Flipflops Taktgesteuerte Flipflops Flankengesteuerte Flipflops NOR-RS-Flipflops NAND-RS-Flipsflops Taktzustandsgesteuertes Flipflop D-Flipflop JK-Flipflop Einflankengesteuertes JK- Flipflop Zweiflankengesteuertes JK- Flipflop (JK-Master-Slave-Flipflop) Seite 50
Bistabile RS-Flipflops Um Speicherelement ansprechen zu können, werden 3 Befehle benötigt: 1-Signal einlesen = Speicher setzen 0-Signal einlesen = Speicher zurücksetzen (löschen) Letzten Speicherinhalt unverändert erhalten Darstellung von 3 Steuerbefehlen 2 Eingänge nötig S-Eingang (Set-Eingang) R-Eingang (Reset-Eingang) Ausgang: Q Seite 51
Bistabile RS-Flipflops Funktions- bzw. Arbeitstabelle eines Speicher-FF Funktionstabelle S R Q 0 0 Speichern 0 1 0 1 0 1 1 1 - Speichern Zurücksetzen (Reset) Setzen (Set) Verboten Arbeitstabelle S R Q L L Speichern L H L H L H H H - Name RS-Flipflop weil durch S=1 gesetzt, bzw. durch R=1 zurückgesetzt wird Seite 52
Bistabile RS-Flipflops Schaltsymbol eines RS-Flipflop Hier Ausgang bezeichnet mit A (Q), zusätzlicher negierter Ausgang A2 Seite 53
Bistabile RS-Flipflops Funktion eines RS-Flipflops Realisierung mit NOR- oder NAND-Bauteilen Beispiel: RS-FF mit NOR-Bauteilen Seite 54
RS-FF mit NOR-Bauteilen Setzen (S=1, R=0) Oberes NOR-Gatter: S=1, Zweiter Eingang noch unbekannt Am NOR-Gatter muss nur eine 1 anliegen, damit für Ausgang gilt: Q = 0 Unteres NOR-Gatter: R=0, Am 1. Eingang wird das Ausgangs- Signal des oberen Gatters (Q=0) übernommen Die beiden Nullen an den Eingängen ergeben das Ausgangssignal Q=1 Speicher mit 1 gesetzt Seite 55
RS-FF mit NOR-Bauteilen Speichern (S=0, R=0) Oberes NOR-Gatter wechseln auf S=0, Zweiter Eingang noch immer 1 Invertierter Eingang ändert sich nicht: Q = 0 Unteres NOR-Gatter: keine Änderung Am Ausgang Q also Speicherung von 1 Seite 56
RS-FF mit NOR-Bauteilen Zurücksetzen (S=0, R=1) Unteres NOR-Gatter: R auf 1 wechseln Ausgang Q wird zu 0 Speicher wurde zurückgesetzt Oberes NOR-Gatter: S=0, Am 2. Eingang wird das Ausgangs- Signal vom unteren Gatter übernommen Invertierter Ausgang Q wechselt von 0 auf 1 Seite 57
RS-FF mit NOR-Bauteilen Nicht definiert (S=1, R=1) Liegt am oberen und am unteren NOR-Gatter an jeweils einem Eingang eine 1 an, erhält man an beiden Ausgängen den Wert 0 Dieser zustand ist nicht definiert Verbotener Zustand An beiden Eingängen (S und R) darf nicht gleichzeitig eine 1 anliegen. Gleichzeitiges Speichern und Löschen => sinnlos Seite 58
Taktgesteuerte Flipflops Taktzustandsgesteuertes Flipflop (einflankengesteuert) D-Flipflop JK-Flipflop (einflankengesteuert) JK-Flipflop (zweiflankengesteuert) Seite 59
Taktzustandsgesteuertes Flipflop (einflankengesteuert) R und S verknüpft mit Takteingang C Takteingang = Clock = C Sendet Impulse an Eingänge der NAND-Bauteile Funktionstabelle C 1 0 0 0 0 1 1 1 S 1 0 0 1 1 0 0 1 R 0 0 1 0 1 0 1 1 Q 1 speichern 0 nicht definiert Seite 60
Taktzustandsgesteuertes Flipflop (einflankengesteuert) Zeitablaufdiagramm Positiv flankengesteuertes FF: Positive Flanke wird für Auslösung verwendet (Triggerung) Ausgang Q kann sich nur dann ändern, sobald der Takteingang C von 0 auf 1 wechselt Einflankensteuerung Seite 61
Taktzustandsgesteuertes Flipflop (einflankengesteuert) Taktgesteuertes Flipflop setzen S = 1, C = 1, R = 0 (vgl. Funktionstabelle) Ausgang D1 = 0 => Ausgang von D2 = 1 Für Ausgang D3 gilt: Q = 1 => Ausgang D4: Q = 0 Seite 62
D-Flipflop Takteingang C und Dateneingang D S und R können niemals gleich sein => Kein verbotener Zustand Funktionstabelle C 0 0 1 1 D 0 1 0 1 Q speichern 0 1 Seite 63
JK-Flipflop (einflankengesteuert) Set-Eingang: J Reset-Eingang: K Takt-Eingang: C Ausgang: Q Zustand J = K = 1 ist erlaubt! Ausgangspegel wechselt mit jeder wirksamen Flanke des Taktsignals Speichern: J = K = 0 Datenübernahme mit ansteigender (positiver) und/oder absteigender (negativer) Flanke möglich => durch Negation des C-Eingangs Seite 64
JK-Flipflop (einflankengesteuert) Zeitablaufdiagramm des gesteuerten JK-FF: Hier bei ansteigender (positiver) Taktflanke Seite 65
JK-Flipflop (zweiflankengesteuert) Zweiflankengesteuertes JK-FF heißt auch JK-Master-Slave-Flipflop 2 hintereinander geschaltete einflankengesteuerte JK-FF Kann mit ansteigender und abfallender Flanke gesteuert werden => zweiflankensteuerung Seite 66